| // Copyright 2019 Igalia, S.L. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| esid: sec-initializenumberformat |
| description: Checks handling of the unit style. |
| features: [Intl.NumberFormat-unified] |
| ---*/ |
| |
| assert.throws(TypeError, () => { |
| new Intl.NumberFormat([], { |
| style: "unit", |
| }) |
| }); |
| |
| for (const unit of [undefined, "test", "MILE", "kB"]) { |
| assert.throws(unit === undefined ? TypeError : RangeError, () => { |
| new Intl.NumberFormat([], { |
| style: "unit", |
| unit, |
| }) |
| }); |
| |
| for (const style of [undefined, "decimal", "currency"]) { |
| let called = 0; |
| const nf = new Intl.NumberFormat([], { |
| style, |
| get unit() { ++called; return unit; }, |
| currency: "USD", |
| }); |
| assert.sameValue(nf.resolvedOptions().unit, undefined); |
| assert.sameValue(called, 1); |
| } |
| } |
| |
| const nf = new Intl.NumberFormat([], { |
| style: "percent", |
| }); |
| assert.sameValue(nf.resolvedOptions().style, "percent"); |
| assert.sameValue(nf.resolvedOptions().unit, undefined); |