From 5d4567279e30e1e74588c022861b1d8dfc354a4e Mon Sep 17 00:00:00 2001 From: Patrick Thier Date: Tue, 6 Sep 2022 18:35:25 +0200 Subject: [PATCH] [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 Reviewed-by: Jakob Linke Commit-Queue: Patrick Thier Cr-Commit-Position: refs/heads/main@{#83003} --- include/v8-regexp.h | 3 +- src/api/api.cc | 1 + src/builtins/builtins-regexp-gen.cc | 4 + src/builtins/regexp.tq | 12 +- src/codegen/external-reference.cc | 5 + src/codegen/external-reference.h | 2 + src/flags/flag-definitions.h | 3 +- src/init/bootstrapper.cc | 14 ++ src/init/heap-symbols.h | 1 + src/objects/js-regexp.cc | 3 +- src/objects/js-regexp.h | 4 + src/objects/js-regexp.tq | 1 + src/parsing/parser-base.h | 8 +- src/regexp/regexp-flags.h | 17 +- src/regexp/regexp.cc | 6 + src/regexp/regexp.h | 3 + test/fuzzer/regexp-builtins.cc | 30 +++- test/test262/test262.status | 267 +++++++++++++++------------- test/test262/testcfg.py | 23 +-- tools/v8heapconst.py | 188 ++++++++++---------- 20 files changed, 344 insertions(+), 251 deletions(-) diff --git a/include/v8-regexp.h b/include/v8-regexp.h index 3791bc0368..135977bfbb 100644 --- a/include/v8-regexp.h +++ b/include/v8-regexp.h @@ -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 diff --git a/src/api/api.cc b/src/api/api.cc index 3ee474d9b9..e8d037725e 100644 --- a/src/api/api.cc +++ b/src/api/api.cc @@ -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 { diff --git a/src/builtins/builtins-regexp-gen.cc b/src/builtins/builtins-regexp-gen.cc index c4505cb57a..c40e21b1a1 100644 --- a/src/builtins/builtins-regexp-gen.cc +++ b/src/builtins/builtins-regexp-gen.cc @@ -1100,6 +1100,10 @@ TNode RegExpBuiltinsAssembler::FlagsGetter(TNode 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 } diff --git a/src/builtins/regexp.tq b/src/builtins/regexp.tq index 5760b06658..2ddcfd138e 100644 --- a/src/builtins/regexp.tq +++ b/src/builtins/regexp.tq @@ -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; diff --git a/src/codegen/external-reference.cc b/src/codegen/external-reference.cc index 9c0be0159d..b1c52406c0 100644 --- a/src/codegen/external-reference.cc +++ b/src/codegen/external-reference.cc @@ -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() { diff --git a/src/codegen/external-reference.h b/src/codegen/external-reference.h index ab065ecc5b..5af0a93608 100644 --- a/src/codegen/external-reference.h +++ b/src/codegen/external-reference.h @@ -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") \ diff --git a/src/flags/flag-definitions.h b/src/flags/flag-definitions.h index 3b63d2580a..6a2f31afbd 100644 --- a/src/flags/flag-definitions.h +++ b/src/flags/flag-definitions.h @@ -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) \ diff --git a/src/init/bootstrapper.cc b/src/init/bootstrapper.cc index 09327bb5e1..a9afa3f413 100644 --- a/src/init/bootstrapper.cc +++ b/src/init/bootstrapper.cc @@ -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 regexp_fun(native_context()->regexp_function(), isolate()); + Handle 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(); diff --git a/src/init/heap-symbols.h b/src/init/heap-symbols.h index ab7b106081..1f120996bd 100644 --- a/src/init/heap-symbols.h +++ b/src/init/heap-symbols.h @@ -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") \ diff --git a/src/objects/js-regexp.cc b/src/objects/js-regexp.cc index 9310a8f77b..e76ee87b89 100644 --- a/src/objects/js-regexp.cc +++ b/src/objects/js-regexp.cc @@ -233,7 +233,8 @@ MaybeHandle JSRegExp::Initialize(Handle regexp, Isolate* isolate = regexp->GetIsolate(); base::Optional 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), diff --git a/src/objects/js-regexp.h b/src/objects/js-regexp.h index fe96575fc6..67409b4649 100644 --- a/src/objects/js-regexp.h +++ b/src/objects/js-regexp.h @@ -99,6 +99,10 @@ class JSRegExp : public TorqueGeneratedJSRegExp { !v8_flags.enable_experimental_regexp_engine) { return {}; } + if (f.value() == RegExpFlag::kUnicodeSets && + !FLAG_harmony_regexp_unicode_sets) { + return {}; + } return f; } diff --git a/src/objects/js-regexp.tq b/src/objects/js-regexp.tq index 7c60df214a..d2aa4f9a3e 100644 --- a/src/objects/js-regexp.tq +++ b/src/objects/js-regexp.tq @@ -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 { diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h index 09bdb13e15..560a8fc727 100644 --- a/src/parsing/parser-base.h +++ b/src/parsing/parser-base.h @@ -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::ParsePropertyOrPrivatePropertyName() { return key; } +template +bool ParserBase::ValidateRegExpFlags(RegExpFlags flags) { + return RegExp::VerifyFlags(flags); +} + template bool ParserBase::ValidateRegExpLiteral(const AstRawString* pattern, RegExpFlags flags, @@ -1827,7 +1833,7 @@ typename ParserBase::ExpressionT ParserBase::ParseRegExpLiteral() { const AstRawString* js_pattern = GetNextSymbolForRegExpLiteral(); base::Optional flags = scanner()->ScanRegExpFlags(); - if (!flags.has_value()) { + if (!flags.has_value() || !ValidateRegExpFlags(flags.value())) { Next(); ReportMessage(MessageTemplate::kMalformedRegExpFlags); return impl()->FailureExpression(); diff --git a/src/regexp/regexp-flags.h b/src/regexp/regexp-flags.h index b35cd7892b..4f9bff2d25 100644 --- a/src/regexp/regexp-flags.h +++ b/src/regexp/regexp-flags.h @@ -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, diff --git a/src/regexp/regexp.cc b/src/regexp/regexp.cc index 12b2daf826..c0e439beae 100644 --- a/src/regexp/regexp.cc +++ b/src/regexp/regexp.cc @@ -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 bool RegExp::VerifySyntax(Zone* zone, uintptr_t stack_limit, const CharT* input, diff --git a/src/regexp/regexp.h b/src/regexp/regexp.h index 60a240f259..09d1e52215 100644 --- a/src/regexp/regexp.h +++ b/src/regexp/regexp.h @@ -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 diff --git a/test/fuzzer/regexp-builtins.cc b/test/fuzzer/regexp-builtins.cc index 9a2acfeeff..6388529ae5 100644 --- a/test/fuzzer/regexp-builtins.cc +++ b/test/fuzzer/regexp-builtins.cc @@ -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(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); } diff --git a/test/test262/test262.status b/test/test262/test262.status index 4cb4cf46b2..3f8deb3fb2 100644 --- a/test/test262/test262.status +++ b/test/test262/test262.status @@ -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], diff --git a/test/test262/testcfg.py b/test/test262/testcfg.py index 5b168954a1..6d72acbe4e 100644 --- a/test/test262/testcfg.py +++ b/test/test262/testcfg.py @@ -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([]) diff --git a/tools/v8heapconst.py b/tools/v8heapconst.py index bd6f7c2ff1..de0b8473c5 100644 --- a/tools/v8heapconst.py +++ b/tools/v8heapconst.py @@ -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.