diff options
Diffstat (limited to 'js/src/tests/js1_5/extensions/regress-354541-03.js')
-rw-r--r-- | js/src/tests/js1_5/extensions/regress-354541-03.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/js/src/tests/js1_5/extensions/regress-354541-03.js b/js/src/tests/js1_5/extensions/regress-354541-03.js new file mode 100644 index 000000000..2468192e4 --- /dev/null +++ b/js/src/tests/js1_5/extensions/regress-354541-03.js @@ -0,0 +1,55 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +//----------------------------------------------------------------------------- +var BUGNUMBER = 354541; +var summary = 'Regression to standard class constructors in case labels'; +var actual = ''; +var expect = ''; + + +printBugNumber(BUGNUMBER); +printStatus (summary + ': top level'); + +String.prototype.trim = function() { print('hallo'); }; + +String.prototype.trim = function() { return 'hallo'; }; + +const S = String; +const Sp = String.prototype; + +expect = 'hallo'; +var expectStringInvariant = true + var actualStringInvariant; +var expectStringPrototypeInvariant = true; +var actualStringPrototypeInvariant; + +if (typeof Script == 'undefined') +{ + print('Test skipped. Script not defined.'); + reportCompare("Script not defined, Test skipped.", + "Script not defined, Test skipped.", + summary); +} +else +{ + var s = Script('var tmp = function(o) { switch(o) { case String: case 1: return ""; } }; actualStringInvariant = (String === S); actualStringPrototypeInvariant = (String.prototype === Sp); actual = "".trim();'); + try + { + s(); + } + catch(ex) + { + actual = ex + ''; + } + reportCompare(expect, actual, 'trim() returned'); + reportCompare(expectStringInvariant, actualStringInvariant, + 'String invariant'); + reportCompare(expectStringPrototypeInvariant, + actualStringPrototypeInvariant, + 'String.prototype invariant'); + +} + |