246d985cb7
* Throws RangeError only when the calendar and numberingSystem is ill-formed. * Set the calendar and numberingSystem to the locale only if the values are valid. * Fix the order of GetOption of "localeMatcher". * Add more unit tests. See https://github.com/tc39/ecma402/pull/175 for details. Bug: v8:9786, v8:9787, v8:9788 Change-Id: Ic0f918ad7d9afb0b7c8df39caa0f44ef07ca10c0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1830345 Commit-Queue: Frank Tang <ftang@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#64070}
30 lines
893 B
JavaScript
30 lines
893 B
JavaScript
// Copyright 2019 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-add-calendar-numbering-system
|
|
|
|
// Well-formed but invalid numberingSystem should not throw RangeError.
|
|
var numberingSystem = "abc";
|
|
var len = 3;
|
|
|
|
const intlClasses = [
|
|
Intl.DateTimeFormat,
|
|
Intl.NumberFormat,
|
|
Intl.RelativeTimeFormat
|
|
];
|
|
|
|
intlClasses.forEach(function(cls) {
|
|
var expected = new cls("en").resolvedOptions().numberingSystem;
|
|
var obj;
|
|
for (var i = 3; i < 20; i++, len++, numberingSystem += "a") {
|
|
assertDoesNotThrow(() => obj = new cls("en", {numberingSystem}),
|
|
"Well-formed numberingSystem should not throw");
|
|
assertEquals(expected, obj.resolvedOptions().numberingSystem);
|
|
if (len == 8) {
|
|
numberingSystem += "-ab";
|
|
len = 2;
|
|
}
|
|
}
|
|
});
|