diff --git a/implementation-contributed/v8/intl/general/getCanonicalLocales.js b/implementation-contributed/v8/intl/general/getCanonicalLocales.js index 9bec67f581..65c7fc6e3a 100644 --- a/implementation-contributed/v8/intl/general/getCanonicalLocales.js +++ b/implementation-contributed/v8/intl/general/getCanonicalLocales.js @@ -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")); diff --git a/implementation-contributed/v8/intl/general/grandfathered_tags_without_preferred_value.js b/implementation-contributed/v8/intl/general/grandfathered_tags_without_preferred_value.js index b4d529652f..808e50d208 100644 --- a/implementation-contributed/v8/intl/general/grandfathered_tags_without_preferred_value.js +++ b/implementation-contributed/v8/intl/general/grandfathered_tags_without_preferred_value.js @@ -23,5 +23,5 @@ ].forEach(([inputLocale, expectedLocale]) => { const canonicalLocales = Intl.getCanonicalLocales(inputLocale); assertEquals(canonicalLocales.length, 1); - assertEquals(canonicalLocales[0], expectedLocale); + assertEquals(expectedLocale, canonicalLocales[0]); }) diff --git a/implementation-contributed/v8/intl/general/language_tags_with_preferred_values.js b/implementation-contributed/v8/intl/general/language_tags_with_preferred_values.js index 073a6c9aff..4f2fbbfb2e 100644 --- a/implementation-contributed/v8/intl/general/language_tags_with_preferred_values.js +++ b/implementation-contributed/v8/intl/general/language_tags_with_preferred_values.js @@ -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]); }) diff --git a/implementation-contributed/v8/intl/segmenter/constructor.js b/implementation-contributed/v8/intl/segmenter/constructor.js new file mode 100644 index 0000000000..db36c19d28 --- /dev/null +++ b/implementation-contributed/v8/intl/segmenter/constructor.js @@ -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); diff --git a/implementation-contributed/v8/intl/segmenter/resolved-options.js b/implementation-contributed/v8/intl/segmenter/resolved-options.js new file mode 100644 index 0000000000..7f9b7abb23 --- /dev/null +++ b/implementation-contributed/v8/intl/segmenter/resolved-options.js @@ -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); diff --git a/implementation-contributed/v8/intl/segmenter/supported-locale.js b/implementation-contributed/v8/intl/segmenter/supported-locale.js new file mode 100644 index 0000000000..24825a2759 --- /dev/null +++ b/implementation-contributed/v8/intl/segmenter/supported-locale.js @@ -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)); diff --git a/implementation-contributed/v8/mjsunit/async-stack-traces.js b/implementation-contributed/v8/mjsunit/async-stack-traces.js index 2efcf9ff14..05cf8a095f 100644 --- a/implementation-contributed/v8/mjsunit/async-stack-traces.js +++ b/implementation-contributed/v8/mjsunit/async-stack-traces.js @@ -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); + })()); +})(); diff --git a/implementation-contributed/v8/mjsunit/compiler/stress-deopt-count-2.js b/implementation-contributed/v8/mjsunit/compiler/stress-deopt-count-2.js index 641a9e8180..918b4e00ad 100644 --- a/implementation-contributed/v8/mjsunit/compiler/stress-deopt-count-2.js +++ b/implementation-contributed/v8/mjsunit/compiler/stress-deopt-count-2.js @@ -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 diff --git a/implementation-contributed/v8/mjsunit/compiler/string-from-code-point.js b/implementation-contributed/v8/mjsunit/compiler/string-from-code-point.js new file mode 100644 index 0000000000..165ea0c234 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/compiler/string-from-code-point.js @@ -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); +})(); diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-construct-by-array-like.js b/implementation-contributed/v8/mjsunit/es6/typedarray-construct-by-array-like.js index 3b57f8f644..0a55fccf5c 100644 --- a/implementation-contributed/v8/mjsunit/es6/typedarray-construct-by-array-like.js +++ b/implementation-contributed/v8/mjsunit/es6/typedarray-construct-by-array-like.js @@ -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); }); diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-construct-offset-not-smi.js b/implementation-contributed/v8/mjsunit/es6/typedarray-construct-offset-not-smi.js index 0a267bc64b..e6cbcc4201 100644 --- a/implementation-contributed/v8/mjsunit/es6/typedarray-construct-offset-not-smi.js +++ b/implementation-contributed/v8/mjsunit/es6/typedarray-construct-offset-not-smi.js @@ -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); diff --git a/implementation-contributed/v8/mjsunit/es6/typedarray-set-bytelength-not-smi.js b/implementation-contributed/v8/mjsunit/es6/typedarray-set-bytelength-not-smi.js index 1f842878dc..e4a8c2b626 100644 --- a/implementation-contributed/v8/mjsunit/es6/typedarray-set-bytelength-not-smi.js +++ b/implementation-contributed/v8/mjsunit/es6/typedarray-set-bytelength-not-smi.js @@ -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); diff --git a/implementation-contributed/v8/mjsunit/harmony/async-await-optimization.js b/implementation-contributed/v8/mjsunit/harmony/async-await-optimization.js new file mode 100644 index 0000000000..b24e541916 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/harmony/async-await-optimization.js @@ -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); + })()); +})(); diff --git a/implementation-contributed/v8/mjsunit/regress/regress-319722-ArrayBuffer.js b/implementation-contributed/v8/mjsunit/regress/regress-319722-ArrayBuffer.js index 9a24fc5c7c..4a48a61ab3 100644 --- a/implementation-contributed/v8/mjsunit/regress/regress-319722-ArrayBuffer.js +++ b/implementation-contributed/v8/mjsunit/regress/regress-319722-ArrayBuffer.js @@ -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. diff --git a/implementation-contributed/v8/mjsunit/regress/regress-319722-TypedArrays.js b/implementation-contributed/v8/mjsunit/regress/regress-319722-TypedArrays.js index e497aecbe0..0445e2d2cf 100644 --- a/implementation-contributed/v8/mjsunit/regress/regress-319722-TypedArrays.js +++ b/implementation-contributed/v8/mjsunit/regress/regress-319722-TypedArrays.js @@ -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); diff --git a/implementation-contributed/v8/mjsunit/regress/regress-8265.js b/implementation-contributed/v8/mjsunit/regress/regress-8265.js new file mode 100644 index 0000000000..ffe6191c9f --- /dev/null +++ b/implementation-contributed/v8/mjsunit/regress/regress-8265.js @@ -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); diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-892472-1.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-892472-1.js new file mode 100644 index 0000000000..d6332fd399 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-892472-1.js @@ -0,0 +1,9 @@ +// Copyright 2018 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --async-stack-traces + +const a = /x/; +a.exec = RegExp.prototype.test; +assertThrows(() => RegExp.prototype.test.call(a)); diff --git a/implementation-contributed/v8/mjsunit/regress/regress-crbug-892472-2.js b/implementation-contributed/v8/mjsunit/regress/regress-crbug-892472-2.js new file mode 100644 index 0000000000..0f9a2c1816 --- /dev/null +++ b/implementation-contributed/v8/mjsunit/regress/regress-crbug-892472-2.js @@ -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}); diff --git a/implementation-contributed/v8/mjsunit/smi-mul.js b/implementation-contributed/v8/mjsunit/smi-mul.js index 12d206abec..de10d3c3fb 100644 --- a/implementation-contributed/v8/mjsunit/smi-mul.js +++ b/implementation-contributed/v8/mjsunit/smi-mul.js @@ -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); -} +})(); diff --git a/implementation-contributed/v8/test262/test262.status b/implementation-contributed/v8/test262/test262.status index b46808ec4d..860e57a30b 100644 --- a/implementation-contributed/v8/test262/test262.status +++ b/implementation-contributed/v8/test262/test262.status @@ -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], diff --git a/implementation-contributed/v8/test262/testcfg.py b/implementation-contributed/v8/test262/testcfg.py index 1aafbb65a0..105f6713f2 100644 --- a/implementation-contributed/v8/test262/testcfg.py +++ b/implementation-contributed/v8/test262/testcfg.py @@ -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',