| // 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. | 
 |  | 
 | const locales = [ | 
 |   "cs", | 
 |   "cs-CZ", | 
 |   "en-001", | 
 |   "en-150", | 
 |   "en-TV", | 
 |   "es-419", | 
 |   "es-AR", | 
 |   "fil", | 
 |   "fr-CA", | 
 |   "id", | 
 |   "in", | 
 |   "lt", | 
 |   "nl", | 
 |   "pl", | 
 |   "pt-PT", | 
 |   "sr-ME", | 
 |   "sv", | 
 |   "uk", | 
 |   "vi", | 
 | ]; | 
 |  | 
 | const calendars = [ | 
 |     // Calendars we know have issues | 
 |     "islamic", | 
 |     "islamic-civil", | 
 |     "islamic-tbla", | 
 |     "islamic-umalqura", | 
 |     "ethiopic-amete-alem", | 
 |     "islamicc", | 
 |     "ethioaa", | 
 |     "islamic-rgsa", | 
 |  | 
 |     // Other calendars | 
 |     "gregory", | 
 |     "japanese", | 
 |     "buddhist", | 
 |     "roc", | 
 |     "persian", | 
 |     "islamic", | 
 |     "hebrew", | 
 |     "chinese", | 
 |     "indian", | 
 |     "coptic", | 
 |     "ethiopic", | 
 |     "iso8601", | 
 |     "dangi", | 
 |     "chinese", | 
 | ]; | 
 |  | 
 | let d1 = new Date(2019, 3, 4); | 
 | let d2 = new Date(2019, 5, 6); | 
 |  | 
 | calendars.forEach(function(calendar) { | 
 |   locales.forEach(function(baseLocale) { | 
 |     let locale = `${baseLocale}-u-ca-${calendar}`; | 
 |     assertDoesNotThrow( | 
 |         () => (new Intl.DateTimeFormat(locale)).formatRange(d1, d2), | 
 |         `Using Intl.DateFormat formatRange with ${locale} should not throw`); | 
 |   }) | 
 | }) |