js/src/tests/ecma_5/String/split-01.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/tests/ecma_5/String/split-01.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,47 @@
     1.4 +/*
     1.5 + * Any copyright is dedicated to the Public Domain.
     1.6 + * http://creativecommons.org/licenses/publicdomain/
     1.7 + */
     1.8 +
     1.9 +var BUGNUMBER = 614608;
    1.10 +var summary = "String.prototype.split tests";
    1.11 +
    1.12 +print(BUGNUMBER + ": " + summary);
    1.13 +
    1.14 +/**************
    1.15 + * BEGIN TEST *
    1.16 + **************/
    1.17 +
    1.18 +function assertEqArr(a1, a2) {
    1.19 +    assertEq(a1.length, a2.length);
    1.20 +
    1.21 +    for(var i=0; i<a1.length; i++) {
    1.22 +        assertEq(a1[i], a2[i]);
    1.23 +    }
    1.24 +}
    1.25 +
    1.26 +var order = "";
    1.27 +var o1 = { toString: function() { order += "b"; return "-"; }};
    1.28 +var o2 = { valueOf:  function() { order += "a"; return 1; }};
    1.29 +var res = "xyz-xyz".split(o1, o2);
    1.30 +
    1.31 +assertEq(order, "ab");
    1.32 +assertEqArr(res, ["xyz"]);
    1.33 +
    1.34 +assertEqArr("".split(/.?/), []);
    1.35 +assertEqArr("abc".split(/\b/), ["abc"]);
    1.36 +
    1.37 +assertEqArr("abc".split(/((()))./, 2), ["",""]);
    1.38 +assertEqArr("abc".split(/((((()))))./, 9), ["","","","","","","","",""]);
    1.39 +
    1.40 +// from ES5 15.5.4.14
    1.41 +assertEqArr("ab".split(/a*?/), ["a", "b"]);
    1.42 +assertEqArr("ab".split(/a*/), ["", "b"]);
    1.43 +assertEqArr("A<B>bold</B>and<CODE>coded</CODE>".split(/<(\/)?([^<>]+)>/),
    1.44 +            ["A", undefined, "B", "bold", "/", "B", "and", undefined,
    1.45 +             "CODE", "coded", "/", "CODE", ""]);
    1.46 +
    1.47 +if (typeof reportCompare === "function")
    1.48 +  reportCompare(true, true);
    1.49 +
    1.50 +print("All tests passed!");

mercurial