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: JSON Parse error: Unexpected EOF. 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: JSON Parse error: Unexpected identifier "Infinity". function (jsonObject) { return jsonObject.parse('NaN'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Unexpected identifier "NaN". 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: JSON Parse error: Unexpected identifier "undefined". 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: JSON Parse error: Unexpected token '('. function (jsonObject) { return jsonObject.parse('{a}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Expected '}'. function (jsonObject) { return jsonObject.parse('{a:}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Expected '}'. function (jsonObject) { return jsonObject.parse('{a:5}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Expected '}'. function (jsonObject) { return jsonObject.parse('{a:5,}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Expected '}'. function (jsonObject) { return jsonObject.parse('{"a"}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Expected ':' before value in object property definition. function (jsonObject) { return jsonObject.parse('{"a":}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Unexpected token '}'. 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: JSON Parse error: Property name must be a string literal. 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: JSON Parse error: Property name must be a string literal. function (jsonObject) { return jsonObject.parse('{"a":5,"a",}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Expected ':'. function (jsonObject) { return jsonObject.parse('{"a":(5,"a"),}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Unexpected token '('. 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: JSON Parse error: Unexpected comma at the end of array expression. 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: JSON Parse error: Unexpected token ','. 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: JSON Parse error: Unexpected token ','. 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: JSON Parse error: Unterminated string. function (jsonObject) { return jsonObject.parse('"a\\z"'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Invalid escape character z. function (jsonObject) { return jsonObject.parse('"a\\\z"'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Invalid escape character z. 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 tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Unterminated string. json2.js did not throw for a test we expect to throw. 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: JSON Parse error: Unterminated 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: JSON Parse error: Unterminated 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: JSON Parse error: Unterminated 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: JSON Parse error: Unterminated 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: JSON Parse error: "\uz" " is not a valid unicode escape. function (jsonObject) { return jsonObject.parse('"a\\u0z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: "\u0z" " is not a valid unicode escape. function (jsonObject) { return jsonObject.parse('"a\\u00z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: "\u00z"" is not a valid unicode escape. function (jsonObject) { return jsonObject.parse('"a\\u000z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: "\u000z" is not a valid unicode escape. 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: JSON Parse error: "\u000G" is not a valid unicode escape. function (jsonObject) { return jsonObject.parse('"a\\u000gz" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: "\u000g" is not a valid unicode escape. 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: JSON Parse error: "\u00G0" is not a valid unicode escape. function (jsonObject) { return jsonObject.parse('"a\\u00g0z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: "\u00g0" is not a valid unicode escape. 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: JSON Parse error: "\u0G00" is not a valid unicode escape. function (jsonObject) { return jsonObject.parse('"a\\u0g00z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: "\u0g00" is not a valid unicode escape. 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: JSON Parse error: "\uG000" is not a valid unicode escape. function (jsonObject) { return jsonObject.parse('"a\\ug000z" '); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: "\ug000" is not a valid unicode escape. function (jsonObject) { return jsonObject.parse('00'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: 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: JSON Parse error: 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: JSON Parse error: Invalid digits after decimal point. function (jsonObject) { return jsonObject.parse('0x0'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('2e1.3'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('2e-+10'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Exponent symbols should be followed by an optional '+' or '-' and then by at least one number. function (jsonObject) { return jsonObject.parse('2e+-10'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Exponent symbols should be followed by an optional '+' or '-' and then by at least one number. function (jsonObject) { return jsonObject.parse('2e3e4'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('-01.0'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Unable to parse JSON string. function (jsonObject) { return jsonObject.parse('-01'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: 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: JSON Parse error: Invalid digits after decimal point. function (jsonObject) { return jsonObject.parse('1.e1'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Invalid digits after decimal point. 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: JSON Parse error: Unrecognized token '/'. function (jsonObject) { return jsonObject.parse('{// line comments are not allowed \n}'); } PASS tests[i](nativeJSON) threw exception SyntaxError: JSON Parse error: Unrecognized token '/'. 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