diff options
Diffstat (limited to 'js/src/tests/test262/intl402/Segmenter/prototype/segment/segment-tostring.js')
-rw-r--r-- | js/src/tests/test262/intl402/Segmenter/prototype/segment/segment-tostring.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/js/src/tests/test262/intl402/Segmenter/prototype/segment/segment-tostring.js b/js/src/tests/test262/intl402/Segmenter/prototype/segment/segment-tostring.js new file mode 100644 index 0000000000..433cd9ad44 --- /dev/null +++ b/js/src/tests/test262/intl402/Segmenter/prototype/segment/segment-tostring.js @@ -0,0 +1,37 @@ +// |reftest| skip-if(!Intl.Segmenter) -- Intl.Segmenter is not enabled unconditionally +// Copyright 2018 the V8 project authors, Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-Intl.Segmenter.prototype.segment +description: Verifies the string coercion in the "segment" function of the Segmenter prototype object. +info: | + Intl.Segmenter.prototype.segment( string ) + + 3. Let string be ? ToString(string). +features: [Intl.Segmenter] +---*/ + +const tests = [ + [[], "undefined"], + [[undefined], "undefined"], + [[null], "null"], + [[true], "true"], + [[false], "false"], + [[12], "12"], + [[1.23], "1.23"], + [[["a", "b"]], "a"], + [[{}], "["], // "[object Object]" +]; + +const segmenter = new Intl.Segmenter("en", { "granularity": "word" }); +for (const [args, expected] of tests) { + const segments = segmenter.segment(...args); + const actual = [...segments][0].segment; + assert.sameValue(actual, expected, `Expected segment "${expected}", found "${actual}" for arguments ${args}`); +} + +const symbol = Symbol(); +assert.throws(TypeError, () => segmenter.segment(symbol)); + +reportCompare(0, 0); |