// Copyright 2012 Mozilla Corporation. All rights reserved. // Copyright 2022 Apple Inc. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- es5id: 11.1.1_34 description: Tests that the option useGrouping is processed correctly. info: | The "Intl.NumberFormat v3" proposal contradicts the behavior required by the latest revision of ECMA402. Likewise, this test contradicts test-option-useGrouping-extended.js. Until the proposal is included in a published standard (when the tests' discrepancies can be resolved), implementations should only expect to pass one of these two tests. author: Norbert Lindenberg features: [Intl.NumberFormat-v3] ---*/ function resolveUseGrouping(option) { return new Intl.NumberFormat(undefined, { useGrouping: option }).resolvedOptions().useGrouping; } for (let string of ["min2", "auto", "always"]) { assert.sameValue(resolveUseGrouping(string), string); } assert.sameValue(resolveUseGrouping(true), "always"); assert.sameValue(resolveUseGrouping(false), false); assert.sameValue(resolveUseGrouping(undefined), "auto"); for (let falsy of [0, null, ""]) { assert.sameValue(resolveUseGrouping(falsy), false); } for (let truthy of [42, "MIN2", {}]) { assert.throws(RangeError, () => { resolveUseGrouping(truthy); }, "Invalid truthy value"); }