1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
// Array includes objects with duplicate keys and integer keys.
let json = `[
{"x1": 1},
{"x2": 2},
{"x3": 3},
{"x1": 1, "y": 0},
{"x2": 1, "y": 0},
{"x3": 1, "y": 0},
{"x1": 1, "x1": 2, "y": 0},
{"x1": 1, "x1": 2, "y": 0},
{"x1": 1, "x1": 2, "y": 0},
{"0": 1, "x1": 1},
{"0": 1, "0": 2, "x1": 1},
{"0": 1, "0": 2, "x1": 1},
{"2147483648": 1},
{"2147483648": 2},
{"2147483648": 0, "x": 0, "2147483648": 3},
{"4294967295": 4},
{"4294967295": 5},
{"-1": 6},
{"-1": 7},
{"__proto__": 1},
{"__proto__": 2}
]`;
for (let i = 0; i < 3; i++) {
let res = JSON.parse(json);
assertEq(JSON.stringify(res),
`[{"x1":1},` +
`{"x2":2},` +
`{"x3":3},` +
`{"x1":1,"y":0},` +
`{"x2":1,"y":0},` +
`{"x3":1,"y":0},` +
`{"x1":2,"y":0},` +
`{"x1":2,"y":0},` +
`{"x1":2,"y":0},` +
`{"0":1,"x1":1},` +
`{"0":2,"x1":1},` +
`{"0":2,"x1":1},` +
`{"2147483648":1},` +
`{"2147483648":2},` +
`{"2147483648":3,"x":0},` +
`{"4294967295":4},` +
`{"4294967295":5},` +
`{"-1":6},` +
`{"-1":7},` +
`{"__proto__":1},` +
`{"__proto__":2}]`);
}
|