diff options
Diffstat (limited to 'js/src/tests/test262/built-ins/String/prototype/split/separator-undef-limit-custom.js')
-rw-r--r-- | js/src/tests/test262/built-ins/String/prototype/split/separator-undef-limit-custom.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/String/prototype/split/separator-undef-limit-custom.js b/js/src/tests/test262/built-ins/String/prototype/split/separator-undef-limit-custom.js new file mode 100644 index 0000000000..f711c7f123 --- /dev/null +++ b/js/src/tests/test262/built-ins/String/prototype/split/separator-undef-limit-custom.js @@ -0,0 +1,69 @@ +// Copyright (C) 2020 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-string.prototype.split +description: Separator is undefined, limit is a positive number, return a new array with the string +info: | + ... + 3. Let S be ? ToString(O). + 4. Let A be ! ArrayCreate(0). + ... + 6. If limit is undefined, let lim be 232 - 1; else let lim be ? ToUint32(limit). + 7. Let R be ? ToString(separator). + 8. If lim = 0, return A. + 9. If separator is undefined, then + a. Perform ! CreateDataPropertyOrThrow(A, "0", S). + b. Return A. +---*/ + +var str = 'undefined is not a function'; + +var result = str.split(undefined, 1); + +assert.sameValue(Array.isArray(result), true, '1, result is array'); +assert.sameValue(result.length, 1, '1, result.length'); +assert.sameValue(result[0], str, '1, [0] is the same string'); + +result = str.split(undefined, 2); + +assert.sameValue(Array.isArray(result), true, '2, result is array'); +assert.sameValue(result.length, 1, '2, result.length'); +assert.sameValue(result[0], str, '2, [0] is the same string'); + +result = str.split(undefined, undefined); + +assert.sameValue(Array.isArray(result), true, 'undefined, result is array'); +assert.sameValue(result.length, 1, 'undefined, result.length'); +assert.sameValue(result[0], str, 'undefined, [0] is the same string'); + +result = str.split(undefined, true); + +assert.sameValue(Array.isArray(result), true, 'boolean, result is array'); +assert.sameValue(result.length, 1, 'boolean, result.length'); +assert.sameValue(result[0], str, 'boolean, [0] is the same string'); + +result = str.split(undefined, 2 ** 32 + 1); + +assert.sameValue(Array.isArray(result), true, 'ToUint32 2 ** 32 + 1, result is array'); +assert.sameValue(result.length, 1, 'ToUint32 2 ** 32 + 1, result.length'); +assert.sameValue(result[0], str, 'ToUint32 2 ** 32 + 1, [0] is the same string'); + +result = str.split(undefined, 2 ** 31); + +assert.sameValue(Array.isArray(result), true, 'ToUint32 2 ** 31, result is array'); +assert.sameValue(result.length, 1, 'ToUint32 2 ** 31, result.length'); +assert.sameValue(result[0], str, 'ToUint32 2 ** 31, [0] is the same string'); + +result = str.split(undefined, 2 ** 16); + +assert.sameValue(Array.isArray(result), true, 'ToUint32 2 ** 16, result is array'); +assert.sameValue(result.length, 1, 'ToUint32 2 ** 16, result.length'); +assert.sameValue(result[0], str, 'ToUint32 2 ** 16, [0] is the same string'); + +result = str.split(undefined, {valueOf() { return 1; }}); + +assert.sameValue(Array.isArray(result), true, 'boolean, result is array'); +assert.sameValue(result.length, 1, 'boolean, result.length'); +assert.sameValue(result[0], str, 'boolean, [0] is the same string'); + +reportCompare(0, 0); |