| Index: test/mjsunit/json.js
|
| diff --git a/test/mjsunit/json.js b/test/mjsunit/json.js
|
| index 812ffeb5a7ba3c74ca51f4cec34ee32945a88686..8b06a34aa088f0177486c1861034c9829f56662b 100644
|
| --- a/test/mjsunit/json.js
|
| +++ b/test/mjsunit/json.js
|
| @@ -67,7 +67,7 @@ var d4 = {toJSON: Date.prototype.toJSON,
|
| valueOf: "not callable",
|
| toString: "not callable either",
|
| toISOString: function() { return 42; }};
|
| -assertThrows("d4.toJSON()", TypeError); // ToPrimitive throws.
|
| +assertThrows("d4.toJSON()", TypeError); // ToPrimitive throws.
|
|
|
| var d5 = {toJSON: Date.prototype.toJSON,
|
| valueOf: "not callable",
|
| @@ -196,9 +196,6 @@ TestInvalid('"Unterminated string');
|
| TestInvalid('"Unterminated string\\"');
|
| TestInvalid('"Unterminated string\\\\\\"');
|
|
|
| -// JavaScript RegExp literals not valid in JSON.
|
| -TestInvalid('/true/');
|
| -
|
| // Test bad JSON that would be good JavaScript (ES5).
|
| TestInvalid("{true:42}");
|
| TestInvalid("{false:42}");
|
| @@ -382,7 +379,7 @@ var reJSON = /Is callable/;
|
| reJSON.toJSON = function() { return "has toJSON"; };
|
|
|
| assertEquals(
|
| - '[37,null,1,"foo","37","true",null,"has toJSON",null,"has toJSON"]',
|
| + '[37,null,1,"foo","37","true",null,"has toJSON",{},"has toJSON"]',
|
| JSON.stringify([num37, numFoo, numTrue,
|
| strFoo, str37, strTrue,
|
| func, funcJSON, re, reJSON]));
|
| @@ -397,6 +394,9 @@ var callCount = 0;
|
| var counter = { get toJSON() { getCount++;
|
| return function() { callCount++;
|
| return 42; }; } };
|
| +
|
| +// RegExps are not callable, so they are stringified as objects.
|
| +assertEquals('{}', JSON.stringify(/regexp/));
|
| assertEquals('42', JSON.stringify(counter));
|
| assertEquals(1, getCount);
|
| assertEquals(1, callCount);
|
| @@ -419,9 +419,9 @@ assertEquals('"42"', JSON.stringify(falseNum));
|
| // We don't currently allow plain properties called __proto__ in JSON
|
| // objects in JSON.parse. Instead we read them as we would JS object
|
| // literals. If we change that, this test should change with it.
|
| -//
|
| -// Parse a non-object value as __proto__. This must not create a
|
| -// __proto__ property different from the original, and should not
|
| +//
|
| +// Parse a non-object value as __proto__. This must not create a
|
| +// __proto__ property different from the original, and should not
|
| // change the original.
|
| var o = JSON.parse('{"__proto__":5}');
|
| assertEquals(Object.prototype, o.__proto__); // __proto__ isn't changed.
|
|
|