diff options
Diffstat (limited to 'js/src/tests/non262/JSON/parse-primitives.js')
-rw-r--r-- | js/src/tests/non262/JSON/parse-primitives.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/js/src/tests/non262/JSON/parse-primitives.js b/js/src/tests/non262/JSON/parse-primitives.js new file mode 100644 index 0000000000..450e1a6577 --- /dev/null +++ b/js/src/tests/non262/JSON/parse-primitives.js @@ -0,0 +1,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"); |