diff --git a/implementation-contributed/curation_logs/v8.json b/implementation-contributed/curation_logs/v8.json index 4c117d554eade9a7c76827f6cc798b6b5ecda23d..fef22425f35c467cf0291335ff7c88954a07cfa9 100644 --- a/implementation-contributed/curation_logs/v8.json +++ b/implementation-contributed/curation_logs/v8.json @@ -1,5 +1,5 @@ { - "sourceRevisionAtLastExport": "d34cbcd7", - "targetRevisionAtLastExport": "225cb28a69", + "sourceRevisionAtLastExport": "30729e82", + "targetRevisionAtLastExport": "39246db80e", "curatedFiles": {} } \ No newline at end of file diff --git a/implementation-contributed/v8/intl/segmenter/segment-word.js b/implementation-contributed/v8/intl/segmenter/segment-word.js new file mode 100644 index 0000000000000000000000000000000000000000..4c74fbee3c92d89223186434c8c175a879ababe7 --- /dev/null +++ b/implementation-contributed/v8/intl/segmenter/segment-word.js @@ -0,0 +1,29 @@ +// 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. + +// Flags: --harmony-intl-segmenter + +const seg = new Intl.Segmenter([], {granularity: "word"}) +for (const text of [ + "Hello world!", // English + " Hello world! ", // English with space before/after + " Hello world? Foo bar!", // English + "Jedovatou mambu objevila žena v zahrádkářské kolonii.", // Czech + "Việt Nam: Nhất thể hóa sẽ khác Trung Quốc?", // Vietnamese + "ΣοβαÏÎÏ‚ ενστάσεις Κομισιόν για τον Ï€Ïοϋπολογισμό της Ιταλίας", // Greek + "Решение Индии о покупке роÑÑийÑких С-400 раÑценили как вызов СШÐ", // Russian + "×”×¨×•×¤× ×©×”×¦×™×œ × ×©×™× ×•×”× ×¢×¨×” ששועבדה ×¢", // Hebrew, + "ترامب للملك سلمان: أنا جاد للغاية.. عليك دÙع المزيد", // Arabic + "à¤à¤¾à¤°à¤¤ की à¤à¤¸ 400 मिसाइल के मà¥à¤•à¤¾à¤¬à¤²à¥‡ पाक की थाड, जानें कौन कितना ताकतवर", // Hindi + "ரெட௠அலரà¯à®Ÿà¯ எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆ; பà¯à®¤à¯à®šà¯à®šà¯‡à®°à®¿à®¯à®¿à®²à¯ நாளை அரச௠விடà¯à®®à¯à®±à¯ˆ!", // Tamil + "'ఉతà±à°¤à°°à±à°µà±à°²à± అందే వరకౠఓటరà±à°² à°¤à±à°¦à°¿ జాబితానౠవెబà±â€Œà°¸à±ˆà°Ÿà±à°²à±‹ పెటà±à°Ÿà°µà°¦à±à°¦à±'", // Telugu + "å°åŒ—》抹黑柯P失敗?朱å¸æ’酸:姚文智氣pupu嗆大è€é—†", // Chinese + "วัดไทรตีระฆังเบาลงช่วงเข้าพรรษา เจ้าà¸à¸²à¸§à¸²à¸ªà¹€à¸œà¸¢à¸„นร้à¸à¸‡à¹€à¸£à¸µà¸¢à¸™à¸£à¸±à¸šà¸œà¸¥à¸à¸£à¸£à¸¡à¹à¸¥à¹‰à¸§", // Thai + "ä¹å·žåŒ—部ã®ä¸€éƒ¨ãŒæš´é¢¨åŸŸã«å…¥ã‚Šã¾ã—ãŸ(æ—¥ç›´äºˆå ±å£« 2018å¹´10月06æ—¥) - 日本気象å”会 tenki.jp", // Japanese + "ë²•ì› â€œë‹¤ìŠ¤ 지분 처분권·수ìµê¶Œ ëª¨ë‘ MBê°€ ë³´ìœ â€", // Korean + ]) { + const iter = seg.segment(text); + assertTrue(["word", "none"].includes(iter.breakType), iter.breakType); + assertEquals(0, iter.position); +} diff --git a/implementation-contributed/v8/intl/segmenter/subclassing.js b/implementation-contributed/v8/intl/segmenter/subclassing.js new file mode 100644 index 0000000000000000000000000000000000000000..2bea1e88ce8c277bce91cee831ebe4b58ed13f58 --- /dev/null +++ b/implementation-contributed/v8/intl/segmenter/subclassing.js @@ -0,0 +1,17 @@ +// 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. + +// Flags: --harmony-intl-segmenter + +// Test subclassing of Segmenter +class CustomSegmenter extends Intl.Segmenter { + constructor(locales, options) { + super(locales, options); + this.isCustom = true; + } +} + +const seg = new CustomSegmenter("zh"); +assertEquals(true, seg.isCustom, "Custom property"); +assertEquals(Object.getPrototypeOf(seg), CustomSegmenter.prototype, "Prototype"); diff --git a/implementation-contributed/v8/mjsunit/array-join-element-tostring-prototype-side-effects.js b/implementation-contributed/v8/mjsunit/array-join-element-tostring-prototype-side-effects.js new file mode 100644 index 0000000000000000000000000000000000000000..a5ddebb9b9491dc8e20493dd82db870c98b546f8 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/array-join-element-tostring-prototype-side-effects.js @@ -0,0 +1,14 @@ +// 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. + +(function ArrayPrototypeChanged() { + const el = { + toString() { + Array.prototype[1] = '2'; + return '1'; + } + }; + const a = [el, ,3]; + assertSame("123", a.join('')); +})(); diff --git a/implementation-contributed/v8/mjsunit/array-join-element-tostring-side-effects.js b/implementation-contributed/v8/mjsunit/array-join-element-tostring-side-effects.js new file mode 100644 index 0000000000000000000000000000000000000000..1da72a7970e8efe3f4464f22e9627caf88ab2feb --- /dev/null +++ b/implementation-contributed/v8/mjsunit/array-join-element-tostring-side-effects.js @@ -0,0 +1,152 @@ +// 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. + +// Flags: --allow-natives-syntax + +const MIN_DICTIONARY_INDEX = 8192; + +function ArrayTests() { + (function ToStringThrows() { + function TestError() {} + + let callCount = 0; + const toStringThrows = { + toString() { + callCount++; + throw new TestError; + } + }; + const a = [toStringThrows]; + assertThrows(() => a.join(), TestError); + assertSame(1, callCount); + + // Verifies cycle detection still works properly after thrown error. + a[0] = 1; + a[1] = 2; + assertSame('1,2', a.join()); + })(); + + (function ArrayLengthIncreased() { + let callCount = 0; + const a = [ + { + toString() { + callCount++; + a.push(2); + return '1'; + } + } + ]; + assertSame('1', a.join()); + assertSame(1, callCount); + assertSame('1,2', a.join()); + })(); + + (function ArrayLengthDecreased() { + let callCount = 0; + const a = [ + { + toString() { + callCount++; + a.pop(); + return '1'; + } + }, + '2' + ]; + assertSame('1,', a.join()); + assertSame(1, callCount); + assertSame('1', a.join()); + })(); + + (function ElementsKindChangedToHoley() { + let callCount = 0; + const a = [ + { + toString() { + callCount++; + a.length = 4; + a[1] = 777; + a[2] = 7.7; + return '1'; + } + }, + 2, + 3 + ]; + assertSame('1,777,7.7', a.join()); + assertSame(1, callCount); + assertSame('1,777,7.7,', a.join()); + })(); + + (function ElementsKindChangedToHoleyThroughDeletion() { + let callCount = 0; + const a = [ + { + toString() { + callCount++; + delete a[1]; + a[2] = 7.7; + return '1'; + } + }, + 2, + 3 + ]; + assertSame('1,,7.7', a.join()); + assertSame(1, callCount); + assertSame('1,,7.7', a.join()); + })(); + + (function NumberDictionaryChanged() { + let callCount = 0; + const a = []; + a[MIN_DICTIONARY_INDEX - 1] = { + toString() { + callCount++; + a[MIN_DICTIONARY_INDEX] = '2'; + return '1'; + } + }; + a[MIN_DICTIONARY_INDEX] = 'NOPE'; + assertTrue(%HasDictionaryElements(a)); + assertSame('12', a.join('')); + assertSame(1, callCount); + assertSame('12', a.join('')); + })(); + + (function NumberDictionaryLengthChange() { + let callCount = 0; + const a = []; + a[MIN_DICTIONARY_INDEX - 1] = { + toString() { + callCount++; + a.length = MIN_DICTIONARY_INDEX; + return '1'; + } + }; + a[MIN_DICTIONARY_INDEX] = '2'; + assertTrue(%HasDictionaryElements(a)); + assertSame('1', a.join('')); + assertSame(1, callCount); + assertSame('1', a.join('')); + })(); +} + +(function NonArrayCycleDetection() { + const a = { + length: 3, + toString() { return Array.prototype.join.call(this); } + }; + a[0] = '1'; + a[1] = a; + a[2] = '3'; + assertSame("1,,3", Array.prototype.join.call(a)); +}); + +ArrayTests(); + +%SetForceSlowPath(true); + +ArrayTests(); diff --git a/implementation-contributed/v8/mjsunit/array-join-index-getter-side-effects.js b/implementation-contributed/v8/mjsunit/array-join-index-getter-side-effects.js new file mode 100644 index 0000000000000000000000000000000000000000..12fe5786c750ae8acdac8c4affa990a3dee3d683 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/array-join-index-getter-side-effects.js @@ -0,0 +1,87 @@ +// 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. + +// Flags: --allow-natives-syntax + +(function Throws() { + function TestError() {} + + let callCount = 0; + const a = [0, 1]; + Object.defineProperty(a, '0', { + configurable: true, + get() { + callCount++; + throw new TestError(); + } + }); + assertTrue(%HasDictionaryElements(a)); + assertThrows(() => a.join(), TestError); + assertSame(1, callCount); + + // Verifies cycle detection still works properly after thrown error. + Object.defineProperty(a, '0', { + configurable: true, + get() { + callCount++; + return 777; + } + }); + assertSame('777,1', a.join()); + assertSame(2, callCount); +})(); + +(function ArrayLengthIncreased() { + let callCount = 0; + const a = [1]; + Object.defineProperty(a, '0', { + configurable: true, + get() { + callCount++; + a.push(2); + return 9; + } + }); + assertSame('9', a.join()); + assertSame(1, callCount); + + // Verifies cycle detection still works properly after continuation. + assertSame('9,2', a.join()); +})(); + +(function ArrayLengthDecreased() { + let callCount = 0; + const a = [0, 1]; + Object.defineProperty(a, '0', { + configurable: true, + get() { + callCount++; + a.length = 1; + return 9; + } + }); + assertSame('9,', a.join()); + assertSame(1, callCount); + + // Verifies cycle detection still works properly after continuation. + assertSame('9', a.join()); +})(); + +(function ElementsKindChangedToHoley() { + let callCount = 0; + const a = [0, 1]; + Object.defineProperty(a, '0', { + configurable: true, + get() { + callCount++; + a.length = 3; + return 9; + } + }); + assertSame('9,1', a.join()); + assertSame(1, callCount); + + // Verifies cycle detection still works properly after continuation. + assertSame('9,1,', a.join()); +})(); diff --git a/implementation-contributed/v8/mjsunit/array-join-nesting.js b/implementation-contributed/v8/mjsunit/array-join-nesting.js new file mode 100644 index 0000000000000000000000000000000000000000..d1e75fb5123204a63c1ba3d4d1e22e628ef8c795 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/array-join-nesting.js @@ -0,0 +1,16 @@ +// 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. + +const DEPTH = 128; + +function makeNestedArray(depth, value) { + return depth > 0 ? [value, makeNestedArray(depth - 1, value)] : [value]; +} + +const array = makeNestedArray(DEPTH, 'a'); +const expected = 'a' + ',a'.repeat(DEPTH); +assertSame(expected, array.join()); + +// Verify cycle detection is still working. +assertSame(expected, array.join()); diff --git a/implementation-contributed/v8/mjsunit/array-join-nonarray-length-getter-side-effects.js b/implementation-contributed/v8/mjsunit/array-join-nonarray-length-getter-side-effects.js new file mode 100644 index 0000000000000000000000000000000000000000..3f8d2aa029c779911491eaaa46ea149af06d8479 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/array-join-nonarray-length-getter-side-effects.js @@ -0,0 +1,29 @@ +// 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. + +(function Throws() { + function TestError() {} + + let callCount = 0; + const a = { + 0: 1, + 1: 2, + get length() { + callCount++; + throw new TestError(); + } + }; + assertThrows(() => Array.prototype.join.call(a), TestError); + assertSame(1, callCount); + + // Verifies cycle detection still works properly after thrown error. + Object.defineProperty(a, 'length', { + get() { + callCount++; + return 2; + } + }); + assertSame('1,2', Array.prototype.join.call(a)); + assertSame(2, callCount); +})(); diff --git a/implementation-contributed/v8/mjsunit/array-join-separator-tostring-side-effects.js b/implementation-contributed/v8/mjsunit/array-join-separator-tostring-side-effects.js new file mode 100644 index 0000000000000000000000000000000000000000..d9e85152cab7a113655660de2c1a586a11ec8899 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/array-join-separator-tostring-side-effects.js @@ -0,0 +1,197 @@ +// 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. + +// Flags: --allow-natives-syntax + +const MIN_DICTIONARY_INDEX = 8192; + +(function ToStringThrows() { + function TestError() {} + + let callCount = 0; + const a = [1, 2]; + assertThrows(() => a.join({ + toString() { + callCount++; + throw new TestError; + } + }), TestError); + assertSame(1, callCount); + + // Verifies cycle detection still works properly after thrown error. + assertSame('1,2', a.join()); +})(); + +(function RecursiveJoinCall() { + const a = [1,2,3]; + let callCount = 0; + const sep = { + toString() { + callCount++; + return a.join('-'); + } + }; + assertSame('11-2-321-2-33', a.join(sep)); + assertSame(1, callCount); + + // Verify cycle detection works properly after nested call + assertSame('1,2,3', a.join()); +})(); + + +(function ArrayLengthIncreased() { + const a = [1,2,3]; + let callCount = 0; + assertSame('1,2,3', a.join({ + toString() { + callCount++; + a.push(4); + return ','; + } + })); + assertSame(1, callCount); + assertSame('1,2,3,4', a.join()); +})(); + +(function ArrayLengthDecreased() { + const a = [1,2,3]; + let callCount = 0; + assertSame('1,2,', a.join({ + toString() { + callCount++; + a.pop(); + return ','; + } + })); + assertSame(1, callCount); + assertSame('1,2', a.join()); +})(); + +(function ArrayEmptied() { + const a = [1,2,3]; + let callCount = 0; + assertSame(',,', a.join({ + toString() { + callCount++; + a.length = 0; + return ','; + } + })); + assertSame(1, callCount); +})(); + +(function NumberDictionaryEmptied() { + const a = []; + a[0] = 1; + a[MIN_DICTIONARY_INDEX] = 2; + assertTrue(%HasDictionaryElements(a)); + + let callCount = 0; + assertSame('-'.repeat(MIN_DICTIONARY_INDEX), a.join({ + toString() { + callCount++; + a.length = 0; + return '-'; + } + })); + assertSame(1, callCount); +})(); + +(function NumberDictionaryEmptiedEmptySeparator() { + const a = []; + a[0] = 1; + a[MIN_DICTIONARY_INDEX] = 2; + assertTrue(%HasDictionaryElements(a)); + + let callCount = 0; + assertSame(''.repeat(MIN_DICTIONARY_INDEX), a.join({ + toString() { + callCount++; + a.length = 0; + return ''; + } + })); + assertSame(1, callCount); +})(); + +(function ElementsKindSmiToDoubles() { + const a = [1,2,3]; + let callCount = 0; + assertTrue(%HasSmiElements(a)); + assertSame('1.5,2,3', a.join({ + toString() { + callCount++; + a[0] = 1.5; + assertTrue(%HasDoubleElements(a)); + return ','; + } + })); + assertSame(1, callCount); + assertSame('1.5,2,3', a.join()); +})(); + +(function ElementsKindDoublesToObjects() { + const a = [1.5, 2.5, 3.5]; + let callCount = 0; + assertTrue(%HasDoubleElements(a)); + assertSame('one,2.5,3.5', a.join({ + toString() { + callCount++; + a[0] = 'one'; + assertTrue(%HasObjectElements(a)); + return ','; + } + })); + assertSame(1, callCount); + assertSame('one,2.5,3.5', a.join()); +})(); + +(function ArrayIsNoLongerFast() { + const a = [1,2,3]; + let callCount = 0; + assertSame('666,2,3', a.join({ + toString() { + callCount++; + Object.defineProperty(a, '0', { + get(){ return 666; } + }); + return ','; + } + })); + assertSame(1, callCount); + assertSame('666,2,3', a.join()); +})(); + +(function ArrayPrototypeUnset() { + const a = [1,2]; + a.length = 3; + let callCount = 0; + assertSame('1,2,4', a.join({ + toString() { + callCount++; + a.__proto__ = { '2': 4 }; + return ','; + } + })); + assertSame(1, callCount); + a.__proto__ = Array.prototype; + assertSame('1,2,', a.join()); +})(); + +(function ArrayPrototypeIsNoLongerFast() { + const a = [1,2,3]; + let callCount = 0; + assertSame('1,2,777', a.join({ + toString() { + callCount++; + a.pop(); + Object.defineProperty(Array.prototype, '2', { + get(){ return 777; } + }); + return ','; + } + })); + assertSame(1, callCount); + assertSame('1,2', a.join()); +})(); diff --git a/implementation-contributed/v8/mjsunit/array-tolocalestring.js b/implementation-contributed/v8/mjsunit/array-tolocalestring.js new file mode 100644 index 0000000000000000000000000000000000000000..a5f856907af0c509162da90e4f02fefa11e1a7c2 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/array-tolocalestring.js @@ -0,0 +1,72 @@ +// 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. + +(function CycleDetection() { + const arr = [ + { + toLocaleString() { + return [1, arr]; + } + } + ]; + assertSame('1,', arr.toLocaleString()); + assertSame('1,', arr.toLocaleString()); +})(); + +(function ThrowsError(){ + function TestError() {} + const arr = []; + const obj = { + toLocaleString(){ + throw new TestError(); + } + }; + arr[0] = obj; + assertThrows(() => arr.toLocaleString(), TestError); + + // Verifies cycle detection still works properly after thrown error. + arr[0] = { + toLocaleString() { + return 1; + } + }; + assertSame('1', arr.toLocaleString()); +})(); + +(function AccessThrowsError(){ + function TestError() {} + const arr = []; + const obj = { + get toLocaleString(){ + throw new TestError(); + } + }; + arr[0] = obj; + assertThrows(() => arr.toLocaleString(), TestError); + + // Verifies cycle detection still works properly after thrown error. + arr[0] = { + toLocaleString() { + return 1; + } + }; + assertSame('1', arr.toLocaleString()); +})(); + +(function NotCallable(){ + const arr = []; + const obj = { + toLocaleString: 7 + } + arr[0] = obj; + assertThrows(() => arr.toLocaleString(), TypeError, '7 is not a function'); + + // Verifies cycle detection still works properly after thrown error. + arr[0] = { + toLocaleString() { + return 1; + } + }; + assertSame('1', arr.toLocaleString()); +})(); diff --git a/implementation-contributed/v8/mjsunit/compiler/regress-895799.js b/implementation-contributed/v8/mjsunit/compiler/regress-895799.js new file mode 100644 index 0000000000000000000000000000000000000000..4305b7427b1ee3ad5e904ac9d19f18ba9e4e70ce --- /dev/null +++ b/implementation-contributed/v8/mjsunit/compiler/regress-895799.js @@ -0,0 +1,26 @@ +// 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. + +// Flags: --allow-natives-syntax + +class C extends Object { + constructor() { + try { super(); } catch (e) { }; + return 1; + } +} + +class A extends C { + constructor() { + super(); + throw new Error(); + return { get: () => this }; + } +} + +var D = new Proxy(A, { get() { %DeoptimizeFunction(A); } }); + +try { Reflect.construct(A, [], D); } catch(e) {} +%OptimizeFunctionOnNextCall(A); +try { Reflect.construct(A, [], D); } catch(e) {} diff --git a/implementation-contributed/v8/mjsunit/es6/map-iterator-11.js b/implementation-contributed/v8/mjsunit/es6/map-iterator-11.js new file mode 100644 index 0000000000000000000000000000000000000000..02eada9cc1ae19d7e24184cba013a9698a81ffc9 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/es6/map-iterator-11.js @@ -0,0 +1,35 @@ +// 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. + +var map = new Map([[1,2], [2,3], [3,4]]); + +var iterator = map.keys(); +assertEquals([1,2,3], [...map.keys()]); +assertEquals([1,2,3], [...iterator]); +assertEquals([], [...iterator]); + +iterator = map.values(); +assertEquals([2,3,4], [...iterator]); +assertEquals([], [...iterator]); + +iterator = map.keys(); +iterator.next(); +assertEquals([2,3], [...iterator]); +assertEquals([], [...iterator]); + +iterator = map.values(); +var iterator2 = map.values(); + +map.delete(1); +assertEquals([3,4], [...iterator]); +assertEquals([], [...iterator]); + +map.set(1,5); +assertEquals([3,4,5], [...iterator2]); +assertEquals([], [...iterator2]); + +iterator = map.keys(); +map.set(4,6); +assertEquals([2,3,1,4], [...iterator]); +assertEquals([], [...iterator]); diff --git a/implementation-contributed/v8/mjsunit/es6/set-iterator-11.js b/implementation-contributed/v8/mjsunit/es6/set-iterator-11.js new file mode 100644 index 0000000000000000000000000000000000000000..dff71c8d91848d7e05af9b3ac8206f9dc77257bd --- /dev/null +++ b/implementation-contributed/v8/mjsunit/es6/set-iterator-11.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. + +var set = new Set([1,2,3]); + +var iterator = set.keys(); + +assertEquals([1,2,3], [...set.keys()]); +assertEquals([1,2,3], [...iterator]); +assertEquals([], [...iterator]); + +iterator = set.values(); +assertEquals([1,2,3], [...iterator]); +assertEquals([], [...iterator]); + +iterator = set.keys(); +iterator.next(); +assertEquals([2,3], [...iterator]); +assertEquals([], [...iterator]); + +iterator = set.values(); +var iterator2 = set.values(); + +set.delete(1); +assertEquals([2,3], [...iterator]); + +set.add(4); +assertEquals([2,3,4], [...iterator2]); + +iterator = set.keys(); +set.add(1); +assertEquals([2,3,4,1], [...iterator]); diff --git a/implementation-contributed/v8/mjsunit/mjsunit.status b/implementation-contributed/v8/mjsunit/mjsunit.status index e4aec9fb43d7d07161affb84eceec609549fcc35..3d72dd63a9174cf01ce128682fe8ca80392cda98 100644 --- a/implementation-contributed/v8/mjsunit/mjsunit.status +++ b/implementation-contributed/v8/mjsunit/mjsunit.status @@ -448,955 +448,6 @@ 'regress/regress-779407': [PASS, SLOW], }], # 'msan == True' -############################################################################## -['tsan == True', { - # https://bugs.chromium.org/p/v8/issues/detail?id=7102 - # Flaky due to huge string allocation. - 'regress/regress-748069': [SKIP], - - # Allocates a large array buffer, which TSAN sometimes cannot handle. - 'regress/regress-599717': [SKIP], - - # BUG(v8:7042). Uses a lot of memory. - 'regress/regress-678917': [SKIP], - - # BUG(v8:8103). Uses a lot of memory. - 'regress/regress-852258': [SKIP], - - # BUG(v8:6924). The test uses a lot of memory. - 'regress/wasm/regress-694433': [SKIP], - 'es6/typedarray': [PASS, NO_VARIANTS], - 'regress/regress-752764': [PASS, NO_VARIANTS], - - # BUG(v8:8294). Started flaking from seemingly unrelated commits, investigating. - 'object-seal': [SKIP], -}], # 'tsan == True' - -############################################################################## -['arch == arm or arch == android_arm', { - - # Slow tests which times out in debug mode. - 'try': [PASS, ['mode == debug', SKIP]], - 'array-constructor': [PASS, ['mode == debug', SKIP]], - 'regress/regress-1122': [PASS, SLOW, ['mode == debug and arch == android_arm', SKIP]], - - # Flaky test that can hit compilation-time stack overflow in debug mode. - 'unicode-test': [PASS, ['mode == debug', PASS, FAIL]], - - # Slow in release mode on ARM. - 'compiler/regress-stacktrace-methods': [PASS, SLOW], - 'array-splice': [PASS, SLOW], - - # Long running tests. Skipping because having them timeout takes too long on - # the buildbot. - 'big-object-literal': [SKIP], - 'compiler/alloc-number': [SKIP], - 'regress/regress-490': [SKIP], - 'regress/regress-create-exception': [SKIP], - 'regress/regress-3247124': [SKIP], - - # Requires bigger stack size in the Genesis and if stack size is increased, - # the test requires too much time to run. However, the problem test covers - # should be platform-independent. - 'regress/regress-1132': [SKIP], - - # Currently always deopt on minus zero - 'math-floor-of-div-minus-zero': [SKIP], - - # Slow tests. - 'array-sort': [PASS, SLOW], - 'compiler/osr-with-args': [PASS, SLOW], - 'packed-elements': [PASS, SLOW], - 'regress/regress-2790': [PASS, SLOW], - 'regress/regress-91008': [PASS, SLOW], - 'regress/regress-json-stringify-gc': [PASS, SLOW], - 'string-indexof-2': [PASS, SLOW], - 'wasm/atomics': [PASS, SLOW], -}], # 'arch == arm or arch == android_arm' - -############################################################################## -['(arch == mipsel or arch == mips or arch == mips64el or arch == mips64) and simulator_run != True', { - # These tests fail occasionally on the buildbots because they consume - # a large amount of memory if executed in parallel. Therefore we - # run only a single instance of these tests - 'regress/regress-crbug-514081': [PASS, NO_VARIANTS], - 'regress/regress-599717': [PASS, NO_VARIANTS], - 'regress/regress-599414-array-concat-fast-path': [PASS, NO_VARIANTS], - 'array-functions-prototype-misc': [PASS, NO_VARIANTS], -}], # 'arch == mipsel or arch == mips or arch == mips64el or arch == mips64' - -############################################################################## -['arch == mipsel or arch == mips or arch == mips64el or arch == mips64 or arch == ppc or arch == ppc64', { - # These tests fail because qNaN and sNaN values are encoded differently on - # MIPS and ARM/x86 architectures - 'wasm/float-constant-folding': [SKIP], -}], - -############################################################################## -['arch == mipsel or arch == mips', { - - # Slow tests which times out in debug mode. - 'try': [PASS, ['mode == debug', SKIP]], - 'array-constructor': [PASS, ['mode == debug', SKIP]], - - # Slow in release mode on MIPS. - 'compiler/regress-stacktrace-methods': [PASS, SLOW], - 'array-splice': [PASS, SLOW], - - # Long running test. - 'string-indexof-2': [PASS, SLOW], - - # Long running tests. Skipping because having them timeout takes too long on - # the buildbot. - 'compiler/alloc-number': [SKIP], - 'regress/regress-490': [SKIP], - 'regress/regress-create-exception': [SKIP], - 'regress/regress-3247124': [SKIP], - - # Requires bigger stack size in the Genesis and if stack size is increased, - # the test requires too much time to run. However, the problem test covers - # should be platform-independent. - 'regress/regress-1132': [SKIP], - - # Currently always deopt on minus zero - 'math-floor-of-div-minus-zero': [SKIP], - - # Requires too much memory on MIPS. - 'regress/regress-752764': [SKIP], - 'regress/regress-779407': [SKIP], - 'harmony/bigint/regressions': [SKIP], -}], # 'arch == mipsel or arch == mips' - -############################################################################## -['arch == mips64el or arch == mips64', { - - # Slow tests which times out in debug mode. - 'try': [PASS, ['mode == debug', SKIP]], - 'array-constructor': [PASS, ['mode == debug', SKIP]], - - # Slow in release mode on MIPS. - 'compiler/regress-stacktrace-methods': [PASS, SLOW], - 'array-splice': [PASS, SLOW], - - # Long running test. - 'string-indexof-2': [PASS, SLOW], - - # BUG(3251035): Timeouts in long looping crankshaft optimization - # tests. Skipping because having them timeout takes too long on the - # buildbot. - 'compiler/alloc-number': [PASS, SLOW], - 'compiler/array-length': [PASS, SLOW], - 'compiler/assignment-deopt': [PASS, SLOW], - 'compiler/deopt-args': [PASS, SLOW], - 'compiler/inline-compare': [PASS, SLOW], - 'compiler/inline-global-access': [PASS, SLOW], - 'compiler/optimized-function-calls': [PASS, SLOW], - 'compiler/pic': [PASS, SLOW], - 'compiler/property-calls': [PASS, SLOW], - 'compiler/recursive-deopt': [PASS, SLOW], - 'compiler/regress-4': [PASS, SLOW], - 'compiler/regress-funcaller': [PASS, SLOW], - 'compiler/regress-rep-change': [PASS, SLOW], - 'compiler/regress-arguments': [PASS, SLOW], - 'compiler/regress-funarguments': [PASS, SLOW], - 'compiler/regress-3249650': [PASS, SLOW], - 'compiler/simple-deopt': [PASS, SLOW], - 'regress/regress-490': [PASS, SLOW], - 'regress/regress-create-exception': [PASS, SLOW], - 'regress/regress-3218915': [PASS, SLOW], - 'regress/regress-3247124': [PASS, SLOW], - - # Requires bigger stack size in the Genesis and if stack size is increased, - # the test requires too much time to run. However, the problem test covers - # should be platform-independent. - 'regress/regress-1132': [SKIP], - - # Currently always deopt on minus zero - 'math-floor-of-div-minus-zero': [SKIP], - - # Requires too much memory on MIPS. - 'regress/regress-752764': [SKIP], - 'regress/regress-779407': [SKIP], -}], # 'arch == mips64el or arch == mips64' - -############################################################################## -['system == windows', { - # TODO(mstarzinger): Too slow with turbo fan. - 'big-object-literal': [SKIP], - 'math-floor-of-div': [PASS, ['mode == debug', SKIP]], - 'math-floor-of-div-nosudiv': [PASS, ['mode == debug', SKIP]], - 'unicodelctest': [PASS, ['mode == debug', SKIP]], - - # Setting the timezone and locale with environment variables unavailable - 'icu-date-to-string': [SKIP], - 'icu-date-lord-howe': [SKIP], - 'regress/regress-6288': [SKIP], - 'tzoffset-transition-apia': [SKIP], - 'tzoffset-transition-lord-howe': [SKIP], - 'tzoffset-transition-moscow': [SKIP], - 'tzoffset-transition-new-york': [SKIP], - 'tzoffset-transition-new-york-noi18n': [SKIP], - 'tzoffset-seoul': [SKIP], - 'tzoffset-seoul-noi18n': [SKIP], -}], # 'system == windows' - -############################################################################## -['system == android', { - # Tests consistently failing on Android. - # Unable to change locale on Android: - 'icu-date-to-string': [FAIL], - 'regress/regress-6288': [FAIL], - # OOM: - 'regress/regress-748069': [FAIL], - 'regress/regress-752764': [FAIL], - 'regress/regress-779407': [FAIL], - # Flaky OOM: - 'regress/regress-852258': [SKIP], -}], # 'system == android' - -############################################################################## -['system == macos', { - # BUG(v8:5333) - 'big-object-literal': [SKIP], -}], # 'system == macos' - -############################################################################## -['isolates', { - # Slow tests. - 'es6/typedarray-of': [PASS, SLOW], - 'regress/regress-crbug-854299': [PASS, SLOW], -}], # 'isolates' - -############################################################################## -['deopt_fuzzer == True', { - - # Skip tests that are not suitable for deoptimization fuzzing. - 'never-optimize': [SKIP], - 'readonly': [SKIP], - 'array-feedback': [SKIP], - 'deopt-recursive-eager-once': [SKIP], - 'deopt-recursive-lazy-once': [SKIP], - 'deopt-recursive-soft-once': [SKIP], - 'code-coverage-block-opt': [SKIP], - - # Bounds check triggers forced deopt for array constructors. - 'array-constructor-feedback': [SKIP], - - # Deopting uses just enough memory to make this one OOM. - 'regress/regress-3976': [SKIP], - - # Forced optimisation path tests. - 'shared-function-tier-up-turbo': [SKIP], - - # Fails deopt_fuzzer due to --deopt_every_n_times - 'es6/array-iterator-turbo': [SKIP] -}], # 'deopt_fuzzer == True' - -############################################################################## -['gc_fuzzer', { - 'regress/regress-336820': [SKIP], - 'regress/regress-748069': [SKIP], - 'regress/regress-778668': [SKIP], - 'ignition/regress-672027': [PASS, ['tsan', SKIP]], - 'string-replace-gc': [PASS, SLOW, ['mode == debug', SKIP]], - - # Unsuitable for GC fuzzing because coverage information is lost on GC. - 'code-coverage-ad-hoc': [SKIP], - 'code-coverage-precise': [SKIP], - - # Fails allocation on tsan. - 'es6/classes': [PASS, ['tsan', SKIP]], - - # Tests that fail some assertions due to checking internal state sensitive - # to GC. We mark PASS,FAIL to not skip those tests on the endurance fuzzer. - 'array-literal-feedback': [PASS, FAIL], - 'compiler/native-context-specialization-hole-check': [PASS, FAIL], - 'elements-transition-hoisting': [PASS, FAIL], - 'es6/collections-constructor-custom-iterator': [PASS, FAIL], - 'keyed-load-with-symbol-key': [PASS, FAIL], - 'object-seal': [PASS, FAIL], - 'regress/regress-3709': [PASS, FAIL], - 'regress/regress-6948': [PASS, FAIL], - 'regress/regress-7510': [PASS, FAIL], - 'regress/regress-trap-allocation-memento': [PASS, FAIL], - 'regress/regress-unlink-closures-on-deopt': [PASS, FAIL], - 'shared-function-tier-up-turbo': [PASS, FAIL], -}], # 'gc_fuzzer' - -############################################################################## -['endurance_fuzzer', { - # BUG(v8:7400). - 'wasm/lazy-compilation': [SKIP], - - # BUG(v8:7429). - 'regress/regress-599414-array-concat-fast-path': [SKIP], - - # Often crashes due to memory consumption. - 'regress/regress-655573': [SKIP], - - # TSAN allocation failures. - 'deep-recursion': [PASS, ['tsan', SKIP]], - 'regress/regress-430201b': [PASS, ['tsan', SKIP]], - 'regress/regress-crbug-493779': [PASS, ['tsan', SKIP]], - 'regress/wasm/regress-763439': [PASS, ['tsan', SKIP]], -}], # 'endurance_fuzzer' - -############################################################################## -['predictable == True', { - - # Skip tests that are known to be non-deterministic. - 'd8/d8-worker-sharedarraybuffer': [SKIP], - 'd8/d8-os': [SKIP], - 'harmony/futex': [SKIP], - - # BUG(v8:7166). - 'd8/enable-tracing': [SKIP], - # Relies on async compilation which requires background tasks. - 'wasm/streaming-error-position': [SKIP], -}], # 'predictable == True' - -############################################################################## -['simulator_run and (arch == ppc or arch == ppc64 or arch == s390 or arch == s390x)', { - - # take too long with the simulator. - 'regress/regress-1132': [SKIP], - 'regress/regress-740784': [SKIP], - 'regress/regress-crbug-482998': [PASS, SLOW], - 'regress/regress-91008': [PASS, SLOW], - 'harmony/regexp-property-lu-ui': [PASS, SLOW], - 'whitespaces': [PASS, SLOW], -}], # 'simulator_run and (arch == ppc or arch == ppc64 or arch == s390 or arch == s390x)' - -############################################################################## -['arch == ppc64', { - - # stack overflow - 'big-array-literal': [SKIP], - 'regress/regress-353551': [SKIP], -}], # 'arch == ppc64' - -############################################################################## -['arch == ppc64 or arch == ppc or arch == s390 or arch == s390x', { - - # TODO(ppc/s390): fix constant pool issue and implement tagging for reloc - 'wasm/compiled-module-serialization': [SKIP], - 'regress/wasm/regress-808980': [SKIP], - 'regress/wasm/regress-808848': [SKIP], -}], # 'arch == ppc64 or arch == ppc or arch == s390 or arch == s390x' - -############################################################################## -['variant == stress', { - 'es6/array-iterator-turbo': [SKIP], - - 'array-natives-elements': [SKIP], - 'ignition/regress-599001-verifyheap': [SKIP], - 'unicode-test': [SKIP], - - # Flaky crash on Odroid devices: https://crbug.com/v8/7678 - 'regress/regress-336820': [PASS, ['arch == arm and not simulator_run', SKIP]], - - # Too slow for TSAN in stress mode. - 'es6/classes': [PASS, ['tsan', SKIP]], - 'regress/regress-1122': [PASS, ['tsan', SKIP]], - - # Too slow with gc_stress on arm64. - 'messages': [PASS, ['gc_stress and arch == arm64', SKIP]], - - # Slow on arm64 simulator: https://crbug.com/v8/7783 - 'string-replace-gc': [PASS, ['arch == arm64 and simulator_run', SKIP]], - - # Too memory hungry on Odroid devices. - 'regress/regress-678917': [PASS, ['arch == arm and not simulator_run', SKIP]], - - # https://crbug.com/v8/8164 - 'wasm/compare-exchange-stress': [SKIP], -}], # variant == stress - -############################################################################## -['variant == stress and (arch == arm or arch == arm64) and simulator_run', { - # Slow tests: https://crbug.com/v8/7783 - 'generated-transition-stub': [SKIP], - 'wasm/grow-memory': [SKIP], -}], # variant == stress and (arch == arm or arch == arm64) and simulator_run - -############################################################################## -['variant == nooptimization and (arch == arm or arch == arm64) and simulator_run', { - # Slow tests: https://crbug.com/v8/7783 - 'md5': [SKIP], - 'packed-elements': [SKIP], - 'wasm/asm-wasm-f32': [SKIP], - 'wasm/asm-wasm-f64': [SKIP], - 'wasm/grow-memory': [SKIP], -}], # variant == nooptimization and (arch == arm or arch == arm64) and simulator_run - -############################################################################## -['(arch == arm or arch == arm64)', { - # Flaky tests: https://crbug.com/v8/8090 - 'regress/regress-752764': [SKIP], -}], # (arch == arm or arch == arm64) - -############################################################################## -['gcov_coverage', { - # Tests taking too long. - 'array-functions-prototype-misc': [SKIP], - - # Stack overflow. - 'big-array-literal': [SKIP], -}], # 'gcov_coverage' - -############################################################################## -['variant == no_wasm_traps', { - # Skip stuff uninteresting for wasm traps - 'bugs/*': [SKIP], - 'compiler/*': [SKIP], - 'es6/*': [SKIP], - 'es7/*': [SKIP], - 'es8/*': [SKIP], - 'harmony/*': [SKIP], - 'ignition/*': [SKIP], - 'lithium/*': [SKIP], - 'third_party/*': [SKIP], - 'tools/*': [SKIP], - 'apply': [SKIP], - 'math-*': [SKIP], - 'unicode-test': [SKIP], - 'whitespaces': [SKIP], -}], # variant == no_wasm_traps - -############################################################################## -['no_harness', { - # skip assertion tests since the stack trace is broken if mjsunit is - # included in the snapshot - 'mjsunit-assertion-error' : [SKIP], -}], # no_harness - -############################################################################## -['arch != x64 or deopt_fuzzer', { - # Skip stress-deopt-count tests since it's in x64 only - 'compiler/stress-deopt-count-*': [SKIP], -}], # arch != x64 or deopt_fuzzer - -############################################################################## -# Liftoff is currently only sufficiently implemented on x64, ia32 and arm64. -# TODO(clemensh): Implement on all other platforms (crbug.com/v8/6600). -['arch != x64 and arch != ia32 and arch != arm64', { - 'wasm/liftoff': [SKIP], - 'wasm/tier-up-testing-flag': [SKIP], -}], # arch != x64 and arch != ia32 and arch != arm64 - -############################################################################## -['variant == slow_path and gc_stress', { - # Slow tests. - 'regress/regress-crbug-493779': [SKIP], - 'string-replace-gc': [SKIP], -}], # variant == slow_path - -############################################################################## -['arch == x64', { - # TODO: Flaky test: crbug.com/v8/7899 - 'wasm/asm-wasm-i32': [SKIP], - 'wasm/asm-wasm-f64': [SKIP], -}], # arch == x64 - -############################################################################## -['arch == ia32 and embedded_builtins == True', { - # TODO(v8:6666): Fix arguments adaptor trampoline - 'wasm/compiled-module-serialization': [SKIP], - 'asm/embenchen/copy': [SKIP], - 'wasm/embenchen/corrections': [SKIP], - 'asm/embenchen/primes': [SKIP], - 'asm/embenchen/corrections': [SKIP], - 'wasm/embenchen/copy': [SKIP], - 'asm/embenchen/fannkuch': [SKIP], - 'asm/embenchen/memops': [SKIP], - 'asm/embenchen/fasta': [SKIP], - 'wasm/embenchen/fannkuch': [SKIP], - 'asm/embenchen/zlib': [SKIP], - 'wasm/embenchen/fasta': [SKIP], - 'wasm/embenchen/primes': [SKIP], - 'wasm/embenchen/box2d': [SKIP], - 'asm/embenchen/box2d': [SKIP], - 'wasm/embenchen/memops': [SKIP], - 'wasm/embenchen/zlib': [SKIP], - 'asm/embenchen/lua_binarytrees': [SKIP], - 'wasm/embenchen/lua_binarytrees': [SKIP], - 'asm/sqlite3/sqlite': [SKIP], - 'asm/sqlite3/sqlite-safe-heap': [SKIP], - 'asm/sqlite3/sqlite-pointer-masking': [SKIP], - 'asm/poppler/poppler': [SKIP], - 'regress/wasm/regress-808848': [SKIP], - 'regress/wasm/regress-834624': [SKIP], - 'regress/wasm/regress-843563': [SKIP], - 'wasm/anyref': [SKIP], - 'wasm/exceptions-shared': [SKIP], - 'wasm/errors': [SKIP], - 'wasm/ffi-error': [SKIP], - 'wasm/gc-frame': [SKIP], - 'wasm/import-function': [SKIP], - 'wasm/ffi': [SKIP], - 'wasm/test-wasm-module-builder': [SKIP], - 'wasm/stackwalk': [SKIP], -}], # arch == ia32 and embedded_builtins == True - -] - - /* - ********************************** test262-automation ********************************** - Summary: The two files have now diverged. - File Status: Partially curated & modified. - Source Status: Modified since its export. - Below is the current and modified source which was exported on Mon Oct 15 2018 18:44:03 GMT+0000 (Coordinated Universal Time) - */ - # Copyright 2012 the V8 project authors. All rights reserved. -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following -# disclaimer in the documentation and/or other materials provided -# with the distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -[ -[ALWAYS, { - # Modules which are only meant to be imported from by other tests, not to be - # tested standalone. - 'modules-skip*': [SKIP], - 'harmony/modules-skip*': [SKIP], - 'regress/modules-skip*': [SKIP], - - # All tests in the bug directory are expected to fail. - 'bugs/*': [FAIL], - - ############################################################################## - # Fails. - 'regress/regress-1119': [FAIL], - - # Issue 1719: Slow to collect arrays over several contexts. - 'regress/regress-524': [SKIP], - # When that bug is fixed, revert the expectation to: - # Skip long running test in debug. - # regress/regress-524: [PASS, ['mode == debug', SKIP]], - - # This test non-deterministically runs out of memory on Windows ia32. - 'regress/regress-crbug-160010': [SKIP], - - # Issue 3784: setters-on-elements is flaky - 'setters-on-elements': [PASS, FAIL], - - # Issue 5495: enable the test when the constant field tracking in enabled. - 'const-field-tracking': [SKIP], - - ############################################################################## - # Too slow in debug mode with --stress-opt mode. - 'regress/regress-create-exception': [PASS, ['mode == debug', SKIP]], - - ############################################################################## - # Too slow in debug mode for validation of elements. - 'regress/regress-430201': [PASS, ['mode == debug', SKIP], ['tsan', SKIP]], - 'regress/regress-430201b': [PASS, ['mode == debug', SKIP]], - 'regress/regress-716044': [PASS, ['mode == debug', SKIP]], - - ############################################################################## - # Too slow in debug mode for GC stress mode. - 'regress/regress-crbug-217858': [PASS, ['mode == debug', SKIP]], - - # Too slow in debug mode and under turbofan. - 'regress/regress-4595': [PASS, NO_VARIANTS, ['mode == debug', SKIP]], - - ############################################################################## - # Only RegExp stuff tested, no need for extensive optimizing compiler tests. - 'regexp-global': [PASS, NO_VARIANTS], - 'third_party/regexp-pcre/regexp-pcre': [PASS, NO_VARIANTS], - - ############################################################################## - # No need to waste time for this test. - 'd8/d8-performance-now': [PASS, NO_VARIANTS], - 'regress/regress-crbug-491062': [PASS, NO_VARIANTS], - - # Issue 488: this test sometimes times out. - # TODO(arm): This seems to flush out a bug on arm with simulator. - 'array-constructor': [PASS, SLOW, ['arch == arm and simulator == True', SKIP]], - - # Very slow test - 'regress/regress-crbug-808192' : [PASS, SLOW, NO_VARIANTS, ['mode == debug or arch == arm or arch == arm64 or arch == android_arm or arch == android_arm64 or arch == mipsel or arch == mips64el or arch == mips64 or arch == mips or arch == s390 or arch == s390x or arch == ppc or arch == ppc64', SKIP]], - - # Very slow on ARM and MIPS, contains no architecture dependent code. - 'unicode-case-overoptimization': [PASS, NO_VARIANTS, ['arch == arm or arch == arm64 or arch == android_arm or arch == android_arm64 or arch == mipsel or arch == mips64el or arch == mips64 or arch == mips', SKIP]], - 'regress/regress-3976': [PASS, NO_VARIANTS, ['arch == arm or arch == arm64 or arch == android_arm or arch == android_arm64 or arch == mipsel or arch == mips64el or arch == mips64 or arch == mips', SKIP]], - 'regress/regress-crbug-482998': [PASS, NO_VARIANTS, ['arch == arm or arch == arm64 or arch == android_arm or arch == android_arm64 or arch == mipsel or arch == mips64el or arch == mips', SKIP]], - 'regress/regress-740784': [PASS, NO_VARIANTS, ['arch == arm or arch == arm64 or arch == android_arm or arch == android_arm64 or arch == mipsel or arch == mips64el or arch == mips', SKIP]], - - # This test allocates a 2G block of memory and if there are multiple - # variants this can lead to OOM. - 'regress/regress-crbug-514081': [PASS, NO_VARIANTS], - - ############################################################################## - # Skip long running tests that time out in debug mode. - 'generated-transition-stub': [PASS, ['mode == debug', SKIP]], - 'migrations': [SKIP], - 'array-functions-prototype-misc': [PASS, SLOW, ['mode == debug', SKIP]], - 'compiler/regress-808472': [PASS, ['mode == debug', SKIP]], - 'es6/promise-all-overflow-1': [SKIP], - 'es6/promise-all-overflow-2': [PASS, SLOW, ['mode == debug or arch != x64', SKIP]], - - ############################################################################## - # This test sets the umask on a per-process basis and hence cannot be - # used in multi-threaded runs. - # On android there is no /tmp directory. - # Currently d8-os generates a temporary directory name using Math.random(), so - # we cannot run several variants of d8-os simultaneously, since all of them - # get the same random seed and would generate the same directory name. Besides - # that, it doesn't make sense to run several variants of d8-os anyways. - 'd8/d8-os': [PASS, NO_VARIANTS, ['isolates or arch == android_arm or arch == android_arm64 or arch == android_ia32', SKIP]], - 'tools/tickprocessor': [PASS, NO_VARIANTS, ['arch == android_arm or arch == android_arm64 or arch == android_ia32', SKIP]], - 'tools/dumpcpp': [PASS, NO_VARIANTS, ['arch == android_arm or arch == android_arm64 or arch == android_ia32', SKIP]], - - ############################################################################## - # These tests generate files in the test directory, so we cannot run several - # variants of them simultaneously. Additionally they should not be affected by - # variants. - 'd8/enable-tracing': [PASS, NO_VARIANTS], - 'tools/compiler-trace-flags': [PASS, NO_VARIANTS], - - ############################################################################## - # Long running test that reproduces memory leak and should be run manually. - 'regress/regress-2073': [SKIP], - - ############################################################################## - # Tests verifying CHECK and ASSERT. - 'verify-check-false': [FAIL, NO_VARIANTS], - 'verify-assert-false': [NO_VARIANTS, ['mode == release and dcheck_always_on == False', PASS], ['mode == debug or dcheck_always_on == True', FAIL]], - - ############################################################################## - # Tests with different versions for release and debug. - 'compiler/alloc-number': [PASS, ['mode == debug', SKIP]], - 'compiler/alloc-number-debug': [PASS, ['mode == release', SKIP]], - 'regress/regress-634-debug': [PASS, ['mode == release', SKIP]], - - # BUG(v8:2989). - 'regress/regress-2989': [FAIL, NO_VARIANTS], - - # This test variant makes only sense on arm. - 'math-floor-of-div-nosudiv': [PASS, SLOW, ['arch not in [arm, arm64, android_arm, android_arm64]', SKIP]], - - # Too slow for slow variants. - 'asm/embenchen/*': [PASS, SLOW, NO_VARIANTS], - 'asm/poppler/*': [PASS, SLOW, NO_VARIANTS], - 'asm/sqlite3/*': [PASS, SLOW, NO_VARIANTS], - - # OOM flakes in isolates tests because too many largish heaps are created. - 'asm/asm-heap': [PASS, NO_VARIANTS, ['isolates', SKIP]], - - # Slow tests. - 'copy-on-write-assert': [PASS, SLOW], - 'es6/typedarray-construct-offset-not-smi': [PASS, SLOW], - 'harmony/regexp-property-script-extensions': [PASS, SLOW], - 'md5': [PASS, SLOW], - 'numops-fuzz-part*': [PASS, ['mode == debug', SLOW]], - 'readonly': [PASS, SLOW], - 'regress/regress-1122': [PASS, SLOW], - 'regress/regress-605470': [PASS, SLOW], - 'regress/regress-655573': [PASS, SLOW], - 'regress/regress-1200351': [PASS, SLOW], - 'regress/wasm/regress-810973': [PASS, SLOW], - 'string-replace-gc': [PASS, SLOW], - 'wasm/asm-wasm-f32': [PASS, SLOW], - 'wasm/asm-wasm-f64': [PASS, SLOW], - 'wasm/compare-exchange-stress': [PASS, SLOW], - 'wasm/embenchen/*': [PASS, SLOW], - 'wasm/grow-memory': [PASS, SLOW], - 'wasm/unreachable-validation': [PASS, SLOW], - - # case-insensitive unicode regexp relies on case mapping provided by ICU. - 'es6/unicode-regexp-ignore-case': [PASS, ['no_i18n == True', FAIL]], - 'es6/unicode-regexp-ignore-case-noi18n': [FAIL, ['no_i18n == True', PASS]], - 'regress/regress-5036': [PASS, ['no_i18n == True', FAIL]], - 'es7/regexp-ui-word': [PASS, ['no_i18n == True', FAIL]], - 'regexp-modifiers-i18n': [PASS, ['no_i18n == True', FAIL]], - 'regexp-modifiers-autogenerated-i18n': [PASS, ['no_i18n == True', FAIL]], - # desugaring regexp property class relies on ICU. - 'harmony/regexp-property-*': [PASS, ['no_i18n == True', FAIL]], - 'regress/regress-793588': [PASS, ['no_i18n == True', FAIL]], - - # noi18n build cannot parse characters in supplementary plane. - 'harmony/regexp-named-captures': [PASS, ['no_i18n == True', FAIL]], - - # noi18n cannot turn on ICU backend for Date - 'icu-date-to-string': [PASS, ['no_i18n == True', SKIP]], - 'icu-date-lord-howe': [PASS, ['no_i18n == True', SKIP]], - 'tzoffset-transition-apia': [PASS, ['no_i18n == True', SKIP]], - 'tzoffset-transition-lord-howe': [PASS, ['no_i18n == True', SKIP]], - 'tzoffset-transition-moscow': [PASS, ['no_i18n == True', SKIP]], - 'tzoffset-transition-new-york': [PASS, ['no_i18n == True', SKIP]], - 'tzoffset-seoul': [PASS, ['no_i18n == True', SKIP]], - - # TODO(bmeurer): Flaky timeouts (sometimes <1s, sometimes >3m). - 'unicodelctest': [PASS, NO_VARIANTS], - 'unicodelctest-no-optimization': [PASS, NO_VARIANTS], - - # TODO(vogelheim): big-object-literal exceeds the stack in debug builds, - # which makes the test useless. - 'big-object-literal': [PASS, ['mode == debug', SKIP]], - - # Runs out of stack space in debug builds. - 'big-array-literal': [PASS, ['mode == debug', SKIP]], - - # BUG(v8:6306). - 'wasm/huge-memory': [SKIP], - - # Allocates a huge string and then flattens it, very slow in debug mode. - 'regress/regress-752764': [PASS, ['mode == debug', SLOW]], - - # https://crbug.com/v8/7697 - 'array-literal-feedback': [PASS, FAIL], - - # https://crbug.com/v8/7775 - 'allocation-site-info': [SKIP], - - # BUG(v8:8169) - 'external-backing-store-gc': [SKIP], -}], # ALWAYS - -['novfp3 == True', { - 'asm/embenchen/box2d': [SKIP], - 'asm/embenchen/zlib': [SKIP], - 'asm/embenchen/memops': [SKIP], - 'asm/embenchen/lua_binarytrees': [SKIP], -}], # novfp3 == True - -############################################################################## -# TODO(ahaas): Port multiple return values to ARM, MIPS, S390 and PPC -['arch == arm or arch == arm64 or arch == mips or arch == mips64 or arch == mipsel or arch == mips64el or arch == s390 or arch == s390x or arch == ppc or arch == ppc64', { - 'wasm/multi-value': [SKIP], -}], - -############################################################################## -['gc_stress == True', { - # Skip tests not suitable for GC stress. - 'allocation-site-info': [SKIP], - 'array-constructor-feedback': [SKIP], - 'array-feedback': [SKIP], - 'array-literal-feedback': [SKIP], - 'd8/d8-performance-now': [SKIP], - 'elements-kind': [SKIP], - 'elements-transition-hoisting': [SKIP], - 'fast-prototype': [SKIP], - 'field-type-tracking': [SKIP], - 'getters-on-elements': [SKIP], - 'es6/block-let-crankshaft': [SKIP], - 'opt-elements-kind': [SKIP], - 'osr-elements-kind': [SKIP], - 'regress/regress-crbug-137689': [SKIP], - 'regress/regress-trap-allocation-memento': [SKIP], - 'regress/regress-2249': [SKIP], - 'regress/regress-4121': [SKIP], - 'compare-known-objects-slow': [SKIP], - 'compiler/array-multiple-receiver-maps': [SKIP], - # Tests taking too long - 'packed-elements': [SKIP], - 'regress/regress-1122': [SKIP], - 'regress/regress-331444': [SKIP], - 'regress/regress-353551': [SKIP], - 'regress/regress-crbug-119926': [SKIP], - 'regress/short-circuit': [SKIP], - 'stack-traces-overflow': [SKIP], - 'unicode-test': [SKIP], - 'whitespaces': [SKIP], - - # Unsuitable for GC stress because coverage information is lost on GC. - 'code-coverage-ad-hoc': [SKIP], - 'code-coverage-precise': [SKIP], - - # TODO(mstarzinger): Takes too long with TF. - 'array-sort': [PASS, NO_VARIANTS], - 'regress/regress-91008': [PASS, NO_VARIANTS], - 'regress/regress-transcendental': [PASS, ['arch == arm64', NO_VARIANTS]], - 'compiler/osr-regress-max-locals': [PASS, NO_VARIANTS], - 'math-floor-of-div': [PASS, NO_VARIANTS], - 'unicodelctest': [PASS, NO_VARIANTS], - 'unicodelctest-no-optimization': [PASS, NO_VARIANTS], - - # TODO(jkummerow): Doesn't work correctly in GC stress. - 'regress/regress-crbug-500497': [SKIP], - - # Too slow for gc stress. - 'asm/embenchen/box2d': [SKIP], - - # BUG(v8:4237) - 'regress/regress-3976': [SKIP], - - # Slow tests. - 'array-constructor': [PASS, SLOW], - 'json': [PASS, SLOW], - - # BUG(v8:4779): Crashes flakily with stress mode on arm64. - 'array-splice': [PASS, SLOW, ['arch == arm64', NO_VARIANTS]], - - # BUG(v8:7880): Slow tests. - 'regress/regress-707066': [SKIP], - 'regress/regress-446389': [SKIP], - 'regress/regress-458987': [SKIP], - 'es6/regress/regress-crbug-465671': [SKIP], - 'regress/regress-inline-getter-near-stack-limit': [SKIP], - 'es6/regress/regress-crbug-465671-null': [SKIP], - 'regress/regress-148378': [SKIP], - 'regress/regress-crbug-762472': [SKIP], -}], # 'gc_stress == True' - -############################################################################## -['byteorder == big', { - # Emscripten requires little-endian, skip all tests on big endian platforms. - 'asm/embenchen/*': [SKIP], - 'asm/poppler/*': [SKIP], - 'asm/sqlite3/*': [SKIP], - # TODO(mips-team): Fix Wasm for big-endian. - 'wasm/*': [SKIP], -}], # 'byteorder == big' - -############################################################################## -['arch == arm64 or arch == android_arm64', { - - # Requires bigger stack size in the Genesis and if stack size is increased, - # the test requires too much time to run. However, the problem test covers - # should be platform-independent. - 'regress/regress-1132': [SKIP], - - # Pass but take too long to run. Skip. - # Some similar tests (with fewer iterations) may be included in arm64-js - # tests. - 'asm/embenchen/box2d': [SKIP], - 'asm/embenchen/lua_binarytrees': [SKIP], - 'big-object-literal': [SKIP], - 'compiler/regress-arguments': [SKIP], - 'compiler/regress-gvn': [SKIP], - 'compiler/regress-4': [SKIP], - 'compiler/regress-or': [SKIP], - 'compiler/regress-rep-change': [SKIP], - 'regress/regress-1117': [SKIP], - 'regress/regress-1849': [SKIP], - 'regress/regress-3247124': [SKIP], - 'regress/regress-91008': [SKIP], - 'regress/regress-91010': [SKIP], - 'regress/regress-91013': [SKIP], - 'regress/regress-99167': [SKIP], - - # BUG(v8:3457). - 'deserialize-reference': [PASS, FAIL], - - # BUG(v8:4016) - 'regress/regress-crbug-467047': [SKIP], - - # Slow tests. - 'array-concat': [PASS, SLOW], - 'array-indexing': [PASS, SLOW], - 'array-reduce': [PASS, SLOW], - 'array-sort': [PASS, SLOW], - 'array-splice': [PASS, SLOW], - 'bit-not': [PASS, SLOW], - 'compiler/alloc-number': [PASS, SLOW], - 'compiler/osr-assert': [PASS, SLOW], - 'compiler/osr-with-args': [PASS, SLOW], - 'generated-transition-stub': [PASS, SLOW], - 'json2': [PASS, SLOW], - 'math-floor-of-div-nosudiv': [PASS, SLOW], - 'math-floor-of-div': [PASS, SLOW], - 'messages': [PASS, SLOW], - 'packed-elements': [PASS, SLOW], - 'regress/regress-2790': [PASS, SLOW], - 'regress/regress-331444': [PASS, SLOW], - 'regress/regress-490': [PASS, SLOW], - 'regress/regress-crbug-217858': [PASS, SLOW], - 'regress/regress-create-exception': [PASS, SLOW], - 'regress/regress-json-stringify-gc': [PASS, SLOW], - 'string-indexof-2': [PASS, SLOW], - 'unicodelctest-no-optimization': [PASS, SLOW], - 'unicodelctest': [PASS, SLOW], - 'unicode-test': [PASS, SLOW], - 'wasm/atomics': [PASS, SLOW], - 'whitespaces': [PASS, SLOW], - - # BUG(v8:7247). - 'regress/regress-779407': [PASS, SLOW, NO_VARIANTS], -}], # 'arch == arm64' - -['arch == arm64 and mode == debug and simulator_run', { - - # Pass but take too long with the simulator in debug mode. - 'array-sort': [PASS, SLOW], - 'packed-elements': [SKIP], - 'regexp-global': [SKIP], - 'math-floor-of-div': [PASS, SLOW], - 'math-floor-of-div-nosudiv': [PASS, SLOW], - 'unicodelctest': [PASS, SLOW], - 'unicodelctest-no-optimization': [PASS, SLOW], - # Issue 3219: - 'getters-on-elements': [PASS, ['gc_stress == True', FAIL]], -}], # 'arch == arm64 and mode == debug and simulator_run' - -############################################################################## -['asan == True', { - # Skip tests not suitable for ASAN. - 'big-array-literal': [SKIP], - 'big-object-literal': [SKIP], - 'regress/regress-crbug-178790': [SKIP], - - # https://bugs.chromium.org/p/v8/issues/detail?id=4639 - # The failed allocation causes an asan/msan/tsan error - 'es6/typedarray-construct-offset-not-smi': [SKIP], - - # Exception thrown during bootstrapping on ASAN builds, see issue 4236. - 'regress/regress-1132': [SKIP], - - # Flaky on ASAN builds: https://bugs.chromium.org/p/v8/issues/detail?id=6305 - 'regress/regress-430201': [SKIP], - 'regress/regress-430201b': [SKIP], - - # Stack overflow on windows. - 'es8/regress/regress-624300': [PASS, ['system == windows', SKIP]], - - # https://bugs.chromium.org/p/v8/issues/detail?id=7102 - # Flaky due to huge string allocation. - 'regress/regress-748069': [SKIP], -}], # 'asan == True' - -############################################################################## -['msan == True', { - # Skip tests not suitable for MSAN. - 'big-array-literal': [SKIP], - # ICU upstream issues. - 'date': [SKIP], - 'deep-recursion': [SKIP], - 'regress/regress-builtinbust-7': [SKIP], - 'string-localecompare': [SKIP], - - # Too slow. - 'harmony/regexp-property-lu-ui': [SKIP], - - # https://bugs.chromium.org/p/v8/issues/detail?id=7102 - # Flaky due to huge string allocation. - 'regress/regress-748069': [SKIP], - # Slow test. - 'regress/regress-779407': [PASS, SLOW], -}], # 'msan == True' - ############################################################################## ['tsan == True', { # https://bugs.chromium.org/p/v8/issues/detail?id=7102 @@ -1664,6 +715,7 @@ 'regress/regress-3709': [PASS, FAIL], 'regress/regress-6948': [PASS, FAIL], 'regress/regress-7510': [PASS, FAIL], + 'regress/regress-crbug-882233-2': [PASS, FAIL], 'regress/regress-trap-allocation-memento': [PASS, FAIL], 'regress/regress-unlink-closures-on-deopt': [PASS, FAIL], 'shared-function-tier-up-turbo': [PASS, FAIL], @@ -1756,12 +808,16 @@ # https://crbug.com/v8/8164 'wasm/compare-exchange-stress': [SKIP], + + # Too slow for verify-csa builds. + 'big-object-literal': [PASS, ['verify_csa == True', SKIP]], }], # variant == stress ############################################################################## ['variant == stress and (arch == arm or arch == arm64) and simulator_run', { # Slow tests: https://crbug.com/v8/7783 'generated-transition-stub': [SKIP], + 'regress/regress-336820': [SKIP], 'wasm/grow-memory': [SKIP], }], # variant == stress and (arch == arm or arch == arm64) and simulator_run @@ -1770,6 +826,7 @@ # Slow tests: https://crbug.com/v8/7783 'md5': [SKIP], 'packed-elements': [SKIP], + 'regress/regress-crbug-319860': [SKIP], 'wasm/asm-wasm-f32': [SKIP], 'wasm/asm-wasm-f64': [SKIP], 'wasm/grow-memory': [SKIP], diff --git a/implementation-contributed/v8/mjsunit/regress/regress-895691.js b/implementation-contributed/v8/mjsunit/regress/regress-895691.js new file mode 100644 index 0000000000000000000000000000000000000000..6f63ac6c9b025fa2e1c09cd455599eb109e1e759 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/regress/regress-895691.js @@ -0,0 +1,18 @@ +// 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. + +// Flags: --allow-natives-syntax + +const n = 2**32; +const x = new Float32Array(); + +function f() { + for (var i = 96; i < 100; i += 4) { + x[i] = i + n; + } +} + +f(); +%OptimizeFunctionOnNextCall(f); +f(); diff --git a/implementation-contributed/v8/test262/test262.status b/implementation-contributed/v8/test262/test262.status index 4210263d4010ff821cd9aacb457024a41eaf09b1..47965aa50ccf2125d6826fe16d4943dab3835ebe 100644 --- a/implementation-contributed/v8/test262/test262.status +++ b/implementation-contributed/v8/test262/test262.status @@ -550,9 +550,6 @@ # https://bugs.chromium.org/p/v8/issues/detail?id=7669 'intl402/Intl/getCanonicalLocales/canonicalized-tags': [FAIL], - # https://bugs.chromium.org/p/v8/issues/detail?id=8051 - 'intl402/Collator/unicode-ext-seq-in-private-tag': [FAIL], - # Tests assume that the sort order of "same elements" (comparator returns 0) # is deterministic. # https://crbug.com/v8/7808 @@ -616,6 +613,15 @@ # https://bugs.chromium.org/p/v8/issues/detail?id=7871 'intl402/ListFormat/prototype/formatToParts/en-us-disjunction': [FAIL], + # The following is due to spec changes in + # https://github.com/tc39/proposal-intl-list-format/pull/27 + # and will be addressed after pulling new test262 which include the tests fixes in + # https://github.com/tc39/test262/pull/1860 + # see https://bugs.chromium.org/p/v8/issues/detail?id=8302 + 'intl402/ListFormat/constructor/constructor/options-style-valid': [FAIL], + 'intl402/ListFormat/prototype/format/en-us-narrow': [FAIL], + 'intl402/ListFormat/prototype/formatToParts/en-us-narrow': [FAIL], + ######################## NEEDS INVESTIGATION ########################### # These test failures are specific to the intl402 suite and need investigation