testInitSingletons.js (1263B)
1 var x = [1,2.5,"three",true,false,null,[1,2,3],{a:0,b:1}]; 2 assertEq(String(x), "1,2.5,three,true,false,,1,2,3,[object Object]"); 3 assertEq(x.length, 8); 4 assertEq(x[7].a, 0); 5 assertEq(x[7].b, 1); 6 7 var y = {a:0,a:1,a:2}; 8 assertEq(y.a,2); 9 10 var z = {a:0,b:1,__proto__:{c:2,d:3}}; 11 assertEq(z.a,0); 12 assertEq(z.b,1); 13 assertEq(z.c,2); 14 assertEq(z.d,3); 15 16 function foo() { 17 var q = eval("[1,2,3]"); 18 var r = eval("[1,2,3]"); 19 assertEq(q === r, false); 20 } 21 foo(); 22 23 var q = {0x4fffffff: 0, 0x7fffffff: 1, 0xffffffff: 2}; 24 assertEq(q[1342177279], 0); 25 assertEq(q[2147483647], 1); 26 assertEq(q[4294967295], 2); 27 28 try { 29 [1,2,3,{a:0,b:1}].foo.bar; 30 } catch (e) { 31 assertEq(/(.foo is|"bar" of) undefined/.test(e.message), true); 32 } 33 34 var a = [1 + 1, 3 * 2, 6 - 5, 14 % 6, 15 / 5, 1 << 3, 35 8 >> 2, 5 | 2, 5 ^ 3, ~3, -3,"a" + "b", !true, !false]; 36 assertEq(String(a), "2,6,1,2,3,8,2,7,6,-4,-3,ab,false,true"); 37 assertEq(a.length, 14); 38 39 var b = { 40 a: 1 + 1, 41 b: 3 * 2, 42 c: 6 - 5, 43 d: 14 % 6, 44 e: 15 / 5, 45 f: 1 << 3, 46 g: 8 >> 2, 47 h: 5 | 2, 48 i: 5 ^ 3, 49 j: ~3, 50 k: -3, 51 l: "a" + "b", 52 m: !true, 53 n: !false, 54 } 55 56 var char = "a".charCodeAt(0); 57 for (var i = 0; i < a.length; i++) { 58 assertEq(b[String.fromCharCode(char)], a[i]); 59 char++; 60 }