v8/test/intl/regress-9786.js
Frank Tang 246d985cb7 [Intl] No throwing RangeError when "calendar" and "numberingSystem" are well-formed
* 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}
2019-10-01 18:04:12 +00:00

22 lines
702 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 calendar should not throw RangeError.
var calendar = "abc";
var len = 3;
var expected = new Intl.DateTimeFormat("en").resolvedOptions().calendar;
var df;
for (var i = 3; i < 20; i++, len++, calendar += "a") {
assertDoesNotThrow(() => df = new Intl.DateTimeFormat("en", {calendar}),
"Well-formed calendar should not throw");
assertEquals(expected, df.resolvedOptions().calendar);
if (len == 8) {
calendar += "-ab";
len = 2;
}
}