diff --git a/implementation-contributed/curation_logs/v8.json b/implementation-contributed/curation_logs/v8.json index f32cdc95fd135c436d716abef17cce0248e56b72..35a2852a259e4e2e86b08f7c4c9158654310057b 100644 --- a/implementation-contributed/curation_logs/v8.json +++ b/implementation-contributed/curation_logs/v8.json @@ -1,5 +1,5 @@ { - "sourceRevisionAtLastExport": "4a395137", - "targetRevisionAtLastExport": "07b313100e", + "sourceRevisionAtLastExport": "9583858e", + "targetRevisionAtLastExport": "d420adb9f2", "curatedFiles": {} } \ No newline at end of file diff --git a/implementation-contributed/v8/intl/collator/constructor-order.js b/implementation-contributed/v8/intl/collator/constructor-order.js new file mode 100644 index 0000000000000000000000000000000000000000..2b1de6b866441adf38204b7c0b33390c16241aaf --- /dev/null +++ b/implementation-contributed/v8/intl/collator/constructor-order.js @@ -0,0 +1,30 @@ +// 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. + +// Throws only once during construction. +// Check for all getters to prevent regression. +// Preserve the order of getter initialization. +let getCount = 0; + +new Intl.Collator(['en-US'], { + get usage() { + assertEquals(0, getCount++); + }, + get localeMatcher() { + assertEquals(1, getCount++); + }, + get numeric() { + assertEquals(2, getCount++); + }, + get caseFirst() { + assertEquals(3, getCount++); + }, + get sensitivity() { + assertEquals(4, getCount++); + }, + get ignorePunctuation() { + assertEquals(5, getCount++); + }, +}); +assertEquals(6, getCount); diff --git a/implementation-contributed/v8/intl/list-format/constructor-order.js b/implementation-contributed/v8/intl/list-format/constructor-order.js new file mode 100644 index 0000000000000000000000000000000000000000..1fc7d994295c5bfc0a228bfd70f8d31e67aabb93 --- /dev/null +++ b/implementation-contributed/v8/intl/list-format/constructor-order.js @@ -0,0 +1,21 @@ +// 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. + +// Throws only once during construction. +// Check for all getters to prevent regression. +// Preserve the order of getter initialization. +let getCount = 0; + +new Intl.ListFormat(['en-US'], { + get type() { + assertEquals(0, getCount++); + }, + get style() { + assertEquals(1, getCount++); + }, + get localeMatcher() { + assertEquals(2, getCount++); + }, +}); +assertEquals(3, getCount); diff --git a/implementation-contributed/v8/intl/number-format/constructor-order.js b/implementation-contributed/v8/intl/number-format/constructor-order.js new file mode 100644 index 0000000000000000000000000000000000000000..db99793bb97e196db7734b90d2e8d5b938d8b6e2 --- /dev/null +++ b/implementation-contributed/v8/intl/number-format/constructor-order.js @@ -0,0 +1,42 @@ +// 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. + +// Throws only once during construction. +// Check for all getters to prevent regression. +// Preserve the order of getter initialization. +let getCount = 0; + +new Intl.NumberFormat(['en-US'], { + get localeMatcher() { + assertEquals(0, getCount++); + }, + get style() { + assertEquals(1, getCount++); + }, + get currency() { + assertEquals(2, getCount++); + }, + get currencyDisplay() { + assertEquals(3, getCount++); + }, + get minimumIntegerDigits() { + assertEquals(4, getCount++); + }, + get minimumFractionDigits() { + assertEquals(5, getCount++); + }, + get maximumFractionDigits() { + assertEquals(6, getCount++); + }, + get minimumSignificantDigits() { + assertEquals(7, getCount++); + }, + get maximumSignificantDigits() { + assertEquals(8, getCount++); + }, + get useGrouping() { + assertEquals(9, getCount++); + }, +}); +assertEquals(10, getCount); diff --git a/implementation-contributed/v8/intl/plural-rules/constructor-order.js b/implementation-contributed/v8/intl/plural-rules/constructor-order.js new file mode 100644 index 0000000000000000000000000000000000000000..18acdcccbb013506548139569ec36c9ec6d93d6e --- /dev/null +++ b/implementation-contributed/v8/intl/plural-rules/constructor-order.js @@ -0,0 +1,33 @@ +// 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. + +// Throws only once during construction. +// Check for all getters to prevent regression. +// Preserve the order of getter initialization. +let getCount = 0; + +new Intl.PluralRules(['en-US'], { + get localeMatcher() { + assertEquals(0, getCount++); + }, + get type() { + assertEquals(1, getCount++); + }, + get minimumIntegerDigits() { + assertEquals(2, getCount++); + }, + get minimumFractionDigits() { + assertEquals(3, getCount++); + }, + get maximumFractionDigits() { + assertEquals(4, getCount++); + }, + get minimumSignificantDigits() { + assertEquals(5, getCount++); + }, + get maximumSignificantDigits() { + assertEquals(6, getCount++); + }, +}); +assertEquals(7, getCount); diff --git a/implementation-contributed/v8/intl/relative-time-format/constructor-order.js b/implementation-contributed/v8/intl/relative-time-format/constructor-order.js new file mode 100644 index 0000000000000000000000000000000000000000..540034dd4d45379867aaa9932c12c5d8c038ca47 --- /dev/null +++ b/implementation-contributed/v8/intl/relative-time-format/constructor-order.js @@ -0,0 +1,21 @@ +// 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. + +// Throws only once during construction. +// Check for all getters to prevent regression. +// Preserve the order of getter initialization. +let getCount = 0; + +new Intl.RelativeTimeFormat(['en-US'], { + get localeMatcher() { + assertEquals(0, getCount++); + }, + get style() { + assertEquals(1, getCount++); + }, + get numeric() { + assertEquals(2, getCount++); + }, +}); +assertEquals(3, getCount); diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-909614.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-909614.js new file mode 100644 index 0000000000000000000000000000000000000000..4070c9b8212dc35fd312e16381db6855a78ae8e2 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-909614.js @@ -0,0 +1,9 @@ +// 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 just_under = 2n ** 30n - 1n; +let just_above = 2n ** 30n; + +assertDoesNotThrow(() => { var dummy = 2n ** just_under; }); +assertThrows(() => { var dummy = 2n ** just_above; });