| ///////////////////////////////////////// |
| // This is a generated file! |
| // See jit-tests/etc/generate-nosuchproperty-tests.js for the code |
| // that generated this code! |
| ///////////////////////////////////////// |
| |
| ///////////////////////////////////////// |
| // PRELUDE // |
| ///////////////////////////////////////// |
| |
| function createTower(n) { |
| var result = Object.create(null); |
| for (var i = 0; i < n; i++) |
| result = Object.create(result); |
| return result; |
| } |
| function updateChain(obj, depth, prop, value) { |
| // Walk down the proto chain |depth| iterations and set |prop| to |value|. |
| var cur = obj; |
| for (var i = 0; i < depth; i++) |
| cur = Object.getPrototypeOf(cur); |
| |
| var desc = {value:value, writable:true, configurable:true, enumerable:true}; |
| Object.defineProperty(cur, prop, desc); |
| } |
| |
| ///////////////////////////////////////// |
| // TEST CASES // |
| ///////////////////////////////////////// |
| |
| //// Test chain of length 0 with late-property-addition at depth 0 |
| function runChain_0_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_0_0() { |
| var obj = createTower(0); |
| assertEq(runChain_0_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_0_0(obj), 900); |
| } |
| |
| //// Test chain of length 1 with late-property-addition at depth 0 |
| function runChain_1_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_1_0() { |
| var obj = createTower(1); |
| assertEq(runChain_1_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_1_0(obj), 900); |
| } |
| |
| //// Test chain of length 1 with late-property-addition at depth 1 |
| function runChain_1_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_1_1() { |
| var obj = createTower(1); |
| assertEq(runChain_1_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_1_1(obj), 900); |
| } |
| |
| //// Test chain of length 2 with late-property-addition at depth 0 |
| function runChain_2_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_2_0() { |
| var obj = createTower(2); |
| assertEq(runChain_2_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_2_0(obj), 900); |
| } |
| |
| //// Test chain of length 2 with late-property-addition at depth 1 |
| function runChain_2_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_2_1() { |
| var obj = createTower(2); |
| assertEq(runChain_2_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_2_1(obj), 900); |
| } |
| |
| //// Test chain of length 2 with late-property-addition at depth 2 |
| function runChain_2_2(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_2_2() { |
| var obj = createTower(2); |
| assertEq(runChain_2_2(obj), NaN); |
| updateChain(obj, 2, 'foo', 9); |
| assertEq(runChain_2_2(obj), 900); |
| } |
| |
| //// Test chain of length 3 with late-property-addition at depth 0 |
| function runChain_3_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_3_0() { |
| var obj = createTower(3); |
| assertEq(runChain_3_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_3_0(obj), 900); |
| } |
| |
| //// Test chain of length 3 with late-property-addition at depth 1 |
| function runChain_3_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_3_1() { |
| var obj = createTower(3); |
| assertEq(runChain_3_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_3_1(obj), 900); |
| } |
| |
| //// Test chain of length 3 with late-property-addition at depth 2 |
| function runChain_3_2(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_3_2() { |
| var obj = createTower(3); |
| assertEq(runChain_3_2(obj), NaN); |
| updateChain(obj, 2, 'foo', 9); |
| assertEq(runChain_3_2(obj), 900); |
| } |
| |
| //// Test chain of length 3 with late-property-addition at depth 3 |
| function runChain_3_3(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_3_3() { |
| var obj = createTower(3); |
| assertEq(runChain_3_3(obj), NaN); |
| updateChain(obj, 3, 'foo', 9); |
| assertEq(runChain_3_3(obj), 900); |
| } |
| |
| //// Test chain of length 4 with late-property-addition at depth 0 |
| function runChain_4_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_4_0() { |
| var obj = createTower(4); |
| assertEq(runChain_4_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_4_0(obj), 900); |
| } |
| |
| //// Test chain of length 4 with late-property-addition at depth 1 |
| function runChain_4_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_4_1() { |
| var obj = createTower(4); |
| assertEq(runChain_4_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_4_1(obj), 900); |
| } |
| |
| //// Test chain of length 4 with late-property-addition at depth 2 |
| function runChain_4_2(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_4_2() { |
| var obj = createTower(4); |
| assertEq(runChain_4_2(obj), NaN); |
| updateChain(obj, 2, 'foo', 9); |
| assertEq(runChain_4_2(obj), 900); |
| } |
| |
| //// Test chain of length 4 with late-property-addition at depth 3 |
| function runChain_4_3(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_4_3() { |
| var obj = createTower(4); |
| assertEq(runChain_4_3(obj), NaN); |
| updateChain(obj, 3, 'foo', 9); |
| assertEq(runChain_4_3(obj), 900); |
| } |
| |
| //// Test chain of length 4 with late-property-addition at depth 4 |
| function runChain_4_4(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_4_4() { |
| var obj = createTower(4); |
| assertEq(runChain_4_4(obj), NaN); |
| updateChain(obj, 4, 'foo', 9); |
| assertEq(runChain_4_4(obj), 900); |
| } |
| |
| //// Test chain of length 5 with late-property-addition at depth 0 |
| function runChain_5_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_5_0() { |
| var obj = createTower(5); |
| assertEq(runChain_5_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_5_0(obj), 900); |
| } |
| |
| //// Test chain of length 5 with late-property-addition at depth 1 |
| function runChain_5_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_5_1() { |
| var obj = createTower(5); |
| assertEq(runChain_5_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_5_1(obj), 900); |
| } |
| |
| //// Test chain of length 5 with late-property-addition at depth 2 |
| function runChain_5_2(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_5_2() { |
| var obj = createTower(5); |
| assertEq(runChain_5_2(obj), NaN); |
| updateChain(obj, 2, 'foo', 9); |
| assertEq(runChain_5_2(obj), 900); |
| } |
| |
| //// Test chain of length 5 with late-property-addition at depth 3 |
| function runChain_5_3(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_5_3() { |
| var obj = createTower(5); |
| assertEq(runChain_5_3(obj), NaN); |
| updateChain(obj, 3, 'foo', 9); |
| assertEq(runChain_5_3(obj), 900); |
| } |
| |
| //// Test chain of length 5 with late-property-addition at depth 4 |
| function runChain_5_4(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_5_4() { |
| var obj = createTower(5); |
| assertEq(runChain_5_4(obj), NaN); |
| updateChain(obj, 4, 'foo', 9); |
| assertEq(runChain_5_4(obj), 900); |
| } |
| |
| //// Test chain of length 5 with late-property-addition at depth 5 |
| function runChain_5_5(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_5_5() { |
| var obj = createTower(5); |
| assertEq(runChain_5_5(obj), NaN); |
| updateChain(obj, 5, 'foo', 9); |
| assertEq(runChain_5_5(obj), 900); |
| } |
| |
| //// Test chain of length 6 with late-property-addition at depth 0 |
| function runChain_6_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_6_0() { |
| var obj = createTower(6); |
| assertEq(runChain_6_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_6_0(obj), 900); |
| } |
| |
| //// Test chain of length 6 with late-property-addition at depth 1 |
| function runChain_6_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_6_1() { |
| var obj = createTower(6); |
| assertEq(runChain_6_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_6_1(obj), 900); |
| } |
| |
| //// Test chain of length 6 with late-property-addition at depth 2 |
| function runChain_6_2(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_6_2() { |
| var obj = createTower(6); |
| assertEq(runChain_6_2(obj), NaN); |
| updateChain(obj, 2, 'foo', 9); |
| assertEq(runChain_6_2(obj), 900); |
| } |
| |
| //// Test chain of length 6 with late-property-addition at depth 3 |
| function runChain_6_3(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_6_3() { |
| var obj = createTower(6); |
| assertEq(runChain_6_3(obj), NaN); |
| updateChain(obj, 3, 'foo', 9); |
| assertEq(runChain_6_3(obj), 900); |
| } |
| |
| //// Test chain of length 6 with late-property-addition at depth 4 |
| function runChain_6_4(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_6_4() { |
| var obj = createTower(6); |
| assertEq(runChain_6_4(obj), NaN); |
| updateChain(obj, 4, 'foo', 9); |
| assertEq(runChain_6_4(obj), 900); |
| } |
| |
| //// Test chain of length 6 with late-property-addition at depth 5 |
| function runChain_6_5(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_6_5() { |
| var obj = createTower(6); |
| assertEq(runChain_6_5(obj), NaN); |
| updateChain(obj, 5, 'foo', 9); |
| assertEq(runChain_6_5(obj), 900); |
| } |
| |
| //// Test chain of length 6 with late-property-addition at depth 6 |
| function runChain_6_6(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_6_6() { |
| var obj = createTower(6); |
| assertEq(runChain_6_6(obj), NaN); |
| updateChain(obj, 6, 'foo', 9); |
| assertEq(runChain_6_6(obj), 900); |
| } |
| |
| //// Test chain of length 7 with late-property-addition at depth 0 |
| function runChain_7_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_7_0() { |
| var obj = createTower(7); |
| assertEq(runChain_7_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_7_0(obj), 900); |
| } |
| |
| //// Test chain of length 7 with late-property-addition at depth 1 |
| function runChain_7_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_7_1() { |
| var obj = createTower(7); |
| assertEq(runChain_7_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_7_1(obj), 900); |
| } |
| |
| //// Test chain of length 7 with late-property-addition at depth 2 |
| function runChain_7_2(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_7_2() { |
| var obj = createTower(7); |
| assertEq(runChain_7_2(obj), NaN); |
| updateChain(obj, 2, 'foo', 9); |
| assertEq(runChain_7_2(obj), 900); |
| } |
| |
| //// Test chain of length 7 with late-property-addition at depth 3 |
| function runChain_7_3(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_7_3() { |
| var obj = createTower(7); |
| assertEq(runChain_7_3(obj), NaN); |
| updateChain(obj, 3, 'foo', 9); |
| assertEq(runChain_7_3(obj), 900); |
| } |
| |
| //// Test chain of length 7 with late-property-addition at depth 4 |
| function runChain_7_4(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_7_4() { |
| var obj = createTower(7); |
| assertEq(runChain_7_4(obj), NaN); |
| updateChain(obj, 4, 'foo', 9); |
| assertEq(runChain_7_4(obj), 900); |
| } |
| |
| //// Test chain of length 7 with late-property-addition at depth 5 |
| function runChain_7_5(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_7_5() { |
| var obj = createTower(7); |
| assertEq(runChain_7_5(obj), NaN); |
| updateChain(obj, 5, 'foo', 9); |
| assertEq(runChain_7_5(obj), 900); |
| } |
| |
| //// Test chain of length 7 with late-property-addition at depth 6 |
| function runChain_7_6(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_7_6() { |
| var obj = createTower(7); |
| assertEq(runChain_7_6(obj), NaN); |
| updateChain(obj, 6, 'foo', 9); |
| assertEq(runChain_7_6(obj), 900); |
| } |
| |
| //// Test chain of length 7 with late-property-addition at depth 7 |
| function runChain_7_7(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_7_7() { |
| var obj = createTower(7); |
| assertEq(runChain_7_7(obj), NaN); |
| updateChain(obj, 7, 'foo', 9); |
| assertEq(runChain_7_7(obj), 900); |
| } |
| |
| //// Test chain of length 8 with late-property-addition at depth 0 |
| function runChain_8_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_8_0() { |
| var obj = createTower(8); |
| assertEq(runChain_8_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_8_0(obj), 900); |
| } |
| |
| //// Test chain of length 8 with late-property-addition at depth 1 |
| function runChain_8_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_8_1() { |
| var obj = createTower(8); |
| assertEq(runChain_8_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_8_1(obj), 900); |
| } |
| |
| //// Test chain of length 8 with late-property-addition at depth 2 |
| function runChain_8_2(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_8_2() { |
| var obj = createTower(8); |
| assertEq(runChain_8_2(obj), NaN); |
| updateChain(obj, 2, 'foo', 9); |
| assertEq(runChain_8_2(obj), 900); |
| } |
| |
| //// Test chain of length 8 with late-property-addition at depth 3 |
| function runChain_8_3(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_8_3() { |
| var obj = createTower(8); |
| assertEq(runChain_8_3(obj), NaN); |
| updateChain(obj, 3, 'foo', 9); |
| assertEq(runChain_8_3(obj), 900); |
| } |
| |
| //// Test chain of length 8 with late-property-addition at depth 4 |
| function runChain_8_4(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_8_4() { |
| var obj = createTower(8); |
| assertEq(runChain_8_4(obj), NaN); |
| updateChain(obj, 4, 'foo', 9); |
| assertEq(runChain_8_4(obj), 900); |
| } |
| |
| //// Test chain of length 8 with late-property-addition at depth 5 |
| function runChain_8_5(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_8_5() { |
| var obj = createTower(8); |
| assertEq(runChain_8_5(obj), NaN); |
| updateChain(obj, 5, 'foo', 9); |
| assertEq(runChain_8_5(obj), 900); |
| } |
| |
| //// Test chain of length 8 with late-property-addition at depth 6 |
| function runChain_8_6(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_8_6() { |
| var obj = createTower(8); |
| assertEq(runChain_8_6(obj), NaN); |
| updateChain(obj, 6, 'foo', 9); |
| assertEq(runChain_8_6(obj), 900); |
| } |
| |
| //// Test chain of length 8 with late-property-addition at depth 7 |
| function runChain_8_7(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_8_7() { |
| var obj = createTower(8); |
| assertEq(runChain_8_7(obj), NaN); |
| updateChain(obj, 7, 'foo', 9); |
| assertEq(runChain_8_7(obj), 900); |
| } |
| |
| //// Test chain of length 8 with late-property-addition at depth 8 |
| function runChain_8_8(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_8_8() { |
| var obj = createTower(8); |
| assertEq(runChain_8_8(obj), NaN); |
| updateChain(obj, 8, 'foo', 9); |
| assertEq(runChain_8_8(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 0 |
| function runChain_9_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_0() { |
| var obj = createTower(9); |
| assertEq(runChain_9_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_9_0(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 1 |
| function runChain_9_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_1() { |
| var obj = createTower(9); |
| assertEq(runChain_9_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_9_1(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 2 |
| function runChain_9_2(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_2() { |
| var obj = createTower(9); |
| assertEq(runChain_9_2(obj), NaN); |
| updateChain(obj, 2, 'foo', 9); |
| assertEq(runChain_9_2(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 3 |
| function runChain_9_3(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_3() { |
| var obj = createTower(9); |
| assertEq(runChain_9_3(obj), NaN); |
| updateChain(obj, 3, 'foo', 9); |
| assertEq(runChain_9_3(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 4 |
| function runChain_9_4(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_4() { |
| var obj = createTower(9); |
| assertEq(runChain_9_4(obj), NaN); |
| updateChain(obj, 4, 'foo', 9); |
| assertEq(runChain_9_4(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 5 |
| function runChain_9_5(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_5() { |
| var obj = createTower(9); |
| assertEq(runChain_9_5(obj), NaN); |
| updateChain(obj, 5, 'foo', 9); |
| assertEq(runChain_9_5(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 6 |
| function runChain_9_6(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_6() { |
| var obj = createTower(9); |
| assertEq(runChain_9_6(obj), NaN); |
| updateChain(obj, 6, 'foo', 9); |
| assertEq(runChain_9_6(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 7 |
| function runChain_9_7(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_7() { |
| var obj = createTower(9); |
| assertEq(runChain_9_7(obj), NaN); |
| updateChain(obj, 7, 'foo', 9); |
| assertEq(runChain_9_7(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 8 |
| function runChain_9_8(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_8() { |
| var obj = createTower(9); |
| assertEq(runChain_9_8(obj), NaN); |
| updateChain(obj, 8, 'foo', 9); |
| assertEq(runChain_9_8(obj), 900); |
| } |
| |
| //// Test chain of length 9 with late-property-addition at depth 9 |
| function runChain_9_9(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_9_9() { |
| var obj = createTower(9); |
| assertEq(runChain_9_9(obj), NaN); |
| updateChain(obj, 9, 'foo', 9); |
| assertEq(runChain_9_9(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 0 |
| function runChain_10_0(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_0() { |
| var obj = createTower(10); |
| assertEq(runChain_10_0(obj), NaN); |
| updateChain(obj, 0, 'foo', 9); |
| assertEq(runChain_10_0(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 1 |
| function runChain_10_1(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_1() { |
| var obj = createTower(10); |
| assertEq(runChain_10_1(obj), NaN); |
| updateChain(obj, 1, 'foo', 9); |
| assertEq(runChain_10_1(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 2 |
| function runChain_10_2(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_2() { |
| var obj = createTower(10); |
| assertEq(runChain_10_2(obj), NaN); |
| updateChain(obj, 2, 'foo', 9); |
| assertEq(runChain_10_2(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 3 |
| function runChain_10_3(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_3() { |
| var obj = createTower(10); |
| assertEq(runChain_10_3(obj), NaN); |
| updateChain(obj, 3, 'foo', 9); |
| assertEq(runChain_10_3(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 4 |
| function runChain_10_4(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_4() { |
| var obj = createTower(10); |
| assertEq(runChain_10_4(obj), NaN); |
| updateChain(obj, 4, 'foo', 9); |
| assertEq(runChain_10_4(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 5 |
| function runChain_10_5(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_5() { |
| var obj = createTower(10); |
| assertEq(runChain_10_5(obj), NaN); |
| updateChain(obj, 5, 'foo', 9); |
| assertEq(runChain_10_5(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 6 |
| function runChain_10_6(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_6() { |
| var obj = createTower(10); |
| assertEq(runChain_10_6(obj), NaN); |
| updateChain(obj, 6, 'foo', 9); |
| assertEq(runChain_10_6(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 7 |
| function runChain_10_7(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_7() { |
| var obj = createTower(10); |
| assertEq(runChain_10_7(obj), NaN); |
| updateChain(obj, 7, 'foo', 9); |
| assertEq(runChain_10_7(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 8 |
| function runChain_10_8(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_8() { |
| var obj = createTower(10); |
| assertEq(runChain_10_8(obj), NaN); |
| updateChain(obj, 8, 'foo', 9); |
| assertEq(runChain_10_8(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 9 |
| function runChain_10_9(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_9() { |
| var obj = createTower(10); |
| assertEq(runChain_10_9(obj), NaN); |
| updateChain(obj, 9, 'foo', 9); |
| assertEq(runChain_10_9(obj), 900); |
| } |
| |
| //// Test chain of length 10 with late-property-addition at depth 10 |
| function runChain_10_10(obj) { |
| var sum = 0; |
| for (var i = 0; i < 100; i++) |
| sum += obj.foo; |
| return sum; |
| } |
| function testChain_10_10() { |
| var obj = createTower(10); |
| assertEq(runChain_10_10(obj), NaN); |
| updateChain(obj, 10, 'foo', 9); |
| assertEq(runChain_10_10(obj), 900); |
| } |
| |
| |
| ///////////////////////////////////////// |
| // RUNNER // |
| ///////////////////////////////////////// |
| |
| testChain_0_0(); |
| testChain_1_0(); |
| testChain_1_1(); |
| testChain_2_0(); |
| testChain_2_1(); |
| testChain_2_2(); |
| testChain_3_0(); |
| testChain_3_1(); |
| testChain_3_2(); |
| testChain_3_3(); |
| testChain_4_0(); |
| testChain_4_1(); |
| testChain_4_2(); |
| testChain_4_3(); |
| testChain_4_4(); |
| testChain_5_0(); |
| testChain_5_1(); |
| testChain_5_2(); |
| testChain_5_3(); |
| testChain_5_4(); |
| testChain_5_5(); |
| testChain_6_0(); |
| testChain_6_1(); |
| testChain_6_2(); |
| testChain_6_3(); |
| testChain_6_4(); |
| testChain_6_5(); |
| testChain_6_6(); |
| testChain_7_0(); |
| testChain_7_1(); |
| testChain_7_2(); |
| testChain_7_3(); |
| testChain_7_4(); |
| testChain_7_5(); |
| testChain_7_6(); |
| testChain_7_7(); |
| testChain_8_0(); |
| testChain_8_1(); |
| testChain_8_2(); |
| testChain_8_3(); |
| testChain_8_4(); |
| testChain_8_5(); |
| testChain_8_6(); |
| testChain_8_7(); |
| testChain_8_8(); |
| testChain_9_0(); |
| testChain_9_1(); |
| testChain_9_2(); |
| testChain_9_3(); |
| testChain_9_4(); |
| testChain_9_5(); |
| testChain_9_6(); |
| testChain_9_7(); |
| testChain_9_8(); |
| testChain_9_9(); |
| testChain_10_0(); |
| testChain_10_1(); |
| testChain_10_2(); |
| testChain_10_3(); |
| testChain_10_4(); |
| testChain_10_5(); |
| testChain_10_6(); |
| testChain_10_7(); |
| testChain_10_8(); |
| testChain_10_9(); |
| testChain_10_10(); |