// 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. // Flags: --harmony_intl_best_fit_matcher // // Test the supportedLocales and resolvedOptions handle "zh-TW", "zh-Hant-TW", // etc. const intlObjs = [ Intl.Collator, Intl.DateTimeFormat, Intl.DisplayNames, Intl.ListFormat, Intl.NumberFormat, Intl.PluralRules, Intl.RelativeTimeFormat, Intl.Segmenter, ]; let bestFitOpt = {localeMatcher: "best fit"}; let defaultLocale = (new Intl.NumberFormat()).resolvedOptions().locale; intlObjs.forEach(function(obj) { [{}, bestFitOpt].forEach(function(opt) { // Test consistent between "zh-TW" and "zh-Hant-TW". Either both are // supported or neither are supported. assertEquals((obj.supportedLocalesOf(["zh-TW"], opt)).length, (obj.supportedLocalesOf(["zh-Hant-TW"], opt)).length); assertEquals((obj.supportedLocalesOf(["zh-MO"], opt)).length, (obj.supportedLocalesOf(["zh-Hant-MO"], opt)).length); assertEquals((obj.supportedLocalesOf(["zh-HK"], opt)).length, (obj.supportedLocalesOf(["zh-Hant-HK"], opt)).length); assertEquals((obj.supportedLocalesOf(["zh-CN"], opt)).length, (obj.supportedLocalesOf(["zh-Hans-CN"], opt)).length); assertEquals((obj.supportedLocalesOf(["zh-SG"], opt)).length, (obj.supportedLocalesOf(["zh-Hans-SG"], opt)).length); }); });