js/src/tests/ecma_5/JSON/stringify-replacer-array-skipped-element.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 // Any copyright is dedicated to the Public Domain.
michael@0 2 // http://creativecommons.org/licenses/publicdomain/
michael@0 3
michael@0 4 var gTestfile = 'stringify-replacer-array-skipped-element.js';
michael@0 5 //-----------------------------------------------------------------------------
michael@0 6 var BUGNUMBER = 648471;
michael@0 7 var summary =
michael@0 8 "Better/more correct handling for replacer arrays with getter array index " +
michael@0 9 "properties";
michael@0 10
michael@0 11 print(BUGNUMBER + ": " + summary);
michael@0 12
michael@0 13 /**************
michael@0 14 * BEGIN TEST *
michael@0 15 **************/
michael@0 16
michael@0 17 assertEq(JSON.stringify({ 3: 3, 4: 4 },
michael@0 18 ["3", { toString: function() { return "4" } }]),
michael@0 19 '{"3":3}');
michael@0 20
michael@0 21 assertEq(JSON.stringify({ 3: 3, true: 4 }, ["3", true]),
michael@0 22 '{"3":3}');
michael@0 23
michael@0 24 assertEq(JSON.stringify({ 3: 3, true: 4 }, ["3", "true", true]),
michael@0 25 '{"3":3,"true":4}');
michael@0 26
michael@0 27 assertEq(JSON.stringify({ 3: 3, true: 4 }, ["3", true, "true"]),
michael@0 28 '{"3":3,"true":4}');
michael@0 29
michael@0 30 assertEq(JSON.stringify({ 3: 3, false: 4 }, ["3", false]),
michael@0 31 '{"3":3}');
michael@0 32
michael@0 33 assertEq(JSON.stringify({ 3: 3, false: 4 }, ["3", "false", false]),
michael@0 34 '{"3":3,"false":4}');
michael@0 35
michael@0 36 assertEq(JSON.stringify({ 3: 3, false: 4 }, ["3", false, "false"]),
michael@0 37 '{"3":3,"false":4}');
michael@0 38
michael@0 39 assertEq(JSON.stringify({ 3: 3, undefined: 4 }, ["3", undefined]),
michael@0 40 '{"3":3}');
michael@0 41
michael@0 42 assertEq(JSON.stringify({ 3: 3, undefined: 4 }, ["3", "undefined", undefined]),
michael@0 43 '{"3":3,"undefined":4}');
michael@0 44
michael@0 45 assertEq(JSON.stringify({ 3: 3, undefined: 4 }, ["3", undefined, "undefined"]),
michael@0 46 '{"3":3,"undefined":4}');
michael@0 47
michael@0 48 assertEq(JSON.stringify({ 3: 3, null: 4 }, ["3", null]),
michael@0 49 '{"3":3}');
michael@0 50
michael@0 51 assertEq(JSON.stringify({ 3: 3, null: 4 }, ["3", "null", null]),
michael@0 52 '{"3":3,"null":4}');
michael@0 53
michael@0 54 assertEq(JSON.stringify({ 3: 3, null: 4 }, ["3", null, "null"]),
michael@0 55 '{"3":3,"null":4}');
michael@0 56
michael@0 57 /******************************************************************************/
michael@0 58
michael@0 59 if (typeof reportCompare === "function")
michael@0 60 reportCompare(true, true);
michael@0 61
michael@0 62 print("Tests complete");

mercurial