[regexp] Add v-Flag for Unicode Sets
- Add v-flag and corresponding prototype getters. - Update RegExp builtins fuzzer to handle two-byte flags. - Update test262 status. Bug: v8:11935 Change-Id: If649ebfacf1f933f3ae5c770c2240470a8b460ee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3868952 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Linke <jgruber@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#83003}
This commit is contained in:
parent
71a2887f53
commit
5d4567279e
@ -37,9 +37,10 @@ class V8_EXPORT RegExp : public Object {
|
||||
kDotAll = 1 << 5,
|
||||
kLinear = 1 << 6,
|
||||
kHasIndices = 1 << 7,
|
||||
kUnicodeSets = 1 << 8,
|
||||
};
|
||||
|
||||
static constexpr int kFlagCount = 8;
|
||||
static constexpr int kFlagCount = 9;
|
||||
|
||||
/**
|
||||
* Creates a regular expression from the given pattern string and
|
||||
|
@ -7308,6 +7308,7 @@ REGEXP_FLAG_ASSERT_EQ(kSticky);
|
||||
REGEXP_FLAG_ASSERT_EQ(kUnicode);
|
||||
REGEXP_FLAG_ASSERT_EQ(kHasIndices);
|
||||
REGEXP_FLAG_ASSERT_EQ(kLinear);
|
||||
REGEXP_FLAG_ASSERT_EQ(kUnicodeSets);
|
||||
#undef REGEXP_FLAG_ASSERT_EQ
|
||||
|
||||
v8::RegExp::Flags v8::RegExp::GetFlags() const {
|
||||
|
@ -1100,6 +1100,10 @@ TNode<String> RegExpBuiltinsAssembler::FlagsGetter(TNode<Context> context,
|
||||
"linear",
|
||||
ExternalReference::address_of_enable_experimental_regexp_engine(),
|
||||
JSRegExp::kLinear);
|
||||
CASE_FOR_FLAG(
|
||||
"unicodeSets",
|
||||
ExternalReference::address_of_FLAG_harmony_regexp_unicode_sets(),
|
||||
JSRegExp::kUnicodeSets);
|
||||
#undef CASE_FOR_FLAG
|
||||
}
|
||||
|
||||
|
@ -200,7 +200,8 @@ extern enum Flag constexpr 'JSRegExp::Flag' {
|
||||
kUnicode,
|
||||
kDotAll,
|
||||
kHasIndices,
|
||||
kLinear
|
||||
kLinear,
|
||||
kUnicodeSets
|
||||
}
|
||||
|
||||
const kNoCounterFlagGetter: constexpr int31 = -1;
|
||||
@ -296,6 +297,15 @@ transitioning javascript builtin RegExpPrototypeUnicodeGetter(
|
||||
'RegExp.prototype.unicode');
|
||||
}
|
||||
|
||||
// ES2023 22.2.5.14
|
||||
// ES #sec-get-regexp.prototype.unicodeSets
|
||||
transitioning javascript builtin RegExpPrototypeUnicodeSetsGetter(
|
||||
js-implicit context: NativeContext, receiver: JSAny)(): JSAny {
|
||||
return FlagGetter(
|
||||
receiver, Flag::kUnicodeSets, kNoCounterFlagGetter,
|
||||
'RegExp.prototype.unicodeSets');
|
||||
}
|
||||
|
||||
extern transitioning macro
|
||||
RegExpBuiltinsAssembler::FlagsGetter(implicit context: Context)(
|
||||
Object, constexpr bool): String;
|
||||
|
@ -575,6 +575,11 @@ ExternalReference::address_of_mock_arraybuffer_allocator_flag() {
|
||||
return ExternalReference(&v8_flags.mock_arraybuffer_allocator);
|
||||
}
|
||||
|
||||
ExternalReference
|
||||
ExternalReference::address_of_FLAG_harmony_regexp_unicode_sets() {
|
||||
return ExternalReference(&v8_flags.harmony_regexp_unicode_sets);
|
||||
}
|
||||
|
||||
// TODO(jgruber): Update the other extrefs pointing at v8_flags. addresses to be
|
||||
// called address_of_FLAG_foo (easier grep-ability).
|
||||
ExternalReference ExternalReference::address_of_FLAG_trace_osr() {
|
||||
|
@ -96,6 +96,8 @@ class StatsCounter;
|
||||
|
||||
#define EXTERNAL_REFERENCE_LIST(V) \
|
||||
V(abort_with_reason, "abort_with_reason") \
|
||||
V(address_of_FLAG_harmony_regexp_unicode_sets, \
|
||||
"v8_flags.harmony_regexp_unicdoe_sets") \
|
||||
V(address_of_FLAG_trace_osr, "v8_flags.trace_osr") \
|
||||
V(address_of_builtin_subclassing_flag, "v8_flags.builtin_subclassing") \
|
||||
V(address_of_double_abs_constant, "double_absolute_constant") \
|
||||
|
@ -229,7 +229,8 @@ DEFINE_BOOL(harmony_shipping, true, "enable all shipped harmony features")
|
||||
V(harmony_temporal, "Temporal") \
|
||||
V(harmony_shadow_realm, "harmony ShadowRealm") \
|
||||
V(harmony_struct, "harmony structs, shared structs, and shared arrays") \
|
||||
V(harmony_change_array_by_copy, "harmony change-Array-by-copy")
|
||||
V(harmony_change_array_by_copy, "harmony change-Array-by-copy") \
|
||||
V(harmony_regexp_unicode_sets, "harmony RegExp Unicode Sets")
|
||||
|
||||
#ifdef V8_INTL_SUPPORT
|
||||
#define HARMONY_INPROGRESS(V) \
|
||||
|
@ -4551,6 +4551,20 @@ void Genesis::InitializeGlobal_harmony_change_array_by_copy() {
|
||||
}
|
||||
}
|
||||
|
||||
void Genesis::InitializeGlobal_harmony_regexp_unicode_sets() {
|
||||
if (!FLAG_harmony_regexp_unicode_sets) return;
|
||||
|
||||
Handle<JSFunction> regexp_fun(native_context()->regexp_function(), isolate());
|
||||
Handle<JSObject> regexp_prototype(
|
||||
JSObject::cast(regexp_fun->instance_prototype()), isolate());
|
||||
SimpleInstallGetter(isolate(), regexp_prototype,
|
||||
factory()->unicodeSets_string(),
|
||||
Builtin::kRegExpPrototypeUnicodeSetsGetter, true);
|
||||
|
||||
// Store regexp prototype map again after change.
|
||||
native_context()->set_regexp_prototype_map(regexp_prototype->map());
|
||||
}
|
||||
|
||||
void Genesis::InitializeGlobal_harmony_shadow_realm() {
|
||||
if (!FLAG_harmony_shadow_realm) return;
|
||||
Factory* factory = isolate()->factory();
|
||||
|
@ -420,6 +420,7 @@
|
||||
V(_, undefined_string, "undefined") \
|
||||
V(_, undefined_to_string, "[object Undefined]") \
|
||||
V(_, unicode_string, "unicode") \
|
||||
V(_, unicodeSets_string, "unicodeSets") \
|
||||
V(_, unit_string, "unit") \
|
||||
V(_, URIError_string, "URIError") \
|
||||
V(_, UTC_string, "UTC") \
|
||||
|
@ -233,7 +233,8 @@ MaybeHandle<JSRegExp> JSRegExp::Initialize(Handle<JSRegExp> regexp,
|
||||
Isolate* isolate = regexp->GetIsolate();
|
||||
base::Optional<Flags> flags =
|
||||
JSRegExp::FlagsFromString(isolate, flags_string);
|
||||
if (!flags.has_value()) {
|
||||
if (!flags.has_value() ||
|
||||
!RegExp::VerifyFlags(JSRegExp::AsRegExpFlags(flags.value()))) {
|
||||
THROW_NEW_ERROR(
|
||||
isolate,
|
||||
NewSyntaxError(MessageTemplate::kInvalidRegExpFlags, flags_string),
|
||||
|
@ -99,6 +99,10 @@ class JSRegExp : public TorqueGeneratedJSRegExp<JSRegExp, JSObject> {
|
||||
!v8_flags.enable_experimental_regexp_engine) {
|
||||
return {};
|
||||
}
|
||||
if (f.value() == RegExpFlag::kUnicodeSets &&
|
||||
!FLAG_harmony_regexp_unicode_sets) {
|
||||
return {};
|
||||
}
|
||||
return f;
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@ bitfield struct JSRegExpFlags extends uint31 {
|
||||
dot_all: bool: 1 bit;
|
||||
linear: bool: 1 bit;
|
||||
has_indices: bool: 1 bit;
|
||||
unicode_sets: bool: 1 bit;
|
||||
}
|
||||
|
||||
extern class JSRegExp extends JSObject {
|
||||
|
@ -1156,6 +1156,7 @@ class ParserBase {
|
||||
const AstRawString* GetNextSymbolForRegExpLiteral() const {
|
||||
return scanner()->NextSymbol(ast_value_factory());
|
||||
}
|
||||
bool ValidateRegExpFlags(RegExpFlags flags);
|
||||
bool ValidateRegExpLiteral(const AstRawString* pattern, RegExpFlags flags,
|
||||
RegExpError* regexp_error);
|
||||
ExpressionT ParseRegExpLiteral();
|
||||
@ -1796,6 +1797,11 @@ ParserBase<Impl>::ParsePropertyOrPrivatePropertyName() {
|
||||
return key;
|
||||
}
|
||||
|
||||
template <typename Impl>
|
||||
bool ParserBase<Impl>::ValidateRegExpFlags(RegExpFlags flags) {
|
||||
return RegExp::VerifyFlags(flags);
|
||||
}
|
||||
|
||||
template <typename Impl>
|
||||
bool ParserBase<Impl>::ValidateRegExpLiteral(const AstRawString* pattern,
|
||||
RegExpFlags flags,
|
||||
@ -1827,7 +1833,7 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseRegExpLiteral() {
|
||||
|
||||
const AstRawString* js_pattern = GetNextSymbolForRegExpLiteral();
|
||||
base::Optional<RegExpFlags> flags = scanner()->ScanRegExpFlags();
|
||||
if (!flags.has_value()) {
|
||||
if (!flags.has_value() || !ValidateRegExpFlags(flags.value())) {
|
||||
Next();
|
||||
ReportMessage(MessageTemplate::kMalformedRegExpFlags);
|
||||
return impl()->FailureExpression();
|
||||
|
@ -17,14 +17,15 @@ namespace internal {
|
||||
// Order is important! Sorted in alphabetic order by the flag char. Note this
|
||||
// means that flag bits are shuffled. Take care to keep them contiguous when
|
||||
// adding/removing flags.
|
||||
#define REGEXP_FLAG_LIST(V) \
|
||||
V(has_indices, HasIndices, hasIndices, 'd', 7) \
|
||||
V(global, Global, global, 'g', 0) \
|
||||
V(ignore_case, IgnoreCase, ignoreCase, 'i', 1) \
|
||||
V(linear, Linear, linear, 'l', 6) \
|
||||
V(multiline, Multiline, multiline, 'm', 2) \
|
||||
V(dot_all, DotAll, dotAll, 's', 5) \
|
||||
V(unicode, Unicode, unicode, 'u', 4) \
|
||||
#define REGEXP_FLAG_LIST(V) \
|
||||
V(has_indices, HasIndices, hasIndices, 'd', 7) \
|
||||
V(global, Global, global, 'g', 0) \
|
||||
V(ignore_case, IgnoreCase, ignoreCase, 'i', 1) \
|
||||
V(linear, Linear, linear, 'l', 6) \
|
||||
V(multiline, Multiline, multiline, 'm', 2) \
|
||||
V(dot_all, DotAll, dotAll, 's', 5) \
|
||||
V(unicode, Unicode, unicode, 'u', 4) \
|
||||
V(unicode_sets, UnicodeSets, unicodeSets, 'v', 8) \
|
||||
V(sticky, Sticky, sticky, 'y', 3)
|
||||
|
||||
#define V(Lower, Camel, LowerCamel, Char, Bit) k##Camel = 1 << Bit,
|
||||
|
@ -107,6 +107,12 @@ bool RegExp::CanGenerateBytecode() {
|
||||
return v8_flags.regexp_interpret_all || v8_flags.regexp_tier_up;
|
||||
}
|
||||
|
||||
// static
|
||||
bool RegExp::VerifyFlags(RegExpFlags flags) {
|
||||
if (IsUnicode(flags) && IsUnicodeSets(flags)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
// static
|
||||
template <class CharT>
|
||||
bool RegExp::VerifySyntax(Zone* zone, uintptr_t stack_limit, const CharT* input,
|
||||
|
@ -70,6 +70,9 @@ class RegExp final : public AllStatic {
|
||||
// Whether the irregexp engine generates interpreter bytecode.
|
||||
static bool CanGenerateBytecode();
|
||||
|
||||
// Verify that the given flags combination is valid.
|
||||
V8_EXPORT_PRIVATE static bool VerifyFlags(RegExpFlags flags);
|
||||
|
||||
// Verify the given pattern, i.e. check that parsing succeeds. If
|
||||
// verification fails, `regexp_error_out` is set.
|
||||
template <class CharT>
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "include/v8-primitive.h"
|
||||
#include "include/v8-script.h"
|
||||
#include "src/objects/objects-inl.h"
|
||||
#include "src/regexp/regexp.h"
|
||||
#include "test/fuzzer/fuzzer-support.h"
|
||||
|
||||
// This is a hexdump of test/fuzzer/regexp_builtins/mjsunit.js generated using
|
||||
@ -242,18 +243,31 @@ std::string PickLimitForSplit(FuzzerArgs* args) {
|
||||
}
|
||||
|
||||
std::string GenerateRandomFlags(FuzzerArgs* args) {
|
||||
constexpr int kFlagCount = JSRegExp::kFlagCount;
|
||||
static_assert((1 << kFlagCount) - 1 <= 0xFFFF);
|
||||
|
||||
// TODO(mbid,v8:10765): Find a way to generate the kLinear flag sometimes,
|
||||
// but only for patterns that are supported by the experimental engine.
|
||||
constexpr size_t kFlagCount = JSRegExp::kFlagCount;
|
||||
CHECK_EQ(JSRegExp::kHasIndices, 1 << (kFlagCount - 1));
|
||||
CHECK_EQ(JSRegExp::kLinear, 1 << (kFlagCount - 2));
|
||||
CHECK_EQ(JSRegExp::kDotAll, 1 << (kFlagCount - 3));
|
||||
static_assert((1 << kFlagCount) - 1 <= 0xFF);
|
||||
constexpr int kFuzzableFlagCount = kFlagCount - 1;
|
||||
constexpr uint32_t kFuzzableFlagsMask =
|
||||
((1 << kFlagCount) - 1) & (~JSRegExp::kLinear);
|
||||
|
||||
const size_t flags = RandomByte(args) & ((1 << kFlagCount) - 1);
|
||||
const uint8_t byte1 = RandomByte(args);
|
||||
const uint8_t byte2 = RandomByte(args);
|
||||
const uint16_t random_two_byte = (byte1 << 8) | byte2;
|
||||
|
||||
uint32_t flags = random_two_byte & kFuzzableFlagsMask;
|
||||
|
||||
int cursor = 0;
|
||||
char buffer[kFlagCount] = {'\0'};
|
||||
char buffer[kFuzzableFlagCount] = {'\0'};
|
||||
|
||||
// 'u' and 'v' are incompatible. If both are set randomly, clear
|
||||
// one based on the random bit of the (unused) JSRegExp::kLinar flag.
|
||||
if ((flags & JSRegExp::kUnicode) && (flags & JSRegExp::kUnicodeSets)) {
|
||||
const bool rand_bit = random_two_byte & JSRegExp::kLinear;
|
||||
flags &= rand_bit ? ~JSRegExp::kUnicode : ~JSRegExp::kUnicodeSets;
|
||||
}
|
||||
DCHECK(RegExp::VerifyFlags(RegExpFlags{static_cast<int>(flags)}));
|
||||
|
||||
if (flags & JSRegExp::kGlobal) buffer[cursor++] = 'g';
|
||||
if (flags & JSRegExp::kIgnoreCase) buffer[cursor++] = 'i';
|
||||
@ -261,7 +275,9 @@ std::string GenerateRandomFlags(FuzzerArgs* args) {
|
||||
if (flags & JSRegExp::kSticky) buffer[cursor++] = 'y';
|
||||
if (flags & JSRegExp::kUnicode) buffer[cursor++] = 'u';
|
||||
if (flags & JSRegExp::kDotAll) buffer[cursor++] = 's';
|
||||
CHECK_EQ(flags & JSRegExp::kLinear, 0);
|
||||
if (flags & JSRegExp::kHasIndices) buffer[cursor++] = 'd';
|
||||
if (flags & JSRegExp::kUnicodeSets) buffer[cursor++] = 'v';
|
||||
|
||||
return std::string(buffer, cursor);
|
||||
}
|
||||
|
@ -284,132 +284,147 @@
|
||||
'built-ins/TypedArray/prototype/map/callbackfn-resize': [FAIL],
|
||||
|
||||
# https://bugs.chromium.org/p/v8/issues/detail?id=11935
|
||||
# regexp-v-flag not yet in Stage 3.
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji': [FAIL],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence': [FAIL],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Test': [FAIL],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji': [FAIL],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence': [FAIL],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence': [FAIL],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence': [FAIL],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-string-literal': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-character': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-property-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-property-of-strings-escape': [FAIL],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-string-literal': [FAIL],
|
||||
'built-ins/RegExp/prototype/unicodeSets/cross-realm': [FAIL],
|
||||
'built-ins/RegExp/prototype/unicodeSets/length': [FAIL],
|
||||
'built-ins/RegExp/prototype/unicodeSets/name': [FAIL],
|
||||
'built-ins/RegExp/prototype/unicodeSets/prop-desc': [FAIL],
|
||||
'built-ins/RegExp/prototype/unicodeSets/this-val-invalid-obj': [FAIL],
|
||||
'built-ins/RegExp/prototype/unicodeSets/this-val-non-obj': [FAIL],
|
||||
'built-ins/RegExp/prototype/unicodeSets/this-val-regexp': [FAIL],
|
||||
'built-ins/RegExp/prototype/unicodeSets/this-val-regexp-prototype': [FAIL],
|
||||
'built-ins/RegExp/prototype/flags/this-val-regexp': [FAIL],
|
||||
# regexp-v-flag not yet fully implemented.
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-CharacterClass': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-P': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Basic_Emoji-negative-u': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-CharacterClass': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-P': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Keycap_Sequence-negative-u': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Test': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Test-negative-CharacterClass': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Test-negative-P': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/Emoji_Test-negative-u': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-CharacterClass': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-P': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji-negative-u': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-CharacterClass': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-P': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Flag_Sequence-negative-u': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-CharacterClass': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-P': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Modifier_Sequence-negative-u': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-CharacterClass': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-P': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_Tag_Sequence-negative-u': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-CharacterClass': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-P': [SKIP],
|
||||
'built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence-negative-u': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-difference-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-difference-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-intersection-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-escape-union-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-intersection-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-class-union-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-difference-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-intersection-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-difference-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-intersection-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-property-escape-union-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/character-union-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-difference-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-intersection-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/property-of-strings-escape-union-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-difference-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-intersection-string-literal': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-class': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-character': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-character-property-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-property-of-strings-escape': [SKIP],
|
||||
'built-ins/RegExp/unicodeSets/generated/string-literal-union-string-literal': [SKIP],
|
||||
|
||||
# https://bugs.chromium.org/p/v8/issues/detail?id=13173
|
||||
'built-ins/RegExp/named-groups/duplicate-names': [FAIL],
|
||||
|
@ -41,17 +41,18 @@ from testrunner.outproc import test262
|
||||
|
||||
# TODO(littledan): move the flag mapping into the status file
|
||||
FEATURE_FLAGS = {
|
||||
'Intl.NumberFormat-v3': '--harmony_intl_number_format_v3',
|
||||
'Symbol.prototype.description': '--harmony-symbol-description',
|
||||
'FinalizationRegistry': '--harmony-weak-refs-with-cleanup-some',
|
||||
'WeakRef': '--harmony-weak-refs-with-cleanup-some',
|
||||
'host-gc-required': '--expose-gc-as=v8GC',
|
||||
'IsHTMLDDA': '--allow-natives-syntax',
|
||||
'import-assertions': '--harmony-import-assertions',
|
||||
'resizable-arraybuffer': '--harmony-rab-gsab',
|
||||
'Temporal': '--harmony-temporal',
|
||||
'array-find-from-last': '--harmony_array_find_last',
|
||||
'ShadowRealm': '--harmony-shadow-realm',
|
||||
'Intl.NumberFormat-v3': '--harmony_intl_number_format_v3',
|
||||
'Symbol.prototype.description': '--harmony-symbol-description',
|
||||
'FinalizationRegistry': '--harmony-weak-refs-with-cleanup-some',
|
||||
'WeakRef': '--harmony-weak-refs-with-cleanup-some',
|
||||
'host-gc-required': '--expose-gc-as=v8GC',
|
||||
'IsHTMLDDA': '--allow-natives-syntax',
|
||||
'import-assertions': '--harmony-import-assertions',
|
||||
'resizable-arraybuffer': '--harmony-rab-gsab',
|
||||
'Temporal': '--harmony-temporal',
|
||||
'array-find-from-last': '--harmony_array_find_last',
|
||||
'ShadowRealm': '--harmony-shadow-realm',
|
||||
'regexp-v-flag': '--harmony-regexp-unicode-sets',
|
||||
}
|
||||
|
||||
SKIPPED_FEATURES = set([])
|
||||
|
@ -385,76 +385,76 @@ KNOWN_MAPS = {
|
||||
("read_only_space", 0x033f1): (131, "BasicBlockCountersMarkerMap"),
|
||||
("read_only_space", 0x03435): (146, "ArrayBoilerplateDescriptionMap"),
|
||||
("read_only_space", 0x03535): (159, "InterceptorInfoMap"),
|
||||
("read_only_space", 0x07359): (132, "PromiseFulfillReactionJobTaskMap"),
|
||||
("read_only_space", 0x07381): (133, "PromiseRejectReactionJobTaskMap"),
|
||||
("read_only_space", 0x073a9): (134, "CallableTaskMap"),
|
||||
("read_only_space", 0x073d1): (135, "CallbackTaskMap"),
|
||||
("read_only_space", 0x073f9): (136, "PromiseResolveThenableJobTaskMap"),
|
||||
("read_only_space", 0x07421): (139, "FunctionTemplateInfoMap"),
|
||||
("read_only_space", 0x07449): (140, "ObjectTemplateInfoMap"),
|
||||
("read_only_space", 0x07471): (141, "AccessCheckInfoMap"),
|
||||
("read_only_space", 0x07499): (142, "AccessorPairMap"),
|
||||
("read_only_space", 0x074c1): (143, "AliasedArgumentsEntryMap"),
|
||||
("read_only_space", 0x074e9): (144, "AllocationMementoMap"),
|
||||
("read_only_space", 0x07511): (147, "AsmWasmDataMap"),
|
||||
("read_only_space", 0x07539): (148, "AsyncGeneratorRequestMap"),
|
||||
("read_only_space", 0x07561): (149, "BreakPointMap"),
|
||||
("read_only_space", 0x07589): (150, "BreakPointInfoMap"),
|
||||
("read_only_space", 0x075b1): (151, "CachedTemplateObjectMap"),
|
||||
("read_only_space", 0x075d9): (152, "CallSiteInfoMap"),
|
||||
("read_only_space", 0x07601): (153, "ClassPositionsMap"),
|
||||
("read_only_space", 0x07629): (154, "DebugInfoMap"),
|
||||
("read_only_space", 0x07651): (156, "ErrorStackDataMap"),
|
||||
("read_only_space", 0x07679): (158, "FunctionTemplateRareDataMap"),
|
||||
("read_only_space", 0x076a1): (160, "InterpreterDataMap"),
|
||||
("read_only_space", 0x076c9): (161, "ModuleRequestMap"),
|
||||
("read_only_space", 0x076f1): (162, "PromiseCapabilityMap"),
|
||||
("read_only_space", 0x07719): (163, "PromiseOnStackMap"),
|
||||
("read_only_space", 0x07741): (164, "PromiseReactionMap"),
|
||||
("read_only_space", 0x07769): (165, "PropertyDescriptorObjectMap"),
|
||||
("read_only_space", 0x07791): (166, "PrototypeInfoMap"),
|
||||
("read_only_space", 0x077b9): (167, "RegExpBoilerplateDescriptionMap"),
|
||||
("read_only_space", 0x077e1): (168, "ScriptMap"),
|
||||
("read_only_space", 0x07809): (169, "ScriptOrModuleMap"),
|
||||
("read_only_space", 0x07831): (170, "SourceTextModuleInfoEntryMap"),
|
||||
("read_only_space", 0x07859): (171, "StackFrameInfoMap"),
|
||||
("read_only_space", 0x07881): (172, "TemplateObjectDescriptionMap"),
|
||||
("read_only_space", 0x078a9): (173, "Tuple2Map"),
|
||||
("read_only_space", 0x078d1): (174, "WasmExceptionTagMap"),
|
||||
("read_only_space", 0x078f9): (175, "WasmIndirectFunctionTableMap"),
|
||||
("read_only_space", 0x07921): (195, "SloppyArgumentsElementsMap"),
|
||||
("read_only_space", 0x07949): (228, "DescriptorArrayMap"),
|
||||
("read_only_space", 0x07971): (217, "UncompiledDataWithoutPreparseDataMap"),
|
||||
("read_only_space", 0x07999): (215, "UncompiledDataWithPreparseDataMap"),
|
||||
("read_only_space", 0x079c1): (218, "UncompiledDataWithoutPreparseDataWithJobMap"),
|
||||
("read_only_space", 0x079e9): (216, "UncompiledDataWithPreparseDataAndJobMap"),
|
||||
("read_only_space", 0x07a11): (249, "OnHeapBasicBlockProfilerDataMap"),
|
||||
("read_only_space", 0x07a39): (196, "TurbofanBitsetTypeMap"),
|
||||
("read_only_space", 0x07a61): (200, "TurbofanUnionTypeMap"),
|
||||
("read_only_space", 0x07a89): (199, "TurbofanRangeTypeMap"),
|
||||
("read_only_space", 0x07ab1): (197, "TurbofanHeapConstantTypeMap"),
|
||||
("read_only_space", 0x07ad9): (198, "TurbofanOtherNumberConstantTypeMap"),
|
||||
("read_only_space", 0x07b01): (245, "InternalClassMap"),
|
||||
("read_only_space", 0x07b29): (256, "SmiPairMap"),
|
||||
("read_only_space", 0x07b51): (255, "SmiBoxMap"),
|
||||
("read_only_space", 0x07b79): (201, "ExportedSubClassBaseMap"),
|
||||
("read_only_space", 0x07ba1): (202, "ExportedSubClassMap"),
|
||||
("read_only_space", 0x07bc9): (226, "AbstractInternalClassSubclass1Map"),
|
||||
("read_only_space", 0x07bf1): (227, "AbstractInternalClassSubclass2Map"),
|
||||
("read_only_space", 0x07c19): (194, "InternalClassWithSmiElementsMap"),
|
||||
("read_only_space", 0x07c41): (246, "InternalClassWithStructElementsMap"),
|
||||
("read_only_space", 0x07c69): (203, "ExportedSubClass2Map"),
|
||||
("read_only_space", 0x07c91): (257, "SortStateMap"),
|
||||
("read_only_space", 0x07cb9): (263, "WasmStringViewIterMap"),
|
||||
("read_only_space", 0x07ce1): (145, "AllocationSiteWithWeakNextMap"),
|
||||
("read_only_space", 0x07d09): (145, "AllocationSiteWithoutWeakNextMap"),
|
||||
("read_only_space", 0x07dd5): (137, "LoadHandler1Map"),
|
||||
("read_only_space", 0x07dfd): (137, "LoadHandler2Map"),
|
||||
("read_only_space", 0x07e25): (137, "LoadHandler3Map"),
|
||||
("read_only_space", 0x07e4d): (138, "StoreHandler0Map"),
|
||||
("read_only_space", 0x07e75): (138, "StoreHandler1Map"),
|
||||
("read_only_space", 0x07e9d): (138, "StoreHandler2Map"),
|
||||
("read_only_space", 0x07ec5): (138, "StoreHandler3Map"),
|
||||
("read_only_space", 0x07371): (132, "PromiseFulfillReactionJobTaskMap"),
|
||||
("read_only_space", 0x07399): (133, "PromiseRejectReactionJobTaskMap"),
|
||||
("read_only_space", 0x073c1): (134, "CallableTaskMap"),
|
||||
("read_only_space", 0x073e9): (135, "CallbackTaskMap"),
|
||||
("read_only_space", 0x07411): (136, "PromiseResolveThenableJobTaskMap"),
|
||||
("read_only_space", 0x07439): (139, "FunctionTemplateInfoMap"),
|
||||
("read_only_space", 0x07461): (140, "ObjectTemplateInfoMap"),
|
||||
("read_only_space", 0x07489): (141, "AccessCheckInfoMap"),
|
||||
("read_only_space", 0x074b1): (142, "AccessorPairMap"),
|
||||
("read_only_space", 0x074d9): (143, "AliasedArgumentsEntryMap"),
|
||||
("read_only_space", 0x07501): (144, "AllocationMementoMap"),
|
||||
("read_only_space", 0x07529): (147, "AsmWasmDataMap"),
|
||||
("read_only_space", 0x07551): (148, "AsyncGeneratorRequestMap"),
|
||||
("read_only_space", 0x07579): (149, "BreakPointMap"),
|
||||
("read_only_space", 0x075a1): (150, "BreakPointInfoMap"),
|
||||
("read_only_space", 0x075c9): (151, "CachedTemplateObjectMap"),
|
||||
("read_only_space", 0x075f1): (152, "CallSiteInfoMap"),
|
||||
("read_only_space", 0x07619): (153, "ClassPositionsMap"),
|
||||
("read_only_space", 0x07641): (154, "DebugInfoMap"),
|
||||
("read_only_space", 0x07669): (156, "ErrorStackDataMap"),
|
||||
("read_only_space", 0x07691): (158, "FunctionTemplateRareDataMap"),
|
||||
("read_only_space", 0x076b9): (160, "InterpreterDataMap"),
|
||||
("read_only_space", 0x076e1): (161, "ModuleRequestMap"),
|
||||
("read_only_space", 0x07709): (162, "PromiseCapabilityMap"),
|
||||
("read_only_space", 0x07731): (163, "PromiseOnStackMap"),
|
||||
("read_only_space", 0x07759): (164, "PromiseReactionMap"),
|
||||
("read_only_space", 0x07781): (165, "PropertyDescriptorObjectMap"),
|
||||
("read_only_space", 0x077a9): (166, "PrototypeInfoMap"),
|
||||
("read_only_space", 0x077d1): (167, "RegExpBoilerplateDescriptionMap"),
|
||||
("read_only_space", 0x077f9): (168, "ScriptMap"),
|
||||
("read_only_space", 0x07821): (169, "ScriptOrModuleMap"),
|
||||
("read_only_space", 0x07849): (170, "SourceTextModuleInfoEntryMap"),
|
||||
("read_only_space", 0x07871): (171, "StackFrameInfoMap"),
|
||||
("read_only_space", 0x07899): (172, "TemplateObjectDescriptionMap"),
|
||||
("read_only_space", 0x078c1): (173, "Tuple2Map"),
|
||||
("read_only_space", 0x078e9): (174, "WasmExceptionTagMap"),
|
||||
("read_only_space", 0x07911): (175, "WasmIndirectFunctionTableMap"),
|
||||
("read_only_space", 0x07939): (195, "SloppyArgumentsElementsMap"),
|
||||
("read_only_space", 0x07961): (228, "DescriptorArrayMap"),
|
||||
("read_only_space", 0x07989): (217, "UncompiledDataWithoutPreparseDataMap"),
|
||||
("read_only_space", 0x079b1): (215, "UncompiledDataWithPreparseDataMap"),
|
||||
("read_only_space", 0x079d9): (218, "UncompiledDataWithoutPreparseDataWithJobMap"),
|
||||
("read_only_space", 0x07a01): (216, "UncompiledDataWithPreparseDataAndJobMap"),
|
||||
("read_only_space", 0x07a29): (249, "OnHeapBasicBlockProfilerDataMap"),
|
||||
("read_only_space", 0x07a51): (196, "TurbofanBitsetTypeMap"),
|
||||
("read_only_space", 0x07a79): (200, "TurbofanUnionTypeMap"),
|
||||
("read_only_space", 0x07aa1): (199, "TurbofanRangeTypeMap"),
|
||||
("read_only_space", 0x07ac9): (197, "TurbofanHeapConstantTypeMap"),
|
||||
("read_only_space", 0x07af1): (198, "TurbofanOtherNumberConstantTypeMap"),
|
||||
("read_only_space", 0x07b19): (245, "InternalClassMap"),
|
||||
("read_only_space", 0x07b41): (256, "SmiPairMap"),
|
||||
("read_only_space", 0x07b69): (255, "SmiBoxMap"),
|
||||
("read_only_space", 0x07b91): (201, "ExportedSubClassBaseMap"),
|
||||
("read_only_space", 0x07bb9): (202, "ExportedSubClassMap"),
|
||||
("read_only_space", 0x07be1): (226, "AbstractInternalClassSubclass1Map"),
|
||||
("read_only_space", 0x07c09): (227, "AbstractInternalClassSubclass2Map"),
|
||||
("read_only_space", 0x07c31): (194, "InternalClassWithSmiElementsMap"),
|
||||
("read_only_space", 0x07c59): (246, "InternalClassWithStructElementsMap"),
|
||||
("read_only_space", 0x07c81): (203, "ExportedSubClass2Map"),
|
||||
("read_only_space", 0x07ca9): (257, "SortStateMap"),
|
||||
("read_only_space", 0x07cd1): (263, "WasmStringViewIterMap"),
|
||||
("read_only_space", 0x07cf9): (145, "AllocationSiteWithWeakNextMap"),
|
||||
("read_only_space", 0x07d21): (145, "AllocationSiteWithoutWeakNextMap"),
|
||||
("read_only_space", 0x07ded): (137, "LoadHandler1Map"),
|
||||
("read_only_space", 0x07e15): (137, "LoadHandler2Map"),
|
||||
("read_only_space", 0x07e3d): (137, "LoadHandler3Map"),
|
||||
("read_only_space", 0x07e65): (138, "StoreHandler0Map"),
|
||||
("read_only_space", 0x07e8d): (138, "StoreHandler1Map"),
|
||||
("read_only_space", 0x07eb5): (138, "StoreHandler2Map"),
|
||||
("read_only_space", 0x07edd): (138, "StoreHandler3Map"),
|
||||
("map_space", 0x02139): (2115, "ExternalMap"),
|
||||
("map_space", 0x02161): (2119, "JSMessageObjectMap"),
|
||||
}
|
||||
@ -544,30 +544,30 @@ KNOWN_OBJECTS = {
|
||||
("old_space", 0x045c1): "StringSplitCache",
|
||||
("old_space", 0x049c9): "RegExpMultipleCache",
|
||||
("old_space", 0x04dd1): "BuiltinsConstantsTable",
|
||||
("old_space", 0x05221): "AsyncFunctionAwaitRejectSharedFun",
|
||||
("old_space", 0x05245): "AsyncFunctionAwaitResolveSharedFun",
|
||||
("old_space", 0x05269): "AsyncGeneratorAwaitRejectSharedFun",
|
||||
("old_space", 0x0528d): "AsyncGeneratorAwaitResolveSharedFun",
|
||||
("old_space", 0x052b1): "AsyncGeneratorYieldResolveSharedFun",
|
||||
("old_space", 0x052d5): "AsyncGeneratorReturnResolveSharedFun",
|
||||
("old_space", 0x052f9): "AsyncGeneratorReturnClosedRejectSharedFun",
|
||||
("old_space", 0x0531d): "AsyncGeneratorReturnClosedResolveSharedFun",
|
||||
("old_space", 0x05341): "AsyncIteratorValueUnwrapSharedFun",
|
||||
("old_space", 0x05365): "PromiseAllResolveElementSharedFun",
|
||||
("old_space", 0x05389): "PromiseAllSettledResolveElementSharedFun",
|
||||
("old_space", 0x053ad): "PromiseAllSettledRejectElementSharedFun",
|
||||
("old_space", 0x053d1): "PromiseAnyRejectElementSharedFun",
|
||||
("old_space", 0x053f5): "PromiseCapabilityDefaultRejectSharedFun",
|
||||
("old_space", 0x05419): "PromiseCapabilityDefaultResolveSharedFun",
|
||||
("old_space", 0x0543d): "PromiseCatchFinallySharedFun",
|
||||
("old_space", 0x05461): "PromiseGetCapabilitiesExecutorSharedFun",
|
||||
("old_space", 0x05485): "PromiseThenFinallySharedFun",
|
||||
("old_space", 0x054a9): "PromiseThrowerFinallySharedFun",
|
||||
("old_space", 0x054cd): "PromiseValueThunkFinallySharedFun",
|
||||
("old_space", 0x054f1): "ProxyRevokeSharedFun",
|
||||
("old_space", 0x05515): "ShadowRealmImportValueFulfilledSFI",
|
||||
("old_space", 0x05539): "SourceTextModuleExecuteAsyncModuleFulfilledSFI",
|
||||
("old_space", 0x0555d): "SourceTextModuleExecuteAsyncModuleRejectedSFI",
|
||||
("old_space", 0x05225): "AsyncFunctionAwaitRejectSharedFun",
|
||||
("old_space", 0x05249): "AsyncFunctionAwaitResolveSharedFun",
|
||||
("old_space", 0x0526d): "AsyncGeneratorAwaitRejectSharedFun",
|
||||
("old_space", 0x05291): "AsyncGeneratorAwaitResolveSharedFun",
|
||||
("old_space", 0x052b5): "AsyncGeneratorYieldResolveSharedFun",
|
||||
("old_space", 0x052d9): "AsyncGeneratorReturnResolveSharedFun",
|
||||
("old_space", 0x052fd): "AsyncGeneratorReturnClosedRejectSharedFun",
|
||||
("old_space", 0x05321): "AsyncGeneratorReturnClosedResolveSharedFun",
|
||||
("old_space", 0x05345): "AsyncIteratorValueUnwrapSharedFun",
|
||||
("old_space", 0x05369): "PromiseAllResolveElementSharedFun",
|
||||
("old_space", 0x0538d): "PromiseAllSettledResolveElementSharedFun",
|
||||
("old_space", 0x053b1): "PromiseAllSettledRejectElementSharedFun",
|
||||
("old_space", 0x053d5): "PromiseAnyRejectElementSharedFun",
|
||||
("old_space", 0x053f9): "PromiseCapabilityDefaultRejectSharedFun",
|
||||
("old_space", 0x0541d): "PromiseCapabilityDefaultResolveSharedFun",
|
||||
("old_space", 0x05441): "PromiseCatchFinallySharedFun",
|
||||
("old_space", 0x05465): "PromiseGetCapabilitiesExecutorSharedFun",
|
||||
("old_space", 0x05489): "PromiseThenFinallySharedFun",
|
||||
("old_space", 0x054ad): "PromiseThrowerFinallySharedFun",
|
||||
("old_space", 0x054d1): "PromiseValueThunkFinallySharedFun",
|
||||
("old_space", 0x054f5): "ProxyRevokeSharedFun",
|
||||
("old_space", 0x05519): "ShadowRealmImportValueFulfilledSFI",
|
||||
("old_space", 0x0553d): "SourceTextModuleExecuteAsyncModuleFulfilledSFI",
|
||||
("old_space", 0x05561): "SourceTextModuleExecuteAsyncModuleRejectedSFI",
|
||||
}
|
||||
|
||||
# Lower 32 bits of first page addresses for various heap spaces.
|
||||
|
Loading…
Reference in New Issue
Block a user