// 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.


let invalid_nu = [
  "invalid",
  "abce",
  "finance",
  "native",
  "traditio",
];

// https://tc39.github.io/ecma402/#table-numbering-system-digits
let valid_nu= [
  "arab",
  "arabext",
  "bali",
  "beng",
  "deva",
  "fullwide",
  "gujr",
  "guru",
  "hanidec",
  "khmr",
  "knda",
  "laoo",
  "latn",
  "limb",
  "mlym",
  "mong",
  "mymr",
  "orya",
  "tamldec",
  "telu",
  "thai",
  "tibt",
];

let locales = [
  "en",
  "ar",
];


invalid_nu.forEach(function(nu) {
  let nf = new Intl.NumberFormat(["en-u-nu-" + nu + "-fo-obar"]);
  assertEquals("en", nf.resolvedOptions().locale);
}
);

valid_nu.forEach(function(nu) {
  locales.forEach(function(base) {
    let l = base + "-u-nu-" + nu;
    let nf = new Intl.NumberFormat([l + "-fo-obar"]);
    assertEquals(l, nf.resolvedOptions().locale);
  });
}
);
