1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
var x;
// check an empty object, just for sanity
var emptyObject = "{}";
x = JSON.parse(emptyObject);
assertEq(typeof x, "object");
assertEq(x instanceof Object, true);
x = JSON.parse(emptyObject);
assertEq(typeof x, "object");
// booleans and null
x = JSON.parse("true");
assertEq(x, true);
x = JSON.parse("true ");
assertEq(x, true);
x = JSON.parse("false");
assertEq(x, false);
x = JSON.parse(" null ");
assertEq(x, null);
// numbers
x = JSON.parse("1234567890");
assertEq(x, 1234567890);
x = JSON.parse("-9876.543210");
assertEq(x, -9876.543210);
x = JSON.parse("0.123456789e-12");
assertEq(x, 0.123456789e-12);
x = JSON.parse("1.234567890E+34");
assertEq(x, 1.234567890E+34);
x = JSON.parse(" 23456789012E66 \r\r\r\r \n\n\n\n ");
assertEq(x, 23456789012E66);
// strings
x = JSON.parse('"foo"');
assertEq(x, "foo");
x = JSON.parse('"\\r\\n"');
assertEq(x, "\r\n");
x = JSON.parse(' "\\uabcd\uef4A"');
assertEq(x, "\uabcd\uef4A");
x = JSON.parse('"\\uabcd" ');
assertEq(x, "\uabcd");
x = JSON.parse('"\\f"');
assertEq(x, "\f");
/******************************************************************************/
if (typeof reportCompare === "function")
reportCompare(true, true);
print("Tests complete");
|