testConvertibleObjectEqUndefined.js (985B)
1 function x4(v) { return "" + v + v + v + v; } 2 function testConvertibleObjectEqUndefined() 3 { 4 var compares = 5 [ 6 false, false, false, false, 7 undefined, undefined, undefined, undefined, 8 false, false, false, false, 9 undefined, undefined, undefined, undefined, 10 false, false, false, false, 11 undefined, undefined, undefined, undefined, 12 false, false, false, false, 13 undefined, undefined, undefined, undefined, 14 false, false, false, false, 15 undefined, undefined, undefined, undefined, 16 ]; 17 var count = 0; 18 var obj = { valueOf: function() { count++; return 1; } }; 19 var results = compares.map(function(v) { return "unwritten"; }); 20 21 for (var i = 0, sz = compares.length; i < sz; i++) 22 results[i] = compares[i] == obj; 23 24 return results.join("") + count; 25 } 26 27 assertEq(testConvertibleObjectEqUndefined(), 28 x4(false) + x4(false) + x4(false) + x4(false) + x4(false) + x4(false) + 29 x4(false) + x4(false) + x4(false) + x4(false) + "20");