function (jsonObject) { return jsonObject.parse(); } PASS tests[i](nativeJSON) threw exception Error: JSON.parse requires at least one parameter. function (jsonObject) { return jsonObject.parse(''); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('1'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('-1'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('Infinity'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('NaN'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('null'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('undefined'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{}'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('({})'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{a}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{a:}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{a:5}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{a:5,}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{"a"}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{"a":}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{"a":5}'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('{"__proto__":5}'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('{"a":5,}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. json2.js did not throw for a test we expect to throw. function (jsonObject) { return jsonObject.parse('{"a":5,,}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{"a":5,"a",}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{"a":(5,"a"),}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('[]'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('[1]'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('[1,]'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. json2.js did not throw for a test we expect to throw. function (jsonObject) { return jsonObject.parse('[1,2]'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('[1,2,,]'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. json2.js did not throw for a test we expect to throw. function (jsonObject) { return jsonObject.parse('[1,2,,4]'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. json2.js did not throw for a test we expect to throw. function (jsonObject) { return jsonObject.parse('""'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"\'"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\"'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\z"'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\\z"'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\\\z"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\tz"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\tz"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\nz"'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\nz"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\rz"'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\rz"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\/z"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\/z"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\bz"'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. json2.js did not throw for a test we expect to throw. function (jsonObject) { return jsonObject.parse('"a\\bz"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\rz"'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\rz"'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\uz" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\u0z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\u00z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\u000z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\u0000z" '); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\u000Az" '); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\u000az" '); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\u000Gz" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\u000gz" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\u00A0z" '); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\u00a0z" '); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\u00G0z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\u00g0z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\u0A00z" '); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\u0a00z" '); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\u0G00z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\u0g00z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\uA000z" '); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\ua000z" '); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a\\uG000z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('"a\\ug000z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('00'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. json2.js did not throw for a test we expect to throw. function (jsonObject) { return jsonObject.parse('01'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. json2.js did not throw for a test we expect to throw. function (jsonObject) { return jsonObject.parse('0.a'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('0x0'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('2e1.3'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('2e-+10'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('2e+-10'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('2e3e4'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('-01.0'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('-01'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. json2.js did not throw for a test we expect to throw. function (jsonObject) { return jsonObject.parse('-01.a'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('1.e1'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. json2.js did not throw for a test we expect to throw. function (jsonObject) { return jsonObject.parse('{/* block comments are not allowed */}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('{// line comments are not allowed \n}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('true'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('false'); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(simpleObject)); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject)); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject)); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse(JSON.stringify(simpleObject,null,100)); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject,null,100)); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject,null,100)); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse(JSON.stringify(simpleObject,null," ")); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject,null," ")); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject,null," ")); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse(JSON.stringify(simpleObject,null,"\t")); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject,null,"\t")); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject,null,"\t")); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse(JSON.stringify(simpleObject,null,"\n")); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject,null,"\n")); } PASS JSON.stringify(tests[i](nativeJSON)) is tests[i].expected function (jsonObject) { return jsonObject.parse("true", log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse("false", log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse("null", log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse("1", log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse("1.5", log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('"a string"', log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(simpleArray), log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(complexArray), log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(simpleObject), log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(complexObject), log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse('{"__proto__":{"a":5}}', log); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse("true", logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse("false", logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse("null", logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse("1", logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse("1.5", logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse('"a string"', logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse(JSON.stringify(simpleArray), logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse(JSON.stringify(complexArray), logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse(JSON.stringify(simpleObject), logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; return jsonObject.parse(JSON.stringify(complexObject), logOrder); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse("true", logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse("false", logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse("null", logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse("1", logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse("1.5", logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse('"a string"', logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse(JSON.stringify(simpleArray), logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse(JSON.stringify(complexArray), logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse(JSON.stringify(simpleObject), logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { logOrderString = ""; jsonObject.parse(JSON.stringify(complexObject), logOrder); return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { callCount = 0; logOrderString = ""; return jsonObject.parse(JSON.stringify(complexArray), throwAfterFifthCall); } PASS tests[i](nativeJSON) threw exception from reviver. function (jsonObject) { callCount = 0; logOrderString = ""; return jsonObject.parse(JSON.stringify(simpleObject), throwAfterFifthCall); } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { callCount = 0; logOrderString = ""; return jsonObject.parse(JSON.stringify(complexObject), throwAfterFifthCall); } PASS tests[i](nativeJSON) threw exception from reviver. function (jsonObject) { callCount = 0; logOrderString = ""; try { jsonObject.parse(JSON.stringify(complexArray), throwAfterFifthCall); } catch (e) {} return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { callCount = 0; logOrderString = ""; try { jsonObject.parse(JSON.stringify(simpleObject), throwAfterFifthCall); } catch (e) {} return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { callCount = 0; logOrderString = ""; try { jsonObject.parse(JSON.stringify(complexObject), throwAfterFifthCall); } catch (e) {} return logOrderString; } PASS JSON.stringify(tests[i](nativeJSON)) is JSON.stringify(tests[i](JSON)) function (jsonObject) { return jsonObject.parse(JSON.stringify(unicode)); } PASS tests[i](nativeJSON) is tests[i].unstringifiedExpected PASS successfullyParsed is true TEST COMPLETE