diff options
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!"); |