[v8-test262-automation] Changes from https://github.com/v8/v8.git at sha fb4d8c01 on Fri Oct 05 2018 18:37:43 GMT+0000 (Coordinated Universal Time)

This commit is contained in:
test262-automation 2018-10-05 18:38:20 +00:00 committed by Rick Waldron
parent f8e3a8ed11
commit ffb51db775
21 changed files with 869 additions and 886 deletions

View File

@ -7,9 +7,10 @@ assertDoesNotThrow(() => Intl.getCanonicalLocales("foobar-foobar"));
// Ignore duplicate subtags in different namespaces; eg, 'a' vs 'u'.
assertDoesNotThrow(() => Intl.getCanonicalLocales("en-a-ca-Chinese-u-ca-Chinese"));
// Ignore duplicate subtags in U-extension as well. Only the first count.
// See RFC 6067 for details.
assertDoesNotThrow(() => Intl.getCanonicalLocales("en-u-ca-gregory-ca-chinese"));
assertEquals("en-u-ca-gregory", Intl.getCanonicalLocales("en-u-ca-gregory-ca-chinese")[0]);
// Check duplicate subtags (after the first tag) are detected.
assertThrows(() => Intl.getCanonicalLocales("en-foobar-foobar"), RangeError);
// Duplicate subtags are valid as per the ECMA262 spec.
assertDoesNotThrow(() => Intl.getCanonicalLocales("en-u-ca-gregory-ca-chinese"));

View File

@ -23,5 +23,5 @@
].forEach(([inputLocale, expectedLocale]) => {
const canonicalLocales = Intl.getCanonicalLocales(inputLocale);
assertEquals(canonicalLocales.length, 1);
assertEquals(canonicalLocales[0], expectedLocale);
assertEquals(expectedLocale, canonicalLocales[0]);
})

View File

@ -29,6 +29,6 @@
["aam-u-ca-gregory", "aas-u-ca-gregory"],
].forEach(([inputLocale, expectedLocale]) => {
const canonicalLocales = Intl.getCanonicalLocales(inputLocale);
assertEquals(canonicalLocales.length, 1);
assertEquals(canonicalLocales[0], expectedLocale);
assertEquals(1, canonicalLocales.length);
assertEquals(expectedLocale, canonicalLocales[0]);
})

View File

@ -0,0 +1,216 @@
// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-lineBreakStyle license that can be
// found in the LICENSE file.
// Flags: --harmony-intl-segmenter
// Segmenter constructor can't be called as function.
assertThrows(() => Intl.Segmenter(["sr"]), TypeError);
// Invalid locale string.
assertThrows(() => new Intl.Segmenter(["abcdefghi"]), RangeError);
assertDoesNotThrow(() => new Intl.Segmenter(["sr"], {}), TypeError);
assertDoesNotThrow(() => new Intl.Segmenter([], {}));
assertDoesNotThrow(() => new Intl.Segmenter(["fr", "ar"], {}));
assertDoesNotThrow(() => new Intl.Segmenter({ 0: "ja", 1: "fr" }, {}));
assertDoesNotThrow(() => new Intl.Segmenter({ 1: "ja", 2: "fr" }, {}));
assertDoesNotThrow(() => new Intl.Segmenter(["sr"]));
assertDoesNotThrow(() => new Intl.Segmenter());
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "grapheme"
})
);
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { granularity: "sentence" })
);
assertDoesNotThrow(() => new Intl.Segmenter(["sr"], { granularity: "word" }));
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { granularity: "grapheme" })
);
assertDoesNotThrow(() => new Intl.Segmenter(["sr"], { granularity: "line" }));
assertThrows(
() => new Intl.Segmenter(["sr"], { granularity: "standard" }),
RangeError
);
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { lineBreakStyle: "normal" })
);
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { lineBreakStyle: "strict" })
);
assertDoesNotThrow(
() => new Intl.Segmenter(["sr"], { lineBreakStyle: "loose" })
);
assertThrows(
() => new Intl.Segmenter(["sr"], { lineBreakStyle: "giant" }),
RangeError
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "sentence",
lineBreakStyle: "normal"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "sentence",
lineBreakStyle: "strict"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "sentence",
lineBreakStyle: "loose"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "word",
lineBreakStyle: "normal"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "word",
lineBreakStyle: "strict"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "word",
lineBreakStyle: "loose"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "grapheme",
lineBreakStyle: "normal"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "grapheme",
lineBreakStyle: "strict"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "grapheme",
lineBreakStyle: "loose"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "line",
lineBreakStyle: "loose"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "line",
lineBreakStyle: "normal"
})
);
assertDoesNotThrow(
() =>
new Intl.Segmenter(["sr"], {
granularity: "line",
lineBreakStyle: "strict"
})
);
// propagate exception from getter
assertThrows(
() =>
new Intl.Segmenter(undefined, {
get localeMatcher() {
throw new TypeError("");
}
}),
TypeError
);
assertThrows(
() =>
new Intl.Segmenter(undefined, {
get lineBreakStyle() {
throw new TypeError("");
}
}),
TypeError
);
assertThrows(
() =>
new Intl.Segmenter(undefined, {
get granularity() {
throw new TypeError("");
}
}),
TypeError
);
// Throws only once during construction.
// Check for all getters to prevent regression.
// Preserve the order of getter initialization.
let getCount = 0;
let localeMatcher = -1;
let lineBreakStyle = -1;
let granularity = -1;
new Intl.Segmenter(["en-US"], {
get localeMatcher() {
localeMatcher = ++getCount;
},
get lineBreakStyle() {
lineBreakStyle = ++getCount;
},
get granularity() {
granularity = ++getCount;
}
});
assertEquals(1, localeMatcher);
assertEquals(2, lineBreakStyle);
assertEquals(3, granularity);

View File

@ -0,0 +1,299 @@
// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-lineBreakStyle license that can be
// found in the LICENSE file.
// Flags: --harmony-intl-segmenter
let segmenter = new Intl.Segmenter([], { granularity: "line" });
// The default lineBreakStyle is 'normal'
assertEquals("normal", segmenter.resolvedOptions().lineBreakStyle);
segmenter = new Intl.Segmenter();
assertEquals(undefined, segmenter.resolvedOptions().lineBreakStyle);
// The default granularity is 'grapheme'
assertEquals("grapheme", segmenter.resolvedOptions().granularity);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], { lineBreakStyle: "strict" }).resolvedOptions()
.lineBreakStyle
);
assertEquals(
"grapheme",
new Intl.Segmenter(["sr"], { lineBreakStyle: "strict" }).resolvedOptions()
.granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], { lineBreakStyle: "normal" }).resolvedOptions()
.lineBreakStyle
);
assertEquals(
"grapheme",
new Intl.Segmenter(["sr"], { lineBreakStyle: "normal" }).resolvedOptions()
.granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], { lineBreakStyle: "loose" }).resolvedOptions()
.lineBreakStyle
);
assertEquals(
"grapheme",
new Intl.Segmenter(["sr"], { lineBreakStyle: "loose" }).resolvedOptions()
.granularity
);
assertEquals(
"word",
new Intl.Segmenter(["sr"], { granularity: "word" }).resolvedOptions()
.granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], { granularity: "word" }).resolvedOptions()
.lineBreakStyle
);
assertEquals(
"grapheme",
new Intl.Segmenter(["sr"], { granularity: "grapheme" }).resolvedOptions()
.granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], { granularity: "grapheme" }).resolvedOptions()
.lineBreakStyle
);
assertEquals(
"sentence",
new Intl.Segmenter(["sr"], { granularity: "sentence" }).resolvedOptions()
.granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], { granularity: "sentence" }).resolvedOptions()
.lineBreakStyle
);
assertEquals(
"line",
new Intl.Segmenter(["sr"], { granularity: "line" }).resolvedOptions()
.granularity
);
assertEquals(
"normal",
new Intl.Segmenter(["sr"], { granularity: "line" }).resolvedOptions()
.lineBreakStyle
);
assertEquals(
"grapheme",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "loose",
granularity: "grapheme"
}).resolvedOptions().granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], {
lineBreakStyle: "loose",
granularity: "grapheme"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"grapheme",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "grapheme"
}).resolvedOptions().granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "grapheme"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"grapheme",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "normal",
granularity: "grapheme"
}).resolvedOptions().granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], {
lineBreakStyle: "normal",
granularity: "grapheme"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"word",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "loose",
granularity: "word"
}).resolvedOptions().granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], {
lineBreakStyle: "loose",
granularity: "word"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"word",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "word"
}).resolvedOptions().granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "word"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"word",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "normal",
granularity: "word"
}).resolvedOptions().granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], {
lineBreakStyle: "normal",
granularity: "word"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"sentence",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "loose",
granularity: "sentence"
}).resolvedOptions().granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], {
lineBreakStyle: "loose",
granularity: "sentence"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"sentence",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "sentence"
}).resolvedOptions().granularity
);
assertEquals(
undefined,
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "sentence"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"sentence",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "normal",
granularity: "sentence"
}).resolvedOptions().granularity
);
assertEquals(
"normal",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "normal",
granularity: "line"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"line",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "loose",
granularity: "line"
}).resolvedOptions().granularity
);
assertEquals(
"loose",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "loose",
granularity: "line"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"line",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "line"
}).resolvedOptions().granularity
);
assertEquals(
"strict",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "strict",
granularity: "line"
}).resolvedOptions().lineBreakStyle
);
assertEquals(
"line",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "normal",
granularity: "line"
}).resolvedOptions().granularity
);
assertEquals(
"normal",
new Intl.Segmenter(["sr"], {
lineBreakStyle: "normal",
granularity: "line"
}).resolvedOptions().lineBreakStyle
);
assertEquals("ar", new Intl.Segmenter(["ar"]).resolvedOptions().locale);
assertEquals("ar", new Intl.Segmenter(["ar", "en"]).resolvedOptions().locale);
assertEquals("fr", new Intl.Segmenter(["fr", "en"]).resolvedOptions().locale);
assertEquals("ar", new Intl.Segmenter(["xyz", "ar"]).resolvedOptions().locale);

View File

@ -0,0 +1,22 @@
// 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
assertEquals(
typeof Intl.Segmenter.supportedLocalesOf,
"function",
"Intl.Segmenter.supportedLocalesOf should be a function"
);
var undef = Intl.Segmenter.supportedLocalesOf();
assertEquals([], undef);
var empty = Intl.Segmenter.supportedLocalesOf([]);
assertEquals([], empty);
var strLocale = Intl.Segmenter.supportedLocalesOf("sr");
assertEquals("sr", strLocale[0]);
var multiLocale = ["sr-Thai-RS", "de", "zh-CN"];
assertEquals(multiLocale, Intl.Segmenter.supportedLocalesOf(multiLocale));

View File

@ -172,3 +172,99 @@
await test(one);
})());
})();
// Basic test for async generators called from async
// functions with an explicit throw.
(function() {
async function one(x) {
for await (const y of two(x)) {}
}
async function* two(x) {
await x;
throw new Error();
}
async function test(f) {
try {
await f(1);
assertUnreachable();
} catch (e) {
assertInstanceof(e, Error);
assertMatches(/Error.+at two.+at async one.+at async test/ms, e.stack);
}
}
assertPromiseResult((async () => {
await test(one);
await test(one);
%OptimizeFunctionOnNextCall(two);
await test(one);
%OptimizeFunctionOnNextCall(one);
await test(one);
})());
})();
// Basic test for async functions called from async
// generators with an explicit throw.
(function() {
async function* one(x) {
await two(x);
}
async function two(x) {
await x;
throw new Error();
}
async function test(f) {
try {
for await (const x of f(1)) {}
assertUnreachable();
} catch (e) {
assertInstanceof(e, Error);
assertMatches(/Error.+at two.+at async one.+at async test/ms, e.stack);
}
}
assertPromiseResult((async () => {
await test(one);
await test(one);
%OptimizeFunctionOnNextCall(two);
await test(one);
%OptimizeFunctionOnNextCall(one);
await test(one);
})());
})();
// Basic test for async functions called from async
// generators with an explicit throw (with yield).
(function() {
async function* one(x) {
yield two(x);
}
async function two(x) {
await x;
throw new Error();
}
async function test(f) {
try {
for await (const x of f(1)) {}
assertUnreachable();
} catch (e) {
assertInstanceof(e, Error);
assertMatches(/Error.+at two.+at async one.+at async test/ms, e.stack);
}
}
assertPromiseResult((async () => {
await test(one);
await test(one);
%OptimizeFunctionOnNextCall(two);
await test(one);
%OptimizeFunctionOnNextCall(one);
await test(one);
})());
})();

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --allow-natives-syntax --opt --no-always-opt --deopt-every-n-times=6
// Flags: --allow-natives-syntax --opt --no-always-opt --deopt-every-n-times=3
// Check that stress deopt count resets correctly
@ -14,34 +14,34 @@ function f(x) {
f(1);
%OptimizeFunctionOnNextCall(f);
// stress_deopt_count == 6
f(1);
assertOptimized(f, undefined, undefined, false);
// stress_deopt_count == 4
// stress_deopt_count == 3
f(1);
assertOptimized(f, undefined, undefined, false);
// stress_deopt_count == 2
f(1);
assertOptimized(f, undefined, undefined, false);
// stress_deopt_count == 1
f(1);
// deopt & counter reset
assertUnoptimized(f, undefined, undefined, false);
// stress_deopt_count == 6
// stress_deopt_count == 3
%OptimizeFunctionOnNextCall(f);
f(1);
assertOptimized(f, undefined, undefined, false);
// stress_deopt_count == 4
// stress_deopt_count == 2
f(1);
assertOptimized(f, undefined, undefined, false);
// stress_deopt_count == 2
// stress_deopt_count == 1
f(1);
// deopt & counter reset

View File

@ -0,0 +1,32 @@
// 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 --opt --noalways-opt
// Test that String.fromCodePoint() properly identifies zeros.
(function() {
function foo(x) {
return String.fromCodePoint(x);
}
assertEquals("\u0000", foo(0));
assertEquals("\u0000", foo(-0));
%OptimizeFunctionOnNextCall(foo);
assertEquals("\u0000", foo(0));
assertEquals("\u0000", foo(-0));
assertOptimized(foo);
// Now passing anything outside the valid code point
// range should invalidate the optimized code.
assertThrows(_ => foo(-1));
assertUnoptimized(foo);
// And TurboFan should not inline the builtin anymore
// from now on (aka no deoptimization loop).
%OptimizeFunctionOnNextCall(foo);
assertEquals("\u0000", foo(0));
assertEquals("\u0000", foo(-0));
assertThrows(_ => foo(-1));
assertOptimized(foo);
})();

View File

@ -212,7 +212,7 @@ tests.push(function TestFromTypedArraySpeciesNeutersBuffer(constr) {
});
tests.push(function TestLengthIsMaxSmi(constr) {
var myObject = { 0: 5, 1: 6, length: %_MaxSmi() + 1 };
var myObject = { 0: 5, 1: 6, length: %MaxSmi() + 1 };
assertThrows(function() {
new constr(myObject);
@ -258,7 +258,7 @@ tests.push(function TestOffsetIsUsed(constr) {
});
tests.push(function TestLengthIsNonSmiNegativeNumber(constr) {
var ta = new constr({length: -%_MaxSmi() - 2});
var ta = new constr({length: -%MaxSmi() - 2});
assertEquals(0, ta.length);
});

View File

@ -5,7 +5,7 @@
// Flags: --allow-natives-syntax --mock-arraybuffer-allocator
(function TestBufferByteLengthNonSmi() {
var non_smi_byte_length = %_MaxSmi() + 1;
var non_smi_byte_length = %MaxSmi() + 1;
var buffer = new ArrayBuffer(non_smi_byte_length);
@ -20,7 +20,7 @@
})();
(function TestByteOffsetNonSmi() {
var non_smi_byte_length = %_MaxSmi() + 11;
var non_smi_byte_length = %MaxSmi() + 11;
var buffer = new ArrayBuffer(non_smi_byte_length);

View File

@ -5,13 +5,13 @@
// Flags: --allow-natives-syntax --mock-arraybuffer-allocator
(function TestBufferByteLengthNonSmi() {
const source_buffer_length = %_MaxSmi() + 1;
const source_buffer_length = %MaxSmi() + 1;
const source_buffer = new ArrayBuffer(source_buffer_length);
const source = new Uint16Array(source_buffer);
assertEquals(source_buffer_length, source_buffer.byteLength);
assertEquals(source_buffer_length / 2, source.length);
const target_buffer_length = %_MaxSmi() - 1;
const target_buffer_length = %MaxSmi() - 1;
const target_buffer = new ArrayBuffer(target_buffer_length);
const target = new Uint16Array(target_buffer);
assertEquals(target_buffer_length, target_buffer.byteLength);

View File

@ -0,0 +1,124 @@
// 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-await-optimization
// test basic interleaving
(function () {
const actual = [];
const expected = [ 'await', 1, 'await', 2 ];
const iterations = 2;
async function pushAwait() {
actual.push('await');
}
async function callAsync() {
for (let i = 0; i < iterations; i++) {
await pushAwait();
}
return 0;
}
function checkAssertions() {
assertArrayEquals(expected, actual,
'Async/await and promises should be interleaved.');
}
assertPromiseResult((async() => {
callAsync();
return new Promise(function (resolve) {
actual.push(1);
resolve();
}).then(function () {
actual.push(2);
}).then(checkAssertions);
})());
})();
// test async generators
(function () {
const actual = [];
const expected = [ 'await', 1, 'await', 2 ];
const iterations = 2;
async function pushAwait() {
actual.push('await');
}
async function* callAsync() {
for (let i = 0; i < iterations; i++) {
await pushAwait();
}
return 0;
}
function checkAssertions() {
assertArrayEquals(expected, actual,
'Async/await and promises should be interleaved when using async generators.');
}
assertPromiseResult((async() => {
callAsync().next();
return new Promise(function (resolve) {
actual.push(1);
resolve();
}).then(function () {
actual.push(2);
}).then(checkAssertions);
})());
})();
// test yielding from async generators
(function () {
const actual = [];
const expected = [
'Promise: 6',
'Promise: 5',
'Await: 3',
'Promise: 4',
'Promise: 3',
'Await: 2',
'Promise: 2',
'Promise: 1',
'Await: 1',
'Promise: 0'
];
const iterations = 3;
async function* naturalNumbers(start) {
let current = start;
while (current > 0) {
yield Promise.resolve(current--);
}
}
async function trigger() {
for await (const num of naturalNumbers(iterations)) {
actual.push('Await: ' + num);
}
}
async function checkAssertions() {
assertArrayEquals(expected, actual,
'Async/await and promises should be interleaved when yielding.');
}
async function countdown(counter) {
actual.push('Promise: ' + counter);
if (counter > 0) {
return Promise.resolve(counter - 1).then(countdown);
} else {
await checkAssertions();
}
}
assertPromiseResult((async() => {
trigger();
return countdown(iterations * 2);
})());
})();

View File

@ -26,7 +26,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --nostress-opt --allow-natives-syntax --mock-arraybuffer-allocator
var maxSize = %_MaxSmi() + 1;
var maxSize = %MaxSmi() + 1;
var ab;
// Allocate the largest ArrayBuffer we can on this architecture.

View File

@ -27,7 +27,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Flags: --nostress-opt --allow-natives-syntax
var maxSize = %_MaxSmi() + 1;
var maxSize = %MaxSmi() + 1;
function TestArray(constr) {
assertThrows(function() {
new constr(maxSize);

View File

@ -0,0 +1,12 @@
// 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: --random-seed=1
for (let i = 0; i < 54; ++i) Math.random();
let sum = 0;
for (let i = 0; i < 10; ++i)
sum += Math.floor(Math.random() * 50);
assertNotEquals(0, sum);

View File

@ -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.
// Flags: --async-stack-traces
const a = /x/;
a.exec = RegExp.prototype.test;
assertThrows(() => RegExp.prototype.test.call(a));

View File

@ -0,0 +1,7 @@
// 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: --async-stack-traces
assertThrows(_ => '' + {toString: Object.prototype.toLocaleString});

View File

@ -27,41 +27,34 @@
// Flags: --allow-natives-syntax --opt --noalways-opt
function mul(a, b) {
return a * b;
}
(function() {
function mul(a, b) {
return a * b;
}
mul(-1, 2);
mul(-1, 2);
%OptimizeFunctionOnNextCall(mul);
assertEquals(-2, mul(-1, 2));
assertOptimized(mul);
mul(-1, 2);
mul(-1, 2);
%OptimizeFunctionOnNextCall(mul);
assertEquals(-2, mul(-1, 2));
assertOptimized(mul);
// Deopt on minus zero.
assertEquals(-0, mul(-1, 0));
assertUnoptimized(mul);
})();
// Deopt on minus zero.
assertEquals(-0, mul(-1, 0));
assertUnoptimized(mul);
(function() {
function mul2(a, b) {
return a * b;
}
mul2(-1, 2);
mul2(-1, 2);
%OptimizeFunctionOnNextCall(mul2);
assertEquals(-2, mul2(-1, 2));
assertOptimized(mul2);
function mul2(a, b) {
return a * b;
}
mul2(-1, 2);
mul2(-1, 2);
%OptimizeFunctionOnNextCall(mul2);
// 2^30 is a smi boundary on arm and ia32.
var two_30 = 1 << 30;
// 2^31 is a smi boundary on x64.
var two_31 = 2 * two_30;
if (%IsValidSmi(two_31)) {
// Deopt on two_31 on x64.
assertEquals(two_31, mul2(-two_31, -1));
// Deopt on 2^31.
assertEquals(1 << 31, mul2(-(1 << 31), -1));
assertUnoptimized(mul2);
} else {
// Deopt on two_30 on ia32.
assertEquals(two_30, mul2(-two_30, -1));
assertUnoptimized(mul2);
}
})();

View File

@ -560,833 +560,6 @@
'intl402/Collator/prototype/compare/bound-to-collator-instance': [SKIP],
'intl402/Collator/ignore-invalid-unicode-ext-values': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=7684
'intl402/Locale/constructor-non-iana-canon': [FAIL],
'intl402/Locale/constructor-options-language-valid': [FAIL],
'intl402/Locale/constructor-parse-twice': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=8246
'intl402/Locale/constructor-tag': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=8244
'intl402/Locale/constructor-getter-order': [FAIL],
'intl402/Locale/constructor-locale-object': [FAIL],
'intl402/Locale/constructor-options-language-grandfathered': [FAIL],
'intl402/Locale/constructor-options-language-invalid': [FAIL],
'intl402/Locale/constructor-options-region-invalid': [FAIL],
'intl402/Locale/constructor-options-region-valid': [FAIL],
'intl402/Locale/constructor-options-script-invalid': [FAIL],
'intl402/Locale/constructor-options-script-valid': [FAIL],
'intl402/Locale/constructor-unicode-ext-invalid': [FAIL],
'intl402/Locale/getters': [FAIL],
'intl402/Locale/invalid-tag-throws': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=8243
'intl402/Locale/extensions-private': [FAIL],
'intl402/Locale/getters-privateuse': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=8236
'intl402/Locale/likely-subtags': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=8242
'intl402/Locale/extensions-grandfathered': [FAIL],
'intl402/Locale/getters-grandfathered': [FAIL],
'intl402/Locale/likely-subtags-grandfathered': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=6705
'built-ins/Object/assign/strings-and-symbol-order': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7781
'built-ins/Date/parse/time-value-maximum-range': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7831
'language/statements/generators/generator-created-after-decl-inst': [FAIL],
'language/expressions/generators/generator-created-after-decl-inst': [FAIL],
'language/expressions/async-generator/generator-created-after-decl-inst': [FAIL],
'language/statements/async-generator/generator-created-after-decl-inst': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=8099
'intl402/NumberFormat/prototype/format/format-negative-numbers': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7871
'intl402/ListFormat/prototype/formatToParts/en-us-disjunction': [FAIL],
######################## NEEDS INVESTIGATION ###########################
# These test failures are specific to the intl402 suite and need investigation
# to be either marked as bugs with issues filed for them or as deliberate
# incompatibilities if the test cases turn out to be broken or ambiguous.
# Some of these are related to v8:4361 in being visible side effects from Intl.
'intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7833
'built-ins/Atomics/wait/cannot-suspend-throws': [SKIP],
'built-ins/Atomics/wait/undefined-index-defaults-to-zero': [SKIP],
##################### DELIBERATE INCOMPATIBILITIES #####################
# https://github.com/tc39/ecma262/pull/889
'annexB/language/function-code/block-decl-func-skip-arguments': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=6538
# https://bugs.chromium.org/p/v8/issues/detail?id=6541
'language/export/escaped-as-export-specifier': [FAIL],
'language/export/escaped-from': [FAIL],
'language/expressions/object/method-definition/escaped-get': [FAIL],
'language/expressions/object/method-definition/escaped-set': [FAIL],
'language/import/escaped-as-import-specifier': [FAIL],
'language/import/escaped-as-namespace-import': [FAIL],
'language/import/escaped-from': [FAIL],
'language/statements/for-await-of/escaped-of': [FAIL],
'language/statements/for-of/escaped-of': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=6543
'language/statements/labeled/value-await-non-module-escaped': [FAIL],
'language/statements/labeled/value-yield-non-strict-escaped': [FAIL],
'language/expressions/async-arrow-function/escaped-async-line-terminator': [FAIL],
'language/expressions/class/class-name-ident-await-escaped': [FAIL],
'language/statements/class/class-name-ident-await-escaped': [FAIL],
############################ INVALID TESTS #############################
# Test makes unjustified assumptions about the number of calls to SortCompare.
# Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=596
'built-ins/Array/prototype/sort/bug_596_1': [PASS, FAIL_OK],
# https://github.com/tc39/test262/pull/688#pullrequestreview-14025354
'built-ins/Function/internals/Construct/derived-this-uninitialized-realm': [FAIL],
# Date tests that fail in CE(S)T timezone.
# https://bugs.chromium.org/p/v8/issues/detail?id=5449
'built-ins/Date/prototype/setFullYear/new-value-time-clip': [PASS, FAIL],
'built-ins/Date/prototype/setMonth/new-value-time-clip': [PASS, FAIL],
# Test against internals of harness; we plug in differently
'harness/detachArrayBuffer': [SKIP],
'harness/detachArrayBuffer-host-detachArrayBuffer': [SKIP],
############################ SKIPPED TESTS #############################
# These tests take a looong time to run.
'built-ins/decodeURI/S15.1.3.1_A1.10_T1': [SKIP],
'built-ins/decodeURI/S15.1.3.1_A1.11_T1': [SKIP],
'built-ins/decodeURI/S15.1.3.1_A1.11_T2': [SKIP],
'built-ins/decodeURI/S15.1.3.1_A1.12_T1': [SKIP],
'built-ins/decodeURI/S15.1.3.1_A1.12_T2': [SKIP],
'built-ins/decodeURI/S15.1.3.1_A2.5_T1': [SKIP],
'built-ins/decodeURIComponent/S15.1.3.2_A1.11_T1': [SKIP],
'built-ins/decodeURIComponent/S15.1.3.2_A1.12_T1': [SKIP],
'built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1': [SKIP],
'language/literals/regexp/S7.8.5_A1.1_T2': [SKIP],
'language/literals/regexp/S7.8.5_A1.4_T2': [SKIP],
'language/literals/regexp/S7.8.5_A2.1_T2': [SKIP],
'language/literals/regexp/S7.8.5_A2.4_T2': [SKIP],
'built-ins/Array/prototype/slice/S15.4.4.10_A3_T1': [SKIP],
'built-ins/Array/prototype/slice/S15.4.4.10_A3_T2': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=7187
'built-ins/Function/prototype/toString/line-terminator-normalisation-CR': [SKIP],
'language/expressions/class/fields-after-same-line-static-async-gen-static-private-methods-with-fields': [FAIL],
'language/expressions/class/fields-after-same-line-static-async-method-static-private-methods-with-fields': [FAIL],
'language/expressions/class/fields-new-sc-line-gen-static-private-methods-with-fields': [FAIL],
'language/expressions/class/fields-private-derived-cls-direct-eval-err-contains-supercall': [FAIL],
'language/expressions/class/fields-private-derived-cls-direct-eval-err-contains-supercall-1': [FAIL],
'language/expressions/class/fields-private-derived-cls-direct-eval-err-contains-supercall-2': [FAIL],
'language/expressions/class/fields-private-derived-cls-direct-eval-err-contains-superproperty-1': [FAIL],
'language/expressions/class/fields-private-derived-cls-direct-eval-err-contains-superproperty-2': [FAIL],
'language/expressions/class/fields-private-derived-cls-indirect-eval-err-contains-supercall': [FAIL],
'language/expressions/class/fields-private-derived-cls-indirect-eval-err-contains-supercall-1': [FAIL],
'language/expressions/class/fields-private-derived-cls-indirect-eval-err-contains-supercall-2': [FAIL],
'language/expressions/class/fields-private-derived-cls-indirect-eval-err-contains-superproperty-1': [FAIL],
'language/expressions/class/fields-private-derived-cls-indirect-eval-err-contains-superproperty-2': [FAIL],
'language/expressions/class/fields-same-line-async-gen-static-private-methods-with-fields': [FAIL],
'language/expressions/class/fields-same-line-async-method-static-private-methods-with-fields': [FAIL],
'language/expressions/class/fields-same-line-gen-static-private-methods-with-fields': [FAIL],
'language/statements/class/fields-after-same-line-static-async-gen-static-private-methods-with-fields': [FAIL],
'language/statements/class/fields-after-same-line-static-async-method-static-private-methods-with-fields': [FAIL],
'language/statements/class/fields-new-sc-line-gen-static-private-methods-with-fields': [FAIL],
'language/statements/class/fields-private-derived-cls-direct-eval-err-contains-supercall': [FAIL],
'language/statements/class/fields-private-derived-cls-direct-eval-err-contains-supercall-1': [FAIL],
'language/statements/class/fields-private-derived-cls-direct-eval-err-contains-supercall-2': [FAIL],
'language/statements/class/fields-private-derived-cls-direct-eval-err-contains-superproperty-1': [FAIL],
'language/statements/class/fields-private-derived-cls-direct-eval-err-contains-superproperty-2': [FAIL],
'language/statements/class/fields-private-derived-cls-indirect-eval-err-contains-supercall': [FAIL],
'language/statements/class/fields-private-derived-cls-indirect-eval-err-contains-supercall-1': [FAIL],
'language/statements/class/fields-private-derived-cls-indirect-eval-err-contains-supercall-2': [FAIL],
'language/statements/class/fields-private-derived-cls-indirect-eval-err-contains-superproperty-1': [FAIL],
'language/statements/class/fields-private-derived-cls-indirect-eval-err-contains-superproperty-2': [FAIL],
'language/statements/class/fields-same-line-async-gen-static-private-methods-with-fields': [FAIL],
'language/statements/class/fields-same-line-async-method-static-private-methods-with-fields': [FAIL],
'language/statements/class/fields-same-line-gen-static-private-methods-with-fields': [FAIL],
############################ SLOW TESTS #############################
'annexB/built-ins/RegExp/RegExp-leading-escape-BMP': [PASS, SLOW],
'annexB/built-ins/RegExp/RegExp-trailing-escape-BMP': [PASS, SLOW],
'language/comments/S7.4_A5': [PASS, SLOW],
'language/comments/S7.4_A6': [PASS, SLOW],
}], # ALWAYS
['no_i18n == True', {
# Unicode canonicalization is not available with i18n turned off.
'built-ins/String/prototype/localeCompare/15.5.4.9_CE': [SKIP],
# Unicode regexp case mapping is not available with i18n turned off.
'language/literals/regexp/u-case-mapping': [SKIP],
# BUG(v8:4437).
'built-ins/String/prototype/normalize/return-normalized-string': [SKIP],
'built-ins/String/prototype/normalize/return-normalized-string-from-coerced-form': [SKIP],
'built-ins/String/prototype/normalize/return-normalized-string-using-default-parameter': [SKIP],
# Case-conversion is not fully compliant to the Unicode spec with i18n off.
'built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E': [FAIL],
'built-ins/String/prototype/toLocaleLowerCase/special_casing_conditional': [FAIL],
'built-ins/String/prototype/toLocaleLowerCase/supplementary_plane': [FAIL],
'built-ins/String/prototype/toLowerCase/Final_Sigma_U180E': [FAIL],
'built-ins/String/prototype/toLowerCase/special_casing_conditional': [FAIL],
'built-ins/String/prototype/toLowerCase/supplementary_plane': [FAIL],
'built-ins/String/prototype/toLocaleUpperCase/supplementary_plane': [FAIL],
'built-ins/String/prototype/toUpperCase/supplementary_plane': [FAIL],
# Locale-sensitive case-conversion is not available with i18n off.
'intl402/String/prototype/toLocaleLowerCase/special_casing_Azeri': [FAIL],
'intl402/String/prototype/toLocaleLowerCase/special_casing_Lithuanian': [FAIL],
'intl402/String/prototype/toLocaleLowerCase/special_casing_Turkish': [FAIL],
'intl402/String/prototype/toLocaleUpperCase/special_casing_Azeri': [FAIL],
'intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian': [FAIL],
'intl402/String/prototype/toLocaleUpperCase/special_casing_Turkish': [FAIL],
# Unicode property escapes unavailable without i18n
'built-ins/RegExp/property-escapes/*': [SKIP],
'built-ins/RegExp/named-groups/unicode-property-names': [SKIP],
}], # no_i18n == True
['arch == arm or arch == mipsel or arch == mips or arch == arm64 or arch == mips64 or arch == mips64el', {
# TODO(mstarzinger): Causes stack overflow on simulators due to eager
# compilation of parenthesized function literals. Needs investigation.
'language/statements/function/S13.2.1_A1_T1': [SKIP],
# BUG(3251225): Tests that timeout with --noopt.
'built-ins/decodeURI/S15.1.3.1_A2.4_T1': [SKIP],
'built-ins/decodeURI/S15.1.3.1_A2.5_T1': [SKIP],
'built-ins/decodeURIComponent/S15.1.3.2_A2.4_T1': [SKIP],
'built-ins/decodeURIComponent/S15.1.3.2_A2.5_T1': [SKIP],
'built-ins/encodeURI/S15.1.3.3_A2.3_T1': [SKIP],
'built-ins/encodeURIComponent/S15.1.3.4_A2.3_T1': [SKIP],
}], # 'arch == arm or arch == mipsel or arch == mips or arch == arm64'
['byteorder == big', {
# Test failures on big endian platforms due to the way the tests
# are written
# https://github.com/tc39/test262/issues/757
'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type': [SKIP],
}],
['asan == True', {
# BUG(v8:4653): Test262 tests which rely on quit() are not compatible with
# asan's --omit-quit flag.
'built-ins/Promise/prototype/then/deferred-is-resolved-value': [SKIP],
}], # asan == True
['asan == True or msan == True or tsan == True', {
# https://bugs.chromium.org/p/v8/issues/detail?id=4639
# The failed allocation causes an asan/msan/tsan error
'built-ins/ArrayBuffer/allocation-limit': [SKIP],
'built-ins/ArrayBuffer/length-is-too-large-throws': [SKIP],
'built-ins/SharedArrayBuffer/allocation-limit': [SKIP],
'built-ins/SharedArrayBuffer/length-is-too-large-throws': [SKIP],
}], # asan == True or msan == True or tsan == True
['variant == no_wasm_traps', {
'*': [SKIP],
}], # variant == no_wasm_traps
['variant != default or arch == arm or arch == arm64 or arch == mipsel or arch == mips or arch == mips64 or arch == mips64el', {
# These tests take a long time to run
'built-ins/RegExp/property-escapes/generated/*': [SKIP],
}], # variant != default or arch == arm or arch == arm64
['system == windows', {
# https://crbug.com/856119
'intl402/DateTimeFormat/prototype/resolvedOptions/basic': [SKIP],
}], # system == windows
]
/*
********************************** 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 Thu Oct 04 2018 18:37:16 GMT+0000 (Coordinated Universal Time)
*/
# Copyright 2011 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, {
###################### MISSING ES6 FEATURES #######################
# https://code.google.com/p/v8/issues/detail?id=4248
'language/expressions/compound-assignment/S11.13.2_A5.*': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A6.*': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.10_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.11_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.1_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.2_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.3_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.4_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.5_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.6_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.7_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.8_T4': [FAIL],
'language/expressions/compound-assignment/S11.13.2_A7.9_T4': [FAIL],
'language/statements/with/unscopables-inc-dec': [FAIL],
# https://code.google.com/p/v8/issues/detail?id=4249
'language/expressions/assignment/S11.13.1_A7_T1': [FAIL],
'language/expressions/assignment/S11.13.1_A7_T2': [FAIL],
'language/expressions/assignment/S11.13.1_A7_T3': [FAIL],
'language/expressions/postfix-increment/S11.3.1_A6_T3': [FAIL],
'language/expressions/postfix-decrement/S11.3.2_A6_T3': [FAIL],
'language/expressions/prefix-decrement/S11.4.5_A6_T3': [FAIL],
'language/expressions/prefix-increment/S11.4.4_A6_T3': [FAIL],
# https://code.google.com/p/v8/issues/detail?id=4250
'language/expressions/assignment/S11.13.1_A5*': [FAIL],
'language/expressions/assignment/S11.13.1_A6*': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=4709
'built-ins/Promise/reject-function-name': [FAIL],
'built-ins/Promise/resolve-function-name': [FAIL],
'built-ins/Promise/all/resolve-element-function-name': [FAIL],
'built-ins/Promise/executor-function-name': [FAIL],
'built-ins/Proxy/revocable/revocation-function-name': [FAIL],
'language/expressions/assignment/fn-name-lhs-cover': [FAIL],
'language/expressions/assignment/fn-name-lhs-member': [FAIL],
'language/expressions/function/name': [FAIL],
'language/expressions/generators/name': [FAIL],
'intl402/NumberFormat/prototype/format/format-function-name': [FAIL],
'intl402/DateTimeFormat/prototype/format/format-function-name': [FAIL],
'intl402/Collator/prototype/compare/compare-function-name': [FAIL],
# https://code.google.com/p/v8/issues/detail?id=4251
'language/expressions/postfix-increment/S11.3.1_A5_T1': [FAIL],
'language/expressions/postfix-increment/S11.3.1_A5_T2': [FAIL],
'language/expressions/postfix-increment/S11.3.1_A5_T3': [FAIL],
'language/expressions/postfix-increment/S11.3.1_A5_T4': [FAIL],
'language/expressions/postfix-increment/S11.3.1_A5_T5': [FAIL],
'language/expressions/postfix-decrement/S11.3.2_A5_*': [FAIL],
'language/expressions/prefix-decrement/S11.4.5_A5_*': [FAIL],
'language/expressions/prefix-increment/S11.4.4_A5_*': [FAIL],
'language/statements/variable/binding-resolution': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=4895
'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Get/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Get/BigInt/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Get/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/Get/BigInt/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/Get/infinity-detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Get/BigInt/infinity-detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/GetOwnProperty/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/GetOwnProperty/enumerate-detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/enumerate-detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/HasProperty/BigInt/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/HasProperty/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/HasProperty/BigInt/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/HasProperty/infinity-with-detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/HasProperty/BigInt/infinity-with-detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer': [FAIL],
# Some TypedArray methods throw due to the same bug, from Get
'built-ins/TypedArray/prototype/every/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/every/BigInt/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/find/predicate-may-detach-buffer': [FAIL],
'built-ins/TypedArray/prototype/find/BigInt/predicate-may-detach-buffer': [FAIL],
'built-ins/TypedArray/prototype/findIndex/predicate-may-detach-buffer': [FAIL],
'built-ins/TypedArray/prototype/findIndex/BigInt/predicate-may-detach-buffer': [FAIL],
'built-ins/TypedArray/prototype/forEach/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/forEach/BigInt/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/map/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/map/BigInt/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/reduce/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/reduce/BigInt/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/reduceRight/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/reduceRight/BigInt/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/some/callbackfn-detachbuffer': [FAIL],
'built-ins/TypedArray/prototype/some/BigInt/callbackfn-detachbuffer': [FAIL],
# DataView functions should also throw on detached buffers
'built-ins/ArrayBuffer/prototype/byteLength/detached-buffer': [FAIL],
'built-ins/DataView/detached-buffer': [FAIL],
'built-ins/DataView/prototype/byteLength/detached-buffer': [FAIL],
'built-ins/DataView/prototype/byteOffset/detached-buffer': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=4231
'language/eval-code/direct/var-env-lower-lex-catch-non-strict': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=4951
'language/expressions/assignment/dstr-array-elem-iter-rtrn-close-err': [FAIL],
'language/expressions/assignment/dstr-array-elem-iter-thrw-close': [FAIL],
'language/expressions/assignment/dstr-array-elem-iter-thrw-close-err': [FAIL],
'language/expressions/assignment/dstr-array-elem-trlg-iter-list-thrw-close': [FAIL],
'language/expressions/assignment/dstr-array-elem-trlg-iter-list-thrw-close-err': [FAIL],
'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close': [FAIL],
'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close-err': [FAIL],
'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close-null': [FAIL],
'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-thrw-close': [FAIL],
'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-thrw-close-err': [FAIL],
'language/expressions/assignment/dstr-array-rest-iter-rtrn-close': [FAIL],
'language/expressions/assignment/dstr-array-rest-iter-rtrn-close-err': [FAIL],
'language/expressions/assignment/dstr-array-rest-iter-rtrn-close-null': [FAIL],
'language/expressions/assignment/dstr-array-rest-iter-thrw-close': [FAIL],
'language/expressions/assignment/dstr-array-rest-iter-thrw-close-err': [FAIL],
'language/expressions/assignment/dstr-array-rest-lref-err': [FAIL],
'language/statements/for-of/dstr-array-elem-iter-rtrn-close-err': [FAIL],
'language/statements/for-of/dstr-array-elem-iter-thrw-close': [FAIL],
'language/statements/for-of/dstr-array-elem-iter-thrw-close-err': [FAIL],
'language/statements/for-of/dstr-array-elem-trlg-iter-list-thrw-close': [FAIL],
'language/statements/for-of/dstr-array-elem-trlg-iter-list-thrw-close-err': [FAIL],
'language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close': [FAIL],
'language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err': [FAIL],
'language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null': [FAIL],
'language/statements/for-of/dstr-array-elem-trlg-iter-rest-thrw-close': [FAIL],
'language/statements/for-of/dstr-array-elem-trlg-iter-rest-thrw-close-err': [FAIL],
'language/statements/for-of/dstr-array-rest-iter-rtrn-close': [FAIL],
'language/statements/for-of/dstr-array-rest-iter-rtrn-close-err': [FAIL],
'language/statements/for-of/dstr-array-rest-iter-rtrn-close-null': [FAIL],
'language/statements/for-of/dstr-array-rest-iter-thrw-close': [FAIL],
'language/statements/for-of/dstr-array-rest-iter-thrw-close-err': [FAIL],
'language/statements/for-of/dstr-array-rest-lref-err': [FAIL],
'language/expressions/assignment/destructuring/iterator-destructuring-property-reference-target-evaluation-order': [FAIL],
'language/expressions/assignment/destructuring/keyed-destructuring-property-reference-target-evaluation-order': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=896
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_F-negated': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Invalid-negated': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_N-negated': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_No-negated': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_T-negated': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Y-negated': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes': [FAIL],
'built-ins/RegExp/property-escapes/binary-property-with-value-ASCII_-_Yes-negated': [FAIL],
'built-ins/RegExp/property-escapes/character-class-range-end': [FAIL],
'built-ins/RegExp/property-escapes/character-class-range-no-dash-end': [FAIL],
'built-ins/RegExp/property-escapes/character-class-range-no-dash-start': [FAIL],
'built-ins/RegExp/property-escapes/character-class-range-start': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Block-implicit-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-implicit-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-In-prefix-Script-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-Is-prefix-Script-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-circumflex-negation-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-empty': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-empty-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-invalid': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-invalid-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-no-braces': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-no-braces-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-no-braces-value': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-no-braces-value-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-separator': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-separator-and-value-only-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-separator-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-separator-only': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-separator-only-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-unclosed': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-unclosed-negated': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-unopened': [FAIL],
'built-ins/RegExp/property-escapes/grammar-extension-unopened-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-01': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-01-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-02': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-02-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-03': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-03-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-04': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-04-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-05': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-05-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-06': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-06-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-07': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-07-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-08': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-08-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-09': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-09-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-10': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-10-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-11': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-11-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-12': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-12-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-13': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-13-negated': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-14': [FAIL],
'built-ins/RegExp/property-escapes/loose-matching-14-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-equals-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-General_Category-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-equals-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-equals-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-binary-property-without-value-Script_Extensions-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-binary-property': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-binary-property-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-and-value': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-and-value-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-existing-value': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-existing-value-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-value-General_Category-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-value-Script': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-value-Script-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-value-Script_Extensions-negated': [FAIL],
'built-ins/RegExp/property-escapes/non-existent-property-value-general-category': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Composition_Exclusion-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFC-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFD-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKC-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Expands_On_NFKD-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-FC_NFKC_Closure-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Full_Composition_Exclusion-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Grapheme_Link-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Hyphen-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Alphabetic-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Default_Ignorable_Code_Point-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Grapheme_Extend-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Continue-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_ID_Start-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Lowercase-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Math-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Other_Uppercase-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-binary-property-Prepended_Concatenation_Mark-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-property-Block-with-value': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-property-Block-with-value-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-property-FC_NFKC_Closure-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-property-Line_Break': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-property-Line_Break-negated': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value': [FAIL],
'built-ins/RegExp/property-escapes/unsupported-property-Line_Break-with-value-negated': [FAIL],
'language/literals/regexp/early-err-pattern': [FAIL],
'language/literals/regexp/invalid-braced-quantifier-exact': [FAIL],
'language/literals/regexp/invalid-braced-quantifier-lower': [FAIL],
'language/literals/regexp/invalid-braced-quantifier-range': [FAIL],
'language/literals/regexp/invalid-optional-lookbehind': [FAIL],
'language/literals/regexp/invalid-optional-negative-lookbehind': [FAIL],
'language/literals/regexp/invalid-range-lookbehind': [FAIL],
'language/literals/regexp/invalid-range-negative-lookbehind': [FAIL],
'language/literals/regexp/u-dec-esc': [FAIL],
'language/literals/regexp/u-invalid-class-escape': [FAIL],
'language/literals/regexp/u-invalid-extended-pattern-char': [FAIL],
'language/literals/regexp/u-invalid-identity-escape': [FAIL],
'language/literals/regexp/u-invalid-legacy-octal-escape': [FAIL],
'language/literals/regexp/u-invalid-non-empty-class-ranges': [FAIL],
'language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-a': [FAIL],
'language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-ab': [FAIL],
'language/literals/regexp/u-invalid-non-empty-class-ranges-no-dash-b': [FAIL],
'language/literals/regexp/u-invalid-oob-decimal-escape': [FAIL],
'language/literals/regexp/u-invalid-optional-lookahead': [FAIL],
'language/literals/regexp/u-invalid-optional-lookbehind': [FAIL],
'language/literals/regexp/u-invalid-optional-negative-lookahead': [FAIL],
'language/literals/regexp/u-invalid-optional-negative-lookbehind': [FAIL],
'language/literals/regexp/u-invalid-range-lookahead': [FAIL],
'language/literals/regexp/u-invalid-range-lookbehind': [FAIL],
'language/literals/regexp/u-invalid-range-negative-lookahead': [FAIL],
'language/literals/regexp/u-invalid-range-negative-lookbehind': [FAIL],
'language/literals/regexp/u-unicode-esc-bounds': [FAIL],
'language/literals/regexp/u-unicode-esc-non-hex': [FAIL],
'language/literals/regexp/unicode-escape-nls-err': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7828
'language/statements/try/early-catch-function': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7829
'language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration-nested-in-function': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=4628
'language/eval-code/direct/non-definable-function-with-function': [FAIL],
'language/eval-code/direct/non-definable-function-with-variable': [FAIL],
'language/eval-code/indirect/non-definable-function-with-function': [FAIL],
'language/eval-code/indirect/non-definable-function-with-variable': [FAIL],
'language/global-code/script-decl-func-err-non-configurable': [FAIL],
'language/global-code/script-decl-var-collision': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=5116
'built-ins/TypedArray/prototype/fill/fill-values-conversion-operations-consistent-nan': [PASS, FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=5135
'annexB/language/eval-code/direct/func-block-decl-eval-func-block-scoping': [FAIL],
'annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-block-scoping': [FAIL],
'annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-block-scoping': [FAIL],
'annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-block-scoping': [FAIL],
'annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-block-scoping': [FAIL],
'annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-block-scoping': [FAIL],
'annexB/language/eval-code/direct/func-switch-case-eval-func-block-scoping': [FAIL],
'annexB/language/eval-code/direct/func-switch-dflt-eval-func-block-scoping': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=5139
'annexB/built-ins/Date/prototype/setYear/year-number-relative': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=4698
'language/expressions/call/tco-call-args': [SKIP],
'language/expressions/call/tco-cross-realm-class-construct': [SKIP],
'language/expressions/call/tco-cross-realm-class-derived-construct': [SKIP],
'language/expressions/call/tco-cross-realm-fun-call': [SKIP],
'language/expressions/call/tco-cross-realm-fun-construct': [SKIP],
'language/expressions/call/tco-member-args': [SKIP],
'language/expressions/call/tco-non-eval-function': [SKIP],
'language/expressions/call/tco-non-eval-function-dynamic': [SKIP],
'language/expressions/call/tco-non-eval-global': [SKIP],
'language/expressions/call/tco-non-eval-with': [SKIP],
'language/expressions/comma/tco-final': [SKIP],
'language/expressions/conditional/tco-cond': [SKIP],
'language/expressions/conditional/tco-pos': [SKIP],
'language/expressions/logical-and/tco-right': [SKIP],
'language/expressions/logical-or/tco-right': [SKIP],
'language/expressions/tagged-template/tco-call': [SKIP],
'language/expressions/tagged-template/tco-member': [SKIP],
'language/expressions/tco-pos': [SKIP],
'language/statements/block/tco-stmt': [SKIP],
'language/statements/block/tco-stmt-list': [SKIP],
'language/statements/do-while/tco-body': [SKIP],
'language/statements/for/tco-const-body': [SKIP],
'language/statements/for/tco-let-body': [SKIP],
'language/statements/for/tco-lhs-body': [SKIP],
'language/statements/for/tco-var-body': [SKIP],
'language/statements/if/tco-else-body': [SKIP],
'language/statements/if/tco-if-body': [SKIP],
'language/statements/labeled/tco': [SKIP],
'language/statements/return/tco': [SKIP],
'language/statements/switch/tco-case-body': [SKIP],
'language/statements/switch/tco-case-body-dflt': [SKIP],
'language/statements/switch/tco-dftl-body': [SKIP],
'language/statements/try/tco-catch': [SKIP],
'language/statements/try/tco-catch-finally': [SKIP],
'language/statements/try/tco-finally': [SKIP],
'language/statements/while/tco-body': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=5064
'language/expressions/arrow-function/dflt-params-duplicates': [FAIL],
'language/expressions/async-arrow-function/dflt-params-duplicates': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=5327
'built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-minus-zero': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-not-integer': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds': [FAIL],
'built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-out-of-bounds': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=5329
'built-ins/RegExp/prototype/source/value-line-terminator': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=5112
'annexB/language/eval-code/direct/func-block-decl-eval-func-no-skip-try': [FAIL],
'annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-no-skip-try': [FAIL],
'annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-no-skip-try': [FAIL],
'annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-no-skip-try': [FAIL],
'annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-no-skip-try': [FAIL],
'annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-no-skip-try': [FAIL],
'annexB/language/eval-code/direct/func-switch-case-eval-func-no-skip-try': [FAIL],
'annexB/language/eval-code/direct/func-switch-dflt-eval-func-no-skip-try': [FAIL],
# PreParser doesn't produce early errors
# https://bugs.chromium.org/p/v8/issues/detail?id=2728
'language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate': [FAIL],
'language/expressions/object/method-definition/generator-param-redecl-const': [FAIL],
'language/expressions/object/method-definition/generator-param-redecl-let': [FAIL],
'language/expressions/object/method-definition/name-param-redecl': [FAIL],
'language/statements/async-function/early-errors-declaration-formals-body-duplicate': [FAIL],
# SharedArrayBuffer tests that require flags
'built-ins/SharedArrayBuffer/*': ['--harmony-sharedarraybuffer'],
'built-ins/Atomics/*': ['--harmony-sharedarraybuffer'],
'built-ins/ArrayBuffer/prototype/byteLength/this-is-sharedarraybuffer': ['--harmony-sharedarraybuffer'],
'built-ins/ArrayBuffer/prototype/slice/this-is-sharedarraybuffer': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/buffer-does-not-have-arraybuffer-data-throws-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/buffer-reference-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/byteoffset-is-negative-throws-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/custom-proto-if-not-object-fallbacks-to-default-prototype-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/custom-proto-if-object-is-used-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/defined-bytelength-and-byteoffset-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/defined-byteoffset-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/defined-byteoffset-undefined-bytelength-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/excessive-bytelength-throws-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/excessive-byteoffset-throws-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/instance-extensibility-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/negative-bytelength-throws-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/negative-byteoffset-throws-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/newtarget-undefined-throws-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/proto-from-ctor-realm-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/buffer/return-buffer-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/buffer/this-has-no-dataview-internal-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/byteLength/return-bytelength-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/byteLength/this-has-no-dataview-internal-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/byteOffset/return-byteoffset-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/byteOffset/this-has-no-dataview-internal-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/getInt32/index-is-out-of-range-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/getInt32/negative-byteoffset-throws-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/getInt32/return-abrupt-from-tonumber-byteoffset-symbol-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/getInt32/return-value-clean-arraybuffer-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/getInt32/return-values-custom-offset-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/getInt32/return-values-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/getInt32/this-has-no-dataview-internal-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/prototype/getInt32/to-boolean-littleendian-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/return-abrupt-tonumber-bytelength-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/return-abrupt-tonumber-bytelength-symbol-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/return-abrupt-tonumber-byteoffset-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/return-abrupt-tonumber-byteoffset-symbol-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/return-instance-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/toindex-bytelength-sab': ['--harmony-sharedarraybuffer'],
'built-ins/DataView/toindex-byteoffset-sab': ['--harmony-sharedarraybuffer'],
'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-conversions-sab': ['--harmony-sharedarraybuffer'],
'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type-sab': ['--harmony-sharedarraybuffer'],
'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type-sab': ['--harmony-sharedarraybuffer'],
'built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-sab': ['--harmony-sharedarraybuffer'],
# https://bugs.chromium.org/p/v8/issues/detail?id=8100
'built-ins/Atomics/notify/bigint/*': [SKIP],
'built-ins/Atomics/wait/bigint/*': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=6049
'built-ins/Object/internals/DefineOwnProperty/consistent-value-function-caller': [FAIL_SLOPPY],
'built-ins/Object/internals/DefineOwnProperty/consistent-value-function-arguments': [FAIL_SLOPPY],
# https://bugs.chromium.org/p/v8/issues/detail?id=7874
'built-ins/Reflect/ownKeys/return-on-corresponding-order-large-index': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=6776
'built-ins/Proxy/ownKeys/return-duplicate-entries-throws': [FAIL],
'built-ins/Proxy/ownKeys/return-duplicate-symbol-entries-throws': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7184
'annexB/language/expressions/yield/star-iterable-return-emulates-undefined-throws-when-called': [FAIL],
'annexB/language/statements/for-await-of/iterator-close-return-emulates-undefined-throws-when-called': [FAIL],
'annexB/language/statements/for-of/iterator-close-return-emulates-undefined-throws-when-called': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7186
'language/statements/class/fields-indirect-eval-err-contains-arguments': [FAIL],
'language/expressions/class/fields-indirect-eval-err-contains-arguments': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7468
'language/statements/class/privatename-not-valid-earlyerr-script-8': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=5690
'language/expressions/call/eval-spread': [FAIL],
'language/expressions/call/eval-spread-empty-leading': [FAIL],
'language/expressions/call/eval-spread-empty-trailing': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7472
'intl402/NumberFormat/currency-digits': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7474
'intl402/NumberFormat/prototype/format/format-fraction-digits': [FAIL],
'intl402/NumberFormat/prototype/format/format-significant-digits': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7481
'intl402/NumberFormat/ignore-invalid-unicode-ext-values': [FAIL],
'intl402/DateTimeFormat/ignore-invalid-unicode-ext-values': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7482
'intl402/DateTimeFormat/prototype/resolvedOptions/resolved-locale-with-hc-unicode': [FAIL],
# https://bugs.chromium.org/p/v8/issues/detail?id=7483
'annexB/built-ins/Function/createdynfn-html-close-comment-params': [FAIL],
# 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
'intl402/String/prototype/localeCompare/returns-same-results-as-Collator': [SKIP],
'intl402/Collator/prototype/compare/bound-to-collator-instance': [SKIP],
'intl402/Collator/ignore-invalid-unicode-ext-values': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=8260
'intl402/Locale/constructor-non-iana-canon': [FAIL],
@ -1411,7 +584,6 @@
'intl402/Locale/constructor-options-region-valid': [FAIL],
'intl402/Locale/constructor-options-script-invalid': [FAIL],
'intl402/Locale/constructor-options-script-valid': [FAIL],
'intl402/Locale/constructor-unicode-ext-invalid': [FAIL],
'intl402/Locale/getters': [FAIL],
'intl402/Locale/invalid-tag-throws': [FAIL],

View File

@ -52,13 +52,13 @@ FEATURE_FLAGS = {
'Intl.ListFormat': '--harmony-intl-list-format',
'Intl.Locale': '--harmony-locale',
'Intl.RelativeTimeFormat': '--harmony-intl-relative-time-format',
'Intl.Segmenter': '--harmony-intl-segmenter',
'Symbol.prototype.description': '--harmony-symbol-description',
'globalThis': '--harmony-global',
'well-formed-json-stringify': '--harmony-json-stringify',
}
SKIPPED_FEATURES = set(['Intl.Segmenter',
'Object.fromEntries',
SKIPPED_FEATURES = set(['Object.fromEntries',
'export-star-as-namespace-from-module',
'class-fields-private',
'class-static-fields-private',