зеркало из https://github.com/mozilla/gecko-dev.git
Add a misplaced test for bug 648471, found in an old .hg/patches directory while pruning my Mozilla tree count. r=itsatest
--HG-- extra : rebase_source : 7c46baa4297335c05e71ac2e0229c06b84848d99
This commit is contained in:
Родитель
a94c0be873
Коммит
fee6732327
|
@ -24,6 +24,7 @@ script stringify-missing-arguments.js
|
||||||
script stringify-nonarray-noncallable-replacer.js
|
script stringify-nonarray-noncallable-replacer.js
|
||||||
script stringify-primitives.js
|
script stringify-primitives.js
|
||||||
script stringify-replacer.js
|
script stringify-replacer.js
|
||||||
|
script stringify-replacer-array-boxed-elements.js
|
||||||
script stringify-replacer-array-duplicated-element.js
|
script stringify-replacer-array-duplicated-element.js
|
||||||
script stringify-replacer-array-edgecase-jsid-elements.js
|
script stringify-replacer-array-edgecase-jsid-elements.js
|
||||||
script stringify-replacer-array-hijinks.js
|
script stringify-replacer-array-hijinks.js
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
// Any copyright is dedicated to the Public Domain.
|
||||||
|
// http://creativecommons.org/licenses/publicdomain/
|
||||||
|
|
||||||
|
var gTestfile = 'stringify-replacer-array-boxed-elements.js';
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
var BUGNUMBER = 648471;
|
||||||
|
var summary = "Boxed-string/number objects in replacer arrays";
|
||||||
|
|
||||||
|
print(BUGNUMBER + ": " + summary);
|
||||||
|
|
||||||
|
/**************
|
||||||
|
* BEGIN TEST *
|
||||||
|
**************/
|
||||||
|
|
||||||
|
var S = new String(3);
|
||||||
|
var N = new Number(4);
|
||||||
|
|
||||||
|
assertEq(JSON.stringify({ 3: 3, 4: 4 }, [S]),
|
||||||
|
'{"3":3}');
|
||||||
|
assertEq(JSON.stringify({ 3: 3, 4: 4 }, [N]),
|
||||||
|
'{"4":4}');
|
||||||
|
|
||||||
|
Number.prototype.toString = function() { return 3; };
|
||||||
|
assertEq(JSON.stringify({ 3: 3, 4: 4 }, [N]),
|
||||||
|
'{"3":3}');
|
||||||
|
|
||||||
|
String.prototype.toString = function() { return 4; };
|
||||||
|
assertEq(JSON.stringify({ 3: 3, 4: 4 }, [S]),
|
||||||
|
'{"4":4}');
|
||||||
|
|
||||||
|
Number.prototype.toString = function() { return new String(42); };
|
||||||
|
assertEq(JSON.stringify({ 3: 3, 4: 4 }, [N]),
|
||||||
|
'{"3":3}');
|
||||||
|
|
||||||
|
String.prototype.toString = function() { return new Number(17); };
|
||||||
|
assertEq(JSON.stringify({ 3: 3, 4: 4 }, [S]),
|
||||||
|
'{"4":4}');
|
||||||
|
|
||||||
|
Number.prototype.toString = null;
|
||||||
|
assertEq(JSON.stringify({ 3: 3, 4: 4 }, [N]),
|
||||||
|
'{"4":4}');
|
||||||
|
|
||||||
|
String.prototype.toString = null;
|
||||||
|
assertEq(JSON.stringify({ 3: 3, 4: 4 }, [S]),
|
||||||
|
'{"3":3}');
|
||||||
|
|
||||||
|
Number.prototype.valueOf = function() { return 17; };
|
||||||
|
assertEq(JSON.stringify({ 4: 4, 17: 17 }, [N]),
|
||||||
|
'{"17":17}');
|
||||||
|
|
||||||
|
String.prototype.valueOf = function() { return 42; };
|
||||||
|
assertEq(JSON.stringify({ 3: 3, 42: 42 }, [S]),
|
||||||
|
'{"42":42}');
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
|
||||||
|
if (typeof reportCompare === "function")
|
||||||
|
reportCompare(true, true);
|
||||||
|
|
||||||
|
print("Tests complete");
|
Загрузка…
Ссылка в новой задаче