diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/non262/String/split-01.js | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/tests/non262/String/split-01.js')
-rw-r--r-- | js/src/tests/non262/String/split-01.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/js/src/tests/non262/String/split-01.js b/js/src/tests/non262/String/split-01.js new file mode 100644 index 0000000000..3eda3b1487 --- /dev/null +++ b/js/src/tests/non262/String/split-01.js @@ -0,0 +1,47 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/licenses/publicdomain/ + */ + +var BUGNUMBER = 614608; +var summary = "String.prototype.split tests"; + +print(BUGNUMBER + ": " + summary); + +/************** + * BEGIN TEST * + **************/ + +function assertEqArr(a1, a2) { + assertEq(a1.length, a2.length); + + for(var i=0; i<a1.length; i++) { + assertEq(a1[i], a2[i]); + } +} + +var order = ""; +var o1 = { toString: function() { order += "b"; return "-"; }}; +var o2 = { valueOf: function() { order += "a"; return 1; }}; +var res = "xyz-xyz".split(o1, o2); + +assertEq(order, "ab"); +assertEqArr(res, ["xyz"]); + +assertEqArr("".split(/.?/), []); +assertEqArr("abc".split(/\b/), ["abc"]); + +assertEqArr("abc".split(/((()))./, 2), ["",""]); +assertEqArr("abc".split(/((((()))))./, 9), ["","","","","","","","",""]); + +// from ES5 15.5.4.14 +assertEqArr("ab".split(/a*?/), ["a", "b"]); +assertEqArr("ab".split(/a*/), ["", "b"]); +assertEqArr("A<B>bold</B>and<CODE>coded</CODE>".split(/<(\/)?([^<>]+)>/), + ["A", undefined, "B", "bold", "/", "B", "and", undefined, + "CODE", "coded", "/", "CODE", ""]); + +if (typeof reportCompare === "function") + reportCompare(true, true); + +print("All tests passed!"); |