| Index: test/mjsunit/json.js
|
| diff --git a/test/mjsunit/json.js b/test/mjsunit/json.js
|
| index bead376f84da7b82796ec6cdd18ab94a26254bc8..a8688bc8a4b15c84d2417ea67ffb7e5dc3ef9af4 100644
|
| --- a/test/mjsunit/json.js
|
| +++ b/test/mjsunit/json.js
|
| @@ -257,6 +257,39 @@ assertEquals("[1,2,[3,[4],5],6,7]",
|
| assertEquals("[2,4,[6,[8],10],12,14]",
|
| JSON.stringify([1, 2, [3, [4], 5], 6, 7], DoubleNumbers));
|
| assertEquals('["a","ab","abc"]', JSON.stringify(["a","ab","abc"]));
|
| +assertEquals('{"a":1,"c":true}',
|
| + JSON.stringify({ a : 1,
|
| + b : function() { 1 },
|
| + c : true,
|
| + d : function() { 2 } }));
|
| +assertEquals('[1,null,true,null]',
|
| + JSON.stringify([1, function() { 1 }, true, function() { 2 }]));
|
| +assertEquals('"toJSON 123"',
|
| + JSON.stringify({ toJSON : function() { return 'toJSON 123'; } }));
|
| +assertEquals('{"a":321}',
|
| + JSON.stringify({ a : { toJSON : function() { return 321; } } }));
|
| +assertEquals('{"getter":123}',
|
| + JSON.stringify({ get getter() { return 123; } }));
|
| +assertEquals('{"a":"abc","b":"\u1234bc"}',
|
| + JSON.stringify({ a : "abc", b : "\u1234bc" }));
|
| +
|
| +var a = { a : 1, b : 2 };
|
| +delete a.a;
|
| +assertEquals('{"b":2}', JSON.stringify(a));
|
| +
|
| +var b = {};
|
| +b.__proto__ = { toJSON : function() { return 321;} };
|
| +assertEquals("321", JSON.stringify(b));
|
| +
|
| +var array = [""];
|
| +var expected = '""';
|
| +for (var i = 0; i < 10000; i++) {
|
| + array.push("");
|
| + expected = '"",' + expected;
|
| +}
|
| +expected = '[' + expected + ']';
|
| +assertEquals(expected, JSON.stringify(array));
|
| +
|
|
|
| var circular = [1, 2, 3];
|
| circular[2] = circular;
|
| @@ -428,5 +461,3 @@ var o = JSON.parse('{"__proto__":5}');
|
| assertEquals(Object.prototype, o.__proto__); // __proto__ isn't changed.
|
| assertEquals(0, Object.keys(o).length); // __proto__ isn't added as enumerable.
|
|
|
| -
|
| -
|
|
|