summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/Symbol/json-stringify-keys.js
blob: 3818cbb339b5fd415034a0c8b78becf8b4019b21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/licenses/publicdomain/ */

// JSON.stringify ignores symbol-keyed properties, even enumerable ones.

var obj = {a: 1};
obj[Symbol.for("ponies")] = {toJSON: function () { throw "fit"; }};
obj[Symbol.iterator] = {toJSON: function () { throw "fit"; }};
assertEq(JSON.stringify(obj), '{"a":1}');

var replacer = function (k, v) {
    if (typeof k === "symbol")
        throw "fit";
    return v;
};
assertEq(JSON.stringify(obj, replacer), '{"a":1}');

if (typeof reportCompare === 'function')
    reportCompare(0, 0, 'ok');