1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/ecma_5/JSON/parse-primitives.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,64 @@ 1.4 +// Ported from dom/src/json/test/unit/test_decode_primitives.js 1.5 + 1.6 +var x; 1.7 + 1.8 +// check an empty object, just for sanity 1.9 +var emptyObject = "{}"; 1.10 +x = JSON.parse(emptyObject); 1.11 +assertEq(typeof x, "object"); 1.12 +assertEq(x instanceof Object, true); 1.13 + 1.14 +x = JSON.parse(emptyObject); 1.15 +assertEq(typeof x, "object"); 1.16 + 1.17 +// booleans and null 1.18 +x = JSON.parse("true"); 1.19 +assertEq(x, true); 1.20 + 1.21 +x = JSON.parse("true "); 1.22 +assertEq(x, true); 1.23 + 1.24 +x = JSON.parse("false"); 1.25 +assertEq(x, false); 1.26 + 1.27 +x = JSON.parse(" null "); 1.28 +assertEq(x, null); 1.29 + 1.30 +// numbers 1.31 +x = JSON.parse("1234567890"); 1.32 +assertEq(x, 1234567890); 1.33 + 1.34 +x = JSON.parse("-9876.543210"); 1.35 +assertEq(x, -9876.543210); 1.36 + 1.37 +x = JSON.parse("0.123456789e-12"); 1.38 +assertEq(x, 0.123456789e-12); 1.39 + 1.40 +x = JSON.parse("1.234567890E+34"); 1.41 +assertEq(x, 1.234567890E+34); 1.42 + 1.43 +x = JSON.parse(" 23456789012E66 \r\r\r\r \n\n\n\n "); 1.44 +assertEq(x, 23456789012E66); 1.45 + 1.46 +// strings 1.47 +x = JSON.parse('"foo"'); 1.48 +assertEq(x, "foo"); 1.49 + 1.50 +x = JSON.parse('"\\r\\n"'); 1.51 +assertEq(x, "\r\n"); 1.52 + 1.53 +x = JSON.parse(' "\\uabcd\uef4A"'); 1.54 +assertEq(x, "\uabcd\uef4A"); 1.55 + 1.56 +x = JSON.parse('"\\uabcd" '); 1.57 +assertEq(x, "\uabcd"); 1.58 + 1.59 +x = JSON.parse('"\\f"'); 1.60 +assertEq(x, "\f"); 1.61 + 1.62 +/******************************************************************************/ 1.63 + 1.64 +if (typeof reportCompare === "function") 1.65 + reportCompare(true, true); 1.66 + 1.67 +print("Tests complete");