mirror of
https://github.com/tc39/test262.git
synced 2025-07-05 05:04:42 +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.
|
1. If stack contains value, throw a TypeError exception because the structure is cyclical.
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var direct = [];
|
var circular = [{}];
|
||||||
var directReplacer = function(_key, value) {
|
var circularReplacer = function(k, v) {
|
||||||
if (value === direct) {
|
return circular;
|
||||||
return [direct];
|
|
||||||
}
|
|
||||||
|
|
||||||
return value;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
JSON.stringify(direct, directReplacer);
|
JSON.stringify(circular, circularReplacer);
|
||||||
});
|
|
||||||
|
|
||||||
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);
|
|
||||||
});
|
});
|
||||||
|
@ -25,13 +25,9 @@ info: |
|
|||||||
1. If stack contains value, throw a TypeError exception because the structure is cyclical.
|
1. If stack contains value, throw a TypeError exception because the structure is cyclical.
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var direct = {};
|
var direct = {prop: {}};
|
||||||
var directReplacer = function(_key, value) {
|
var directReplacer = function(k, v) {
|
||||||
if (value === direct) {
|
return direct;
|
||||||
return {prop: direct};
|
|
||||||
}
|
|
||||||
|
|
||||||
return value;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
@ -39,9 +35,9 @@ assert.throws(TypeError, function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
var indirect = {p1: {p2: {}}};
|
var indirect = {p1: {p2: {}}};
|
||||||
var indirectReplacer = function(_key, value) {
|
var indirectReplacer = function(key, value) {
|
||||||
if (value === indirect.p1.p2) {
|
if (key === 'p2') {
|
||||||
return {p3: indirect};
|
return indirect;
|
||||||
}
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
|
@ -27,21 +27,13 @@ info: |
|
|||||||
1. If stack contains value, throw a TypeError exception because the structure is cyclical.
|
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 arr = [];
|
||||||
|
var circular = [arr];
|
||||||
|
|
||||||
arr.toJSON = function() {
|
arr.toJSON = function() {
|
||||||
return [indirect];
|
return circular;
|
||||||
};
|
};
|
||||||
var indirect = [[arr]];
|
|
||||||
|
|
||||||
assert.throws(TypeError, function() {
|
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.
|
1. If stack contains value, throw a TypeError exception because the structure is cyclical.
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
var direct = {
|
var obj = {};
|
||||||
toJSON: function() {
|
var circular = { prop: obj };
|
||||||
return {prop: direct};
|
|
||||||
},
|
obj.toJSON = function() {
|
||||||
|
return circular;
|
||||||
};
|
};
|
||||||
|
|
||||||
assert.throws(TypeError, function() {
|
assert.throws(TypeError, function() {
|
||||||
JSON.stringify(direct);
|
JSON.stringify(circular);
|
||||||
});
|
|
||||||
|
|
||||||
var indirect = {
|
|
||||||
p1: {
|
|
||||||
p2: {
|
|
||||||
toJSON: function() {
|
|
||||||
return {p3: indirect};
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
assert.throws(TypeError, function() {
|
|
||||||
JSON.stringify(indirect);
|
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user