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");