diff options
author | Michaël Zasso <targos@protonmail.com> | 2021-02-24 14:47:06 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2021-02-25 00:14:47 +0100 |
commit | c5ff019a4e93891106859cb272ded1197a92c7e5 (patch) | |
tree | caf6b7e50b0ceac09878ac4402d9f725b8685dd7 /deps/v8/test/intl | |
parent | 67dc2bf2084b125dec43689874d237d125562cdf (diff) | |
download | node-new-c5ff019a4e93891106859cb272ded1197a92c7e5.tar.gz |
deps: update V8 to 8.9.255.19
PR-URL: https://github.com/nodejs/node/pull/37330
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'deps/v8/test/intl')
28 files changed, 160 insertions, 38 deletions
diff --git a/deps/v8/test/intl/general/getCanonicalLocales.js b/deps/v8/test/intl/general/getCanonicalLocales.js index 65c7fc6e3a..a6a344ff9c 100644 --- a/deps/v8/test/intl/general/getCanonicalLocales.js +++ b/deps/v8/test/intl/general/getCanonicalLocales.js @@ -14,3 +14,15 @@ assertEquals("en-u-ca-gregory", Intl.getCanonicalLocales("en-u-ca-gregory-ca-chi // Check duplicate subtags (after the first tag) are detected. assertThrows(() => Intl.getCanonicalLocales("en-foobar-foobar"), RangeError); + +// Check some common case +assertEquals("id", Intl.getCanonicalLocales("in")[0]); +assertEquals("he", Intl.getCanonicalLocales("iw")[0]); +assertEquals("yi", Intl.getCanonicalLocales("ji")[0]); +assertEquals("jv", Intl.getCanonicalLocales("jw")[0]); +assertEquals("ro", Intl.getCanonicalLocales("mo")[0]); +assertEquals("sr", Intl.getCanonicalLocales("scc")[0]); +assertEquals("sr-Latn", Intl.getCanonicalLocales("sh")[0]); +assertEquals("sr-ME", Intl.getCanonicalLocales("cnr")[0]); +assertEquals("nb", Intl.getCanonicalLocales("no")[0]); +assertEquals("fil", Intl.getCanonicalLocales("tl")[0]); diff --git a/deps/v8/test/intl/general/grandfathered_tags_without_preferred_value.js b/deps/v8/test/intl/general/grandfathered_tags_without_preferred_value.js index 16bf369601..49faf5b82f 100644 --- a/deps/v8/test/intl/general/grandfathered_tags_without_preferred_value.js +++ b/deps/v8/test/intl/general/grandfathered_tags_without_preferred_value.js @@ -7,7 +7,7 @@ // tag registry. Nonetheless, ICU cooks up a value when canonicalizing. // v8 works around that ICU issue. // See https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry . - ["cel-gaulish", "cel-gaulish"], + ["cel-gaulish", "xtg"], // Matching should be case-insensitive. ].forEach(([inputLocale, expectedLocale]) => { diff --git a/deps/v8/test/intl/general/invalid-locale.js b/deps/v8/test/intl/general/invalid-locale.js index c3dd59ad68..df4773d87d 100644 --- a/deps/v8/test/intl/general/invalid-locale.js +++ b/deps/v8/test/intl/general/invalid-locale.js @@ -13,7 +13,6 @@ for (let locale of invalid_locales) { } var not_so_long_locales = [ - "bs-u-nu-bzcu-cab-cabs-avnlubs-avnihu-zcu-cab-cbs-avnllubs-avnihq-zcu-cab-cbs-ubs-avnihu-cabs-flus-xxd-vnluy", "bs-u-nu-bzcu-cab-cabs-avnlubs-avnihu-zcu-cab-cbs-avnllubs-avnihq-zcu-cab-cbs-ubs-avnihu-cabs-flus-xxd", "bs-u-nu-bzcu-cab-cabs-avnlubs-avnihu-zcu", ]; diff --git a/deps/v8/test/intl/general/supported-locales-of.js b/deps/v8/test/intl/general/supported-locales-of.js index aeb5f328e7..05c75c2b0b 100644 --- a/deps/v8/test/intl/general/supported-locales-of.js +++ b/deps/v8/test/intl/general/supported-locales-of.js @@ -27,8 +27,6 @@ // Tests supportedLocalesOf method. -// Flags: --harmony-intl-segmenter - var services = [ Intl.Collator, Intl.DateTimeFormat, diff --git a/deps/v8/test/intl/locale/locale.js b/deps/v8/test/intl/locale/locale.js new file mode 100644 index 0000000000..15b5870f3a --- /dev/null +++ b/deps/v8/test/intl/locale/locale.js @@ -0,0 +1,19 @@ +// Copyright 2020 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +assertEquals("id", (new Intl.Locale("in")).toString()); +assertEquals("he", (new Intl.Locale("iw")).toString()); +assertEquals("yi", (new Intl.Locale("ji")).toString()); +assertEquals("jv", (new Intl.Locale("jw")).toString()); +assertEquals("ro", (new Intl.Locale("mo")).toString()); +assertEquals("sr", (new Intl.Locale("scc")).toString()); +assertEquals("hr", (new Intl.Locale("scr")).toString()); + +assertEquals("sr-Latn", (new Intl.Locale("sh")).toString()); +assertEquals("sr-ME", (new Intl.Locale("cnr")).toString()); +assertEquals("nb", (new Intl.Locale("no")).toString()); +assertEquals("fil", (new Intl.Locale("tl")).toString()); + +assertEquals("hy-AM", (new Intl.Locale("hy-SU")).toString()); +assertEquals("lv-LV", (new Intl.Locale("lv-SU")).toString()); diff --git a/deps/v8/test/intl/regress-1012579.js b/deps/v8/test/intl/regress-1012579.js index 9051a0004c..330265b41a 100644 --- a/deps/v8/test/intl/regress-1012579.js +++ b/deps/v8/test/intl/regress-1012579.js @@ -1,6 +1,9 @@ -// Copyright 2019 the V8 project authors. All rights reserved. +// Copyright 2020 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -let longLocale = 'de-u-cf-cu-em-kk-kr-ks-kv-lb-lw-ms-nu-rg-sd-ss-tz'; -rtf = new Intl.RelativeTimeFormat(longLocale); +// Verify won't crash in ListFormat +// 1 2 3 4 5 6 7 8 9 +var list = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']; +const lf = new Intl.ListFormat(); +const parts = lf.formatToParts(list); diff --git a/deps/v8/test/intl/regress-10526.js b/deps/v8/test/intl/regress-10526.js new file mode 100644 index 0000000000..4e6c79bdf0 --- /dev/null +++ b/deps/v8/test/intl/regress-10526.js @@ -0,0 +1,21 @@ +// Copyright 2020 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Test date format in islamic-umalqura calendar of date prior to +// -195366-07-23 +// On Android, islamic-umalqura calendar is only available on ar and fa locales. +let dateOK = new Date (Date.UTC(-195366, 6, 23)); +let dateKO = new Date (Date.UTC(-195366, 6, 22)); +let dateDisplay = new Intl.DateTimeFormat ( + 'ar-u-ca-islamic-umalqura', + { timeZone : 'UTC', year : 'numeric', month :'long', + day : 'numeric', weekday : 'long' }); +assertEquals("Wed, 23 Jul -195366 00:00:00 GMT", + dateOK.toUTCString(), "dateOK.toUTCString()"); +assertEquals("Tue, 22 Jul -195366 00:00:00 GMT", + dateKO.toUTCString(), "dateKO.toUTCString()"); +assertEquals("الأربعاء، 17 ذو الحجة -202003 هـ", + dateDisplay.format(dateOK), "dateDisplay.format(dateOK)"); +assertEquals("الثلاثاء، 16 ذو الحجة -202003 هـ", + dateDisplay.format(dateKO), "dateDisplay.format(dateKO)"); diff --git a/deps/v8/test/intl/regress-10527.js b/deps/v8/test/intl/regress-10527.js new file mode 100644 index 0000000000..f01131b756 --- /dev/null +++ b/deps/v8/test/intl/regress-10527.js @@ -0,0 +1,30 @@ +// Copyright 2020 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Test date format in Islamic and Islamic-rgsa calendars of dates prior +// to 0622-07-18 +// On Android, islamic and islamic-rgsac calendar are only available on ar +// and fa locales. +let dateOK = new Date (Date.UTC(622, 6, 18)); +let dateKO = new Date (Date.UTC(622, 6, 17)); +let dateDisplay = new Intl.DateTimeFormat ( + 'ar-u-ca-islamic', + { timeZone : 'UTC', year : 'numeric', month :'long', + day : 'numeric', weekday : 'long' }); +let dateDisplay2 = new Intl.DateTimeFormat ( + 'ar-u-ca-islamic-rgsa', + { timeZone : 'UTC', year : 'numeric', month :'long', + day : 'numeric', weekday : 'long' }); +assertEquals("Thu, 18 Jul 0622 00:00:00 GMT", + dateOK.toUTCString(), "dateOK.toUTCString()"); +assertEquals("Wed, 17 Jul 0622 00:00:00 GMT", + dateKO.toUTCString(), "dateKO.toUTCString()"); +assertEquals("الخميس، 1 محرم 1 هـ", + dateDisplay.format(dateOK), "dateDisplay.format(dateOK)"); +assertEquals("الأربعاء، 30 ذو الحجة 0 هـ", + dateDisplay.format(dateKO), "dateDisplay.format(dateKO)"); +assertEquals("الخميس، 1 محرم 1 هـ", + dateDisplay2.format(dateOK), "dateDisplay.format(dateOK)"); +assertEquals("الأربعاء، 30 ذو الحجة 0 هـ", + dateDisplay2.format(dateKO), "dateDisplay.format(dateKO)"); diff --git a/deps/v8/test/intl/regress-10528.js b/deps/v8/test/intl/regress-10528.js new file mode 100644 index 0000000000..59194b0a7c --- /dev/null +++ b/deps/v8/test/intl/regress-10528.js @@ -0,0 +1,20 @@ +// Copyright 2020 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Test date format in Hebrew calendar of dates prior to -003760-09-07 +// On Android, hebrew calendar is only available on he locale. +let dateOK = new Date (Date.UTC(-3760, 8, 7)); +let dateKO = new Date (Date.UTC(-3760, 8, 6)); +let dateDisplay = new Intl.DateTimeFormat ( + 'he-u-ca-hebrew', + { timeZone : 'UTC', year : 'numeric', month :'long', + day : 'numeric', weekday : 'long' }); +assertEquals("Mon, 07 Sep -3760 00:00:00 GMT", + dateOK.toUTCString(), "dateOK.toUTCString()"); +assertEquals("Sun, 06 Sep -3760 00:00:00 GMT", + dateKO.toUTCString(), "dateKO.toUTCString()"); +assertEquals("יום שני, 1 בתשרי 1", + dateDisplay.format(dateOK), "dateDisplay.format(dateOK)"); +assertEquals("יום ראשון, 29 באלול 0", + dateDisplay.format(dateKO), "dateDisplay.format(dateKO)"); diff --git a/deps/v8/test/intl/regress-10529.js b/deps/v8/test/intl/regress-10529.js new file mode 100644 index 0000000000..5cb0fbd5bf --- /dev/null +++ b/deps/v8/test/intl/regress-10529.js @@ -0,0 +1,20 @@ +// Copyright 2020 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Test date format in Indian calendar of date prior to 0001-01-01 +// On Android, indian calendar is only available on hi locale. +let dateOK = new Date ("0001-12-31T23:52:58.000Z"); +let dateKO = new Date ("0000-12-30T23:52:58.000Z"); +let dateDisplay = new Intl.DateTimeFormat ( + 'hi-u-ca-indian', + { timeZone : 'UTC', year : 'numeric', month :'long', + day : 'numeric', weekday : 'long' }); +assertEquals("Mon, 31 Dec 0001 23:52:58 GMT", + dateOK.toUTCString(), "dateOK.toUTCString()"); +assertEquals("Sat, 30 Dec 0000 23:52:58 GMT", + dateKO.toUTCString(), "dateKO.toUTCString()"); +assertEquals("शक -77 पौष 10, सोमवार", + dateDisplay.format(dateOK), "dateDisplay.format(dateOK)"); +assertEquals("शक -78 पौष 9, शनिवार", + dateDisplay.format(dateKO), "dateDisplay.format(dateKO)"); diff --git a/deps/v8/test/intl/regress-1121156.js b/deps/v8/test/intl/regress-1121156.js index cf0f245c3a..75c02b4b70 100644 --- a/deps/v8/test/intl/regress-1121156.js +++ b/deps/v8/test/intl/regress-1121156.js @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter --expose-gc +// Flags: --expose-gc let segmenter = new Intl.Segmenter(); let segments = segmenter.segment(undefined); diff --git a/deps/v8/test/intl/regress-11295.js b/deps/v8/test/intl/regress-11295.js new file mode 100644 index 0000000000..aa12596c0e --- /dev/null +++ b/deps/v8/test/intl/regress-11295.js @@ -0,0 +1,22 @@ +// Copyright 2021 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +let cal = (new Intl.DateTimeFormat('en-u-ca-iso8601')) + .resolvedOptions().calendar; +assertEquals('iso8601', cal); +cal = (new Intl.DateTimeFormat('en-u-ca-ISO8601')) + .resolvedOptions().calendar; +assertEquals('iso8601', cal); +cal = (new Intl.DateTimeFormat('en', {calendar: 'iso8601'})) + .resolvedOptions().calendar; +assertEquals('iso8601', cal); +cal = (new Intl.DateTimeFormat('en', {calendar: 'ISO8601'})) + .resolvedOptions().calendar; +assertEquals('iso8601', cal); +cal = (new Intl.DateTimeFormat('en-u-ca-ISO8601x')) + .resolvedOptions().calendar; +assertEquals('gregory', cal); +cal = (new Intl.DateTimeFormat('en', {calendar: 'iso8601x'})) + .resolvedOptions().calendar; +assertEquals('gregory', cal); diff --git a/deps/v8/test/intl/regress-1146468.js b/deps/v8/test/intl/regress-1146468.js new file mode 100644 index 0000000000..c70e3ed313 --- /dev/null +++ b/deps/v8/test/intl/regress-1146468.js @@ -0,0 +1,8 @@ +// Copyright 2020 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Test Long Locale won't cause Intl.Locale to assert in debug mode +let lo = new Intl.Locale( + "de-u-kk-false-ks-level1-kv-space-cu-eur-ms-metric-nu-latn-lb-strict-" + + "lw-normal-ss-none-em-default-rg-atzzzz-sd-atat1-va-posix"); diff --git a/deps/v8/test/intl/regress-900013.js b/deps/v8/test/intl/regress-900013.js index c7cdc65895..55b168d369 100644 --- a/deps/v8/test/intl/regress-900013.js +++ b/deps/v8/test/intl/regress-900013.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - // Regression test to ensure no Intl["SegmentIterator"] assertThrows(() => new Intl["SegmentIterator"](), TypeError); diff --git a/deps/v8/test/intl/segmenter/check-lb-option.js b/deps/v8/test/intl/segmenter/check-lb-option.js index 0e54d18202..b214c66412 100644 --- a/deps/v8/test/intl/segmenter/check-lb-option.js +++ b/deps/v8/test/intl/segmenter/check-lb-option.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - let invalid_lb = [ "invalid", "abce", diff --git a/deps/v8/test/intl/segmenter/constructor-order.js b/deps/v8/test/intl/segmenter/constructor-order.js index e43fb9f963..67f6681c8c 100644 --- a/deps/v8/test/intl/segmenter/constructor-order.js +++ b/deps/v8/test/intl/segmenter/constructor-order.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - // Throws only once during construction. // Check for all getters to prevent regression. // Preserve the order of getter initialization. diff --git a/deps/v8/test/intl/segmenter/constructor.js b/deps/v8/test/intl/segmenter/constructor.js index 6612e1eab6..7cf8243056 100644 --- a/deps/v8/test/intl/segmenter/constructor.js +++ b/deps/v8/test/intl/segmenter/constructor.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - // Segmenter constructor can't be called as function. assertThrows(() => Intl.Segmenter(["sr"]), TypeError); diff --git a/deps/v8/test/intl/segmenter/grapheme-containing.js b/deps/v8/test/intl/segmenter/grapheme-containing.js index 193a26e601..6464c2224e 100644 --- a/deps/v8/test/intl/segmenter/grapheme-containing.js +++ b/deps/v8/test/intl/segmenter/grapheme-containing.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - const segmenter = new Intl.Segmenter(); const waving_hand_light_skin_tone = "\uD83D\uDC4B\uD83C\uDFFB"; const man_light_skin_tone_red_hair = diff --git a/deps/v8/test/intl/segmenter/grapheme-nested-next.js b/deps/v8/test/intl/segmenter/grapheme-nested-next.js index 21be34326f..022ed2303c 100644 --- a/deps/v8/test/intl/segmenter/grapheme-nested-next.js +++ b/deps/v8/test/intl/segmenter/grapheme-nested-next.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - // Test to ensure the nested calling of the next method won't caused // confusion to each other. const segmenter = new Intl.Segmenter(); diff --git a/deps/v8/test/intl/segmenter/grapheme-next-after-containing.js b/deps/v8/test/intl/segmenter/grapheme-next-after-containing.js index 5ad97f6810..aec1f9db03 100644 --- a/deps/v8/test/intl/segmenter/grapheme-next-after-containing.js +++ b/deps/v8/test/intl/segmenter/grapheme-next-after-containing.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - // Test to ensure the calling of containing() won't impact the calling of // the next() method. const segmenter = new Intl.Segmenter(); diff --git a/deps/v8/test/intl/segmenter/segment-grapheme.js b/deps/v8/test/intl/segmenter/segment-grapheme.js index 3e28142e64..f36aafe955 100644 --- a/deps/v8/test/intl/segmenter/segment-grapheme.js +++ b/deps/v8/test/intl/segmenter/segment-grapheme.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - const seg = new Intl.Segmenter([], {granularity: "grapheme"}) for (const text of [ "Hello world!", // English diff --git a/deps/v8/test/intl/segmenter/segment-iterator-ownPropertyDescriptor.js b/deps/v8/test/intl/segmenter/segment-iterator-ownPropertyDescriptor.js index 2aba164c05..2626f8cac0 100644 --- a/deps/v8/test/intl/segmenter/segment-iterator-ownPropertyDescriptor.js +++ b/deps/v8/test/intl/segmenter/segment-iterator-ownPropertyDescriptor.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - let seg = new Intl.Segmenter(); let descriptor = Object.getOwnPropertyDescriptor( Intl.Segmenter, "supportedLocalesOf"); diff --git a/deps/v8/test/intl/segmenter/segment-sentence.js b/deps/v8/test/intl/segmenter/segment-sentence.js index 6bfcebd2b4..aa70953c85 100644 --- a/deps/v8/test/intl/segmenter/segment-sentence.js +++ b/deps/v8/test/intl/segmenter/segment-sentence.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - const seg = new Intl.Segmenter([], {granularity: "sentence"}) for (const text of [ "Hello world!", // English diff --git a/deps/v8/test/intl/segmenter/segment-word.js b/deps/v8/test/intl/segmenter/segment-word.js index c2919e5911..4961baf0e0 100644 --- a/deps/v8/test/intl/segmenter/segment-word.js +++ b/deps/v8/test/intl/segmenter/segment-word.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - const seg = new Intl.Segmenter([], {granularity: "word"}) for (const text of [ "Hello world!", // English diff --git a/deps/v8/test/intl/segmenter/segment.js b/deps/v8/test/intl/segmenter/segment.js index a4c44f3452..25f3244ea7 100644 --- a/deps/v8/test/intl/segmenter/segment.js +++ b/deps/v8/test/intl/segmenter/segment.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - assertEquals("function", typeof Intl.Segmenter.prototype.segment); assertEquals(1, Intl.Segmenter.prototype.segment.length); diff --git a/deps/v8/test/intl/segmenter/subclassing.js b/deps/v8/test/intl/segmenter/subclassing.js index 2bea1e88ce..69db0aaf92 100644 --- a/deps/v8/test/intl/segmenter/subclassing.js +++ b/deps/v8/test/intl/segmenter/subclassing.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - // Test subclassing of Segmenter class CustomSegmenter extends Intl.Segmenter { constructor(locales, options) { diff --git a/deps/v8/test/intl/segmenter/supported-locale.js b/deps/v8/test/intl/segmenter/supported-locale.js index b1a0353156..b09832a04d 100644 --- a/deps/v8/test/intl/segmenter/supported-locale.js +++ b/deps/v8/test/intl/segmenter/supported-locale.js @@ -1,8 +1,6 @@ // Copyright 2018 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. - -// Flags: --harmony-intl-segmenter assertEquals( typeof Intl.Segmenter.supportedLocalesOf, "function", diff --git a/deps/v8/test/intl/segmenter/word-containing.js b/deps/v8/test/intl/segmenter/word-containing.js index 8c68eed373..b6e43d3d7d 100644 --- a/deps/v8/test/intl/segmenter/word-containing.js +++ b/deps/v8/test/intl/segmenter/word-containing.js @@ -2,8 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Flags: --harmony-intl-segmenter - const segmenter = new Intl.Segmenter(undefined, {granularity: 'word'}); const waving_hand_light_skin_tone = "\uD83D\uDC4B\uD83C\uDFFB"; const man_light_skin_tone_red_hair = |