function (jsonObject){
        return jsonObject.parse();
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token u in JSON at position 0.
function (jsonObject){
        return jsonObject.parse('');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected end of JSON input.
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: Unexpected token I in JSON at position 0.
function (jsonObject){
        return jsonObject.parse('NaN');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token N in JSON at position 0.
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: Unexpected token u in JSON at position 0.
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: Unexpected token ( in JSON at position 0.
function (jsonObject){
        return jsonObject.parse('{a}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token a in JSON at position 1.
function (jsonObject){
        return jsonObject.parse('{a:}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token a in JSON at position 1.
function (jsonObject){
        return jsonObject.parse('{a:5}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token a in JSON at position 1.
function (jsonObject){
        return jsonObject.parse('{a:5,}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token a in JSON at position 1.
function (jsonObject){
        return jsonObject.parse('{"a"}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token } in JSON at position 4.
function (jsonObject){
        return jsonObject.parse('{"a":}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token } in JSON at position 5.
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}');
    }
FAIL JSON.stringify(tests[i](nativeJSON)) should be {}. Was {"__proto__":5}.
function (jsonObject){
        return jsonObject.parse('{"a":5,}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token } in JSON at position 7.
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: Unexpected token , in JSON at position 7.
function (jsonObject){
        return jsonObject.parse('{"a":5,"a",}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token , in JSON at position 10.
function (jsonObject){
        return jsonObject.parse('{"a":(5,"a"),}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token ( in JSON at position 5.
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: Unexpected token ] in JSON at position 3.
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: Unexpected token , in JSON at position 5.
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: Unexpected token , in JSON at position 5.
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: Unexpected end of JSON input.
function (jsonObject){
        return jsonObject.parse('"a\\z"');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token z in JSON at position 3.
function (jsonObject){
        return jsonObject.parse('"a\\\z"');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token z in JSON at position 3.
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: Unexpected token 	 in JSON at position 2.
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: Unexpected token 
 in JSON at position 2.
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: Unexpected token 
 in JSON at position 2.
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: Unexpected token  in JSON at position 2.
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: Unexpected token 
 in JSON at position 2.
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: Unexpected token z in JSON at position 4.
function (jsonObject){
        return jsonObject.parse('"a\\u0z"    ');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token z in JSON at position 5.
function (jsonObject){
        return jsonObject.parse('"a\\u00z"   ');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token z in JSON at position 6.
function (jsonObject){
        return jsonObject.parse('"a\\u000z"  ');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token z in JSON at position 7.
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: Unexpected token G in JSON at position 7.
function (jsonObject){
        return jsonObject.parse('"a\\u000gz" ');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token g in JSON at position 7.
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: Unexpected token G in JSON at position 6.
function (jsonObject){
        return jsonObject.parse('"a\\u00g0z" ');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token g in JSON at position 6.
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: Unexpected token G in JSON at position 5.
function (jsonObject){
        return jsonObject.parse('"a\\u0g00z" ');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token g in JSON at position 5.
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: Unexpected token G in JSON at position 4.
function (jsonObject){
        return jsonObject.parse('"a\\ug000z" ');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token g in JSON at position 4.
function (jsonObject){
        return jsonObject.parse('00');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected number in JSON at position 1.
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: Unexpected number in JSON at position 1.
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: Unexpected token a in JSON at position 2.
function (jsonObject){
        return jsonObject.parse('0x0');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token x in JSON at position 1.
function (jsonObject){
        return jsonObject.parse('2e1.3');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token . in JSON at position 3.
function (jsonObject){
        return jsonObject.parse('2e-+10');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token + in JSON at position 3.
function (jsonObject){
        return jsonObject.parse('2e+-10');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected number in JSON at position 3.
function (jsonObject){
        return jsonObject.parse('2e3e4');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token e in JSON at position 3.
function (jsonObject){
        return jsonObject.parse('-01.0');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected number in JSON at position 2.
function (jsonObject){
        return jsonObject.parse('-01');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected number in JSON at position 2.
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: Unexpected number in JSON at position 2.
function (jsonObject){
        return jsonObject.parse('1.e1');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token e in JSON at position 2.
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: Unexpected token / in JSON at position 1.
function (jsonObject){
        return jsonObject.parse('{// line comments are not allowed \n}');
    }
PASS tests[i](nativeJSON) threw exception SyntaxError: Unexpected token / in JSON at position 1.
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);
    }
FAIL JSON.stringify(tests[i](nativeJSON)) should be {"":{},"keyType":"string"}. Was {"":{"__proto__":{"keyType":"string"}},"keyType":"string"}.
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