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