property-add-shape.js (1209B)
1 function simple() { 2 var o = {a: 1}; 3 o.b = 2; 4 5 assertEq(o.a, 1); 6 assertEq(o.b, 2); 7 } 8 9 function condition1(b) { 10 var o = {a: 1}; 11 12 if (b) { 13 o.b = 2; 14 } 15 16 o.c = 3; 17 18 assertEq(o.a, 1); 19 if (b) { 20 assertEq(o.b, 2); 21 } else { 22 assertEq('b' in o, false); 23 } 24 assertEq(o.c, 3); 25 } 26 27 function condition2(b) { 28 var o = {a: 1}; 29 30 if (b) { 31 o.b = 2; 32 } else { 33 o.b = 3; 34 } 35 36 o.c = 3; 37 38 assertEq(o.a, 1); 39 assertEq(o.b, b ? 2 : 3); 40 assertEq(o.c, 3); 41 } 42 43 function condition3(b) { 44 var o = {a: 1}; 45 46 if (b) { 47 o.b = 2; 48 } else { 49 o.b = 2; 50 } 51 52 o.c = 3; 53 54 assertEq(o.a, 1); 55 assertEq(o.b, 2); 56 assertEq(o.c, 3); 57 } 58 59 function condition4(b) { 60 var o = {a: 1}; 61 62 o.bla = 2; 63 o.bla2 = 2; 64 o.bla3 = 2; 65 o.bla4 = 2; 66 67 if (b) { 68 o.b = 2; 69 } else { 70 o.c = 2; 71 } 72 73 o.d = 3; 74 75 assertEq(o.a, 1); 76 if (b) { 77 assertEq(o.b, 2); 78 assertEq('c' in o, false); 79 } else { 80 assertEq('b' in o, false); 81 assertEq(o.c, 2); 82 } 83 assertEq(o.d, 3); 84 } 85 86 function f() { 87 for (var i = 0; i < 10; i++) { 88 simple(); 89 condition1(i % 2 == 0) 90 condition2(i % 2 == 0) 91 condition3(i % 2 == 0) 92 condition4(i % 2 == 0) 93 } 94 } 95 96 for (var i = 0; i < 10; i++) { 97 f(); 98 }