| // Copyright 2019 Google Inc. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| esid: sec-initializedatetimeformat |
| description: > |
| Checks the order of getting "calendar" and "numberingSystem" options in the |
| DateTimeFormat is between "localeMatcher" and "hour12" options. |
| info: | |
| 4. Let _matcher_ be ? GetOption(_options_, `"localeMatcher"`, `"string"`, « `"lookup"`, `"best fit"` », `"best fit"`). |
| ... |
| 6. Let _calendar_ be ? GetOption(_options_, `"calendar"`, `"string"`, *undefined*, *undefined*). |
| ... |
| 9. Let _numberingSystem_ be ? GetOption(_options_, `"numberingSystem"`, `"string"`, *undefined*, *undefined*). |
| ... |
| 12. Let _hour12_ be ? GetOption(_options_, `"hour12"`, `"boolean"`, *undefined*, *undefined*). |
| includes: [compareArray.js] |
| ---*/ |
| |
| const actual = []; |
| |
| const options = { |
| get localeMatcher() { |
| actual.push("localeMatcher"); |
| return undefined; |
| }, |
| get calendar() { |
| actual.push("calendar"); |
| return undefined; |
| }, |
| get numberingSystem() { |
| actual.push("numberingSystem"); |
| return undefined; |
| }, |
| get hour12() { |
| actual.push("hour12"); |
| return undefined; |
| }, |
| }; |
| |
| const expected = [ |
| "localeMatcher", |
| "calendar", |
| "numberingSystem", |
| "hour12" |
| ]; |
| |
| let df = new Intl.DateTimeFormat(undefined, options); |
| assert.compareArray(actual, expected); |