JSON.parse has bad is array assert
[WebKit-https.git] / JSTests / stress / json-parse-array-prototype-is-array-assert.js
1 function assert(b) {
2     if (!b)
3         throw new Error;
4 }
5
6 assert(JSON.stringify(JSON.parse('[1337,42]', function (x, y) {
7     if (this instanceof Array) {
8         Object.defineProperty(this, '1', {value: Array.prototype});
9         return y;
10     }
11     return this;
12 })) === '{"":[1337,[]]}');
13
14 assert(JSON.stringify(JSON.parse('[0, 1]', function(x, y) {
15     this[1] = Array.prototype;
16     return y;
17 })) === '[0,[]]');
18
19 assert(JSON.stringify(JSON.parse('{"x":22, "y":44}', function(a, b) {
20     this.y = Array.prototype;
21     return b;
22 })) === '{"x":22,"y":[]}');
23
24 Array.prototype[0] = 42;
25 assert(JSON.stringify(JSON.parse('{"x":22, "y":44}', function(a, b) {
26     this.y = Array.prototype;
27     return b;
28 })) === '{"x":22,"y":[42]}');