diff options
Diffstat (limited to 'deps/v8/test/intl/date-format/constructor-date-style-order.js')
-rw-r--r-- | deps/v8/test/intl/date-format/constructor-date-style-order.js | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/deps/v8/test/intl/date-format/constructor-date-style-order.js b/deps/v8/test/intl/date-format/constructor-date-style-order.js new file mode 100644 index 0000000000..8e601b48d3 --- /dev/null +++ b/deps/v8/test/intl/date-format/constructor-date-style-order.js @@ -0,0 +1,108 @@ +// 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. + +// Flags: --harmony-intl-datetime-style + +// Throws only once during construction. +// Check for all getters to prevent regression. +// Preserve the order of getter initialization. +let getCount = 0; +let weekday = new Array(); +let year = new Array(); +let month = new Array(); +let day = new Array(); +let hour = new Array(); +let minute = new Array(); +let second = new Array(); +let localeMatcher = new Array(); +let hour12 = new Array(); +let hourCycle = new Array(); +let dateStyle = new Array(); +let timeStyle = new Array(); +let timeZone = new Array(); +let era = new Array(); +let timeZoneName = new Array(); +let formatMatcher = new Array(); + +new Intl.DateTimeFormat(['en-US'], { + get weekday() { + weekday.push(++getCount); + }, + get year() { + year.push(++getCount); + }, + get month() { + month.push(++getCount); + }, + get day() { + day.push(++getCount); + }, + get hour() { + hour.push(++getCount); + }, + get minute() { + minute.push(++getCount); + }, + get second() { + second.push(++getCount); + }, + get localeMatcher() { + localeMatcher.push(++getCount); + }, + get hour12() { + hour12.push(++getCount); + }, + get hourCycle() { + hourCycle.push(++getCount); + }, + get timeZone() { + timeZone.push(++getCount); + }, + get dateStyle() { + dateStyle.push(++getCount); + return "full"; + }, + get timeStyle() { + timeStyle.push(++getCount); + }, + get era() { + era.push(++getCount); + }, + get timeZoneName() { + timeZoneName.push(++getCount); + }, + get formatMatcher() { + formatMatcher.push(++getCount); + } +}); + +assertEquals(1, weekday.length); +assertEquals(1, weekday[0]); +assertEquals(1, year.length); +assertEquals(2, year[0]); +assertEquals(1, month.length); +assertEquals(3, month[0]); +assertEquals(1, day.length); +assertEquals(4, day[0]); +assertEquals(1, hour.length); +assertEquals(5, hour[0]); +assertEquals(1, minute.length); +assertEquals(6, minute[0]); +assertEquals(1, second.length); +assertEquals(7, second[0]); +assertEquals(1, localeMatcher.length); +assertEquals(8, localeMatcher[0]); +assertEquals(1, hour12.length); +assertEquals(9, hour12[0]); +assertEquals(1, hourCycle.length); +assertEquals(10, hourCycle[0]); +assertEquals(1, timeZone.length); +assertEquals(11, timeZone[0]); +assertEquals(1, dateStyle.length); +assertEquals(12, dateStyle[0]); +assertEquals(1, timeStyle.length); +assertEquals(13, timeStyle[0]); +assertEquals(0, era.length); +assertEquals(0, timeZoneName.length); +assertEquals(0, formatMatcher.length); |