[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:
Patrick Thier 2022-09-06 18:35:25 +02:00 committed by V8 LUCI CQ
parent 71a2887f53
commit 5d4567279e
20 changed files with 344 additions and 251 deletions

View File

@ -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

View File

@ -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 {

View File

@ -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
}

View File

@ -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;

View File

@ -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() {

View File

@ -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") \

View File

@ -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) \

View File

@ -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();

View File

@ -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") \

View File

@ -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),

View File

@ -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;
}

View File

@ -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 {

View File

@ -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();

View File

@ -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,

View File

@ -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,

View File

@ -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>

View File

@ -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);
}

View File

@ -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],

View File

@ -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([])

View File

@ -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.