diff options
Diffstat (limited to 'js/src/tests/non262/Intl/Segmenter/grapheme-latin1.js')
-rw-r--r-- | js/src/tests/non262/Intl/Segmenter/grapheme-latin1.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/js/src/tests/non262/Intl/Segmenter/grapheme-latin1.js b/js/src/tests/non262/Intl/Segmenter/grapheme-latin1.js new file mode 100644 index 0000000000..3b54c02236 --- /dev/null +++ b/js/src/tests/non262/Intl/Segmenter/grapheme-latin1.js @@ -0,0 +1,37 @@ +// |reftest| slow skip-if(!this.hasOwnProperty('Intl')||!this.Intl.Segmenter) + +// CRLF should be the only compound grapheme for Latin-1 strings. + +let segmenter = new Intl.Segmenter("en", {granularity: "grapheme"}); + +for (let i = 0; i <= 0xff; ++i) { + for (let j = 0; j <= 0xff; ++j) { + let string = String.fromCodePoint(i, j); + let segments = segmenter.segment(string); + + let data1 = segments.containing(0); + let data2 = segments.containing(1); + let graphemes = [...segments]; + + if (i === "\r".charCodeAt(0) && j === "\n".charCodeAt(0)) { + assertEq(data1.index, 0); + assertEq(data1.segment, "\r\n"); + + assertEq(data2.index, 0); + assertEq(data2.segment, "\r\n"); + + assertEq(graphemes.length, 1); + } else { + assertEq(data1.index, 0); + assertEq(data1.segment, String.fromCodePoint(i)); + + assertEq(data2.index, 1); + assertEq(data2.segment, String.fromCodePoint(j)); + + assertEq(graphemes.length, 2); + } + } +} + +if (typeof reportCompare === "function") + reportCompare(0, 0); |