mirror of
https://github.com/tc39/test262.git
synced 2025-04-08 19:35:28 +02:00
parent
d0b5137c15
commit
71e40aad50
@ -25,29 +25,11 @@ info: |
|
||||
1. If stack contains value, throw a TypeError exception because the structure is cyclical.
|
||||
---*/
|
||||
|
||||
var direct = [];
|
||||
var directReplacer = function(_key, value) {
|
||||
if (value === direct) {
|
||||
return [direct];
|
||||
}
|
||||
|
||||
return value;
|
||||
var circular = [{}];
|
||||
var circularReplacer = function(k, v) {
|
||||
return circular;
|
||||
};
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
JSON.stringify(direct, directReplacer);
|
||||
});
|
||||
|
||||
var arr = [];
|
||||
var indirect = [[arr]];
|
||||
var indirectReplacer = function(_key, value) {
|
||||
if (value === arr) {
|
||||
return [indirect];
|
||||
}
|
||||
|
||||
return value;
|
||||
};
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
JSON.stringify(indirect, indirectReplacer);
|
||||
JSON.stringify(circular, circularReplacer);
|
||||
});
|
||||
|
@ -25,13 +25,9 @@ info: |
|
||||
1. If stack contains value, throw a TypeError exception because the structure is cyclical.
|
||||
---*/
|
||||
|
||||
var direct = {};
|
||||
var directReplacer = function(_key, value) {
|
||||
if (value === direct) {
|
||||
return {prop: direct};
|
||||
}
|
||||
|
||||
return value;
|
||||
var direct = {prop: {}};
|
||||
var directReplacer = function(k, v) {
|
||||
return direct;
|
||||
};
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
@ -39,10 +35,10 @@ assert.throws(TypeError, function() {
|
||||
});
|
||||
|
||||
var indirect = {p1: {p2: {}}};
|
||||
var indirectReplacer = function(_key, value) {
|
||||
if (value === indirect.p1.p2) {
|
||||
return {p3: indirect};
|
||||
}
|
||||
var indirectReplacer = function(key, value) {
|
||||
if (key === 'p2') {
|
||||
return indirect;
|
||||
}
|
||||
|
||||
return value;
|
||||
};
|
||||
|
@ -27,21 +27,13 @@ info: |
|
||||
1. If stack contains value, throw a TypeError exception because the structure is cyclical.
|
||||
---*/
|
||||
|
||||
var direct = [];
|
||||
direct.toJSON = function() {
|
||||
return [direct];
|
||||
};
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
JSON.stringify(direct);
|
||||
});
|
||||
|
||||
var arr = [];
|
||||
var circular = [arr];
|
||||
|
||||
arr.toJSON = function() {
|
||||
return [indirect];
|
||||
return circular;
|
||||
};
|
||||
var indirect = [[arr]];
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
JSON.stringify(indirect);
|
||||
JSON.stringify(circular);
|
||||
});
|
||||
|
@ -27,26 +27,13 @@ info: |
|
||||
1. If stack contains value, throw a TypeError exception because the structure is cyclical.
|
||||
---*/
|
||||
|
||||
var direct = {
|
||||
toJSON: function() {
|
||||
return {prop: direct};
|
||||
},
|
||||
var obj = {};
|
||||
var circular = { prop: obj };
|
||||
|
||||
obj.toJSON = function() {
|
||||
return circular;
|
||||
};
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
JSON.stringify(direct);
|
||||
});
|
||||
|
||||
var indirect = {
|
||||
p1: {
|
||||
p2: {
|
||||
toJSON: function() {
|
||||
return {p3: indirect};
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
JSON.stringify(indirect);
|
||||
JSON.stringify(circular);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user