From 4c972d669a91351df0dd0e81a8481e602d703499 Mon Sep 17 00:00:00 2001 From: Toon Verwaest Date: Fri, 4 May 2018 10:45:02 +0200 Subject: [PATCH] Cleanup: Remove unnecessary ContextExtension wrapper Bug: v8:7066 Change-Id: Icfcb40b2048997c158fba5f3e250145bed4ca1e3 Reviewed-on: https://chromium-review.googlesource.com/1042386 Commit-Queue: Toon Verwaest Reviewed-by: Michael Starzinger Cr-Commit-Position: refs/heads/master@{#52981} --- src/compiler/access-builder.cc | 19 --- src/compiler/access-builder.h | 4 - src/compiler/js-create-lowering.cc | 25 +-- src/compiler/types.cc | 1 - src/contexts.cc | 27 ++-- src/contexts.h | 11 +- src/deoptimizer.cc | 9 -- src/heap/factory.cc | 24 +-- src/heap/factory.h | 4 - src/heap/incremental-marking.cc | 3 +- src/objects-debug.cc | 6 - src/objects-inl.h | 4 - src/objects-printer.cc | 7 - src/objects.h | 29 ---- src/runtime/runtime-scopes.cc | 9 +- tools/v8heapconst.py | 236 ++++++++++++++--------------- 16 files changed, 143 insertions(+), 275 deletions(-) diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc index 7872c9320d..02c5d8a2a0 100644 --- a/src/compiler/access-builder.cc +++ b/src/compiler/access-builder.cc @@ -851,25 +851,6 @@ FieldAccess AccessBuilder::ForContextSlot(size_t index) { return access; } -// static -FieldAccess AccessBuilder::ForContextExtensionScopeInfo() { - FieldAccess access = { - kTaggedBase, ContextExtension::kScopeInfoOffset, - Handle(), MaybeHandle(), - Type::OtherInternal(), MachineType::AnyTagged(), - kFullWriteBarrier}; - return access; -} - -// static -FieldAccess AccessBuilder::ForContextExtensionExtension() { - FieldAccess access = {kTaggedBase, ContextExtension::kExtensionOffset, - Handle(), MaybeHandle(), - Type::Any(), MachineType::AnyTagged(), - kFullWriteBarrier}; - return access; -} - // static ElementAccess AccessBuilder::ForFixedArrayElement() { ElementAccess access = {kTaggedBase, FixedArray::kHeaderSize, Type::Any(), diff --git a/src/compiler/access-builder.h b/src/compiler/access-builder.h index fc6c4f97a4..4e8107d859 100644 --- a/src/compiler/access-builder.h +++ b/src/compiler/access-builder.h @@ -273,10 +273,6 @@ class V8_EXPORT_PRIVATE AccessBuilder final // Provides access to Context slots. static FieldAccess ForContextSlot(size_t index); - // Provides access to ContextExtension fields. - static FieldAccess ForContextExtensionScopeInfo(); - static FieldAccess ForContextExtensionExtension(); - // Provides access to FixedArray elements. static ElementAccess ForFixedArrayElement(); static ElementAccess ForFixedArrayElement( diff --git a/src/compiler/js-create-lowering.cc b/src/compiler/js-create-lowering.cc index 36e9cc9330..58ab7e317b 100644 --- a/src/compiler/js-create-lowering.cc +++ b/src/compiler/js-create-lowering.cc @@ -1330,19 +1330,12 @@ Reduction JSCreateLowering::ReduceJSCreateFunctionContext(Node* node) { Reduction JSCreateLowering::ReduceJSCreateWithContext(Node* node) { DCHECK_EQ(IrOpcode::kJSCreateWithContext, node->opcode()); Handle scope_info = ScopeInfoOf(node->op()); - Node* object = NodeProperties::GetValueInput(node, 0); + Node* extension = NodeProperties::GetValueInput(node, 0); Node* effect = NodeProperties::GetEffectInput(node); Node* control = NodeProperties::GetControlInput(node); Node* context = NodeProperties::GetContextInput(node); - AllocationBuilder aa(jsgraph(), effect, control); - aa.Allocate(ContextExtension::kSize); - aa.Store(AccessBuilder::ForMap(), factory()->context_extension_map()); - aa.Store(AccessBuilder::ForContextExtensionScopeInfo(), scope_info); - aa.Store(AccessBuilder::ForContextExtensionExtension(), object); - Node* extension = aa.Finish(); - - AllocationBuilder a(jsgraph(), extension, control); + AllocationBuilder a(jsgraph(), effect, control); STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 4); // Ensure fully covered. a.AllocateContext(Context::MIN_CONTEXT_SLOTS, factory()->with_context_map()); a.Store(AccessBuilder::ForContextSlot(Context::SCOPE_INFO_INDEX), scope_info); @@ -1360,27 +1353,19 @@ Reduction JSCreateLowering::ReduceJSCreateCatchContext(Node* node) { const CreateCatchContextParameters& parameters = CreateCatchContextParametersOf(node->op()); Handle scope_info = parameters.scope_info(); + Handle catch_name = parameters.catch_name(); Node* exception = NodeProperties::GetValueInput(node, 0); Node* effect = NodeProperties::GetEffectInput(node); Node* control = NodeProperties::GetControlInput(node); Node* context = NodeProperties::GetContextInput(node); - AllocationBuilder aa(jsgraph(), effect, control); - aa.Allocate(ContextExtension::kSize); - aa.Store(AccessBuilder::ForMap(), factory()->context_extension_map()); - aa.Store(AccessBuilder::ForContextExtensionScopeInfo(), - parameters.scope_info()); - aa.Store(AccessBuilder::ForContextExtensionExtension(), - parameters.catch_name()); - Node* extension = aa.Finish(); - - AllocationBuilder a(jsgraph(), extension, control); + AllocationBuilder a(jsgraph(), effect, control); STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == 4); // Ensure fully covered. a.AllocateContext(Context::MIN_CONTEXT_SLOTS + 1, factory()->catch_context_map()); a.Store(AccessBuilder::ForContextSlot(Context::SCOPE_INFO_INDEX), scope_info); a.Store(AccessBuilder::ForContextSlot(Context::PREVIOUS_INDEX), context); - a.Store(AccessBuilder::ForContextSlot(Context::EXTENSION_INDEX), extension); + a.Store(AccessBuilder::ForContextSlot(Context::EXTENSION_INDEX), catch_name); a.Store(AccessBuilder::ForContextSlot(Context::NATIVE_CONTEXT_INDEX), jsgraph()->HeapConstant(native_context())); a.Store(AccessBuilder::ForContextSlot(Context::THROWN_OBJECT_INDEX), diff --git a/src/compiler/types.cc b/src/compiler/types.cc index b72fe0614d..42a8038118 100644 --- a/src/compiler/types.cc +++ b/src/compiler/types.cc @@ -327,7 +327,6 @@ Type::bitset BitsetType::Lub(i::Map* map) { case WASM_SHARED_MODULE_DATA_TYPE: case LOAD_HANDLER_TYPE: case STORE_HANDLER_TYPE: - case CONTEXT_EXTENSION_TYPE: case ASYNC_GENERATOR_REQUEST_TYPE: case CODE_DATA_CONTAINER_TYPE: case CALLBACK_TASK_TYPE: diff --git a/src/contexts.cc b/src/contexts.cc index c0ae54847b..9fbff7eeca 100644 --- a/src/contexts.cc +++ b/src/contexts.cc @@ -93,10 +93,6 @@ JSObject* Context::extension_object() { IsEvalContext()); HeapObject* object = extension(); if (object->IsTheHole(GetIsolate())) return nullptr; - if (IsBlockContext()) { - if (!object->IsContextExtension()) return nullptr; - object = JSObject::cast(ContextExtension::cast(object)->extension()); - } DCHECK(object->IsJSContextExtensionObject() || (IsNativeContext() && object->IsJSGlobalObject())); return JSObject::cast(object); @@ -105,9 +101,7 @@ JSObject* Context::extension_object() { JSReceiver* Context::extension_receiver() { DCHECK(IsNativeContext() || IsWithContext() || IsEvalContext() || IsFunctionContext() || IsBlockContext()); - return IsWithContext() ? JSReceiver::cast( - ContextExtension::cast(extension())->extension()) - : extension_object(); + return IsWithContext() ? JSReceiver::cast(extension()) : extension_object(); } ScopeInfo* Context::scope_info() { @@ -124,7 +118,7 @@ Module* Context::module() { String* Context::catch_name() { DCHECK(IsCatchContext()); - return String::cast(ContextExtension::cast(extension())->extension()); + return String::cast(extension()); } @@ -378,16 +372,13 @@ Handle Context::Lookup(Handle name, ContextLookupFlags flags, } else if (context->IsDebugEvaluateContext()) { // Check materialized locals. Object* ext = context->get(EXTENSION_INDEX); - if (ext->IsContextExtension()) { - Object* obj = ContextExtension::cast(ext)->extension(); - if (obj->IsJSReceiver()) { - Handle extension(JSReceiver::cast(obj)); - LookupIterator it(extension, name, extension); - Maybe found = JSReceiver::HasProperty(&it); - if (found.FromMaybe(false)) { - *attributes = NONE; - return extension; - } + if (ext->IsJSReceiver()) { + Handle extension(JSReceiver::cast(ext)); + LookupIterator it(extension, name, extension); + Maybe found = JSReceiver::HasProperty(&it); + if (found.FromMaybe(false)) { + *attributes = NONE; + return extension; } } // Check the original context, but do not follow its context chain. diff --git a/src/contexts.h b/src/contexts.h index 6df4a45b4f..28cbb09c2e 100644 --- a/src/contexts.h +++ b/src/contexts.h @@ -382,18 +382,15 @@ class ScriptContextTable : public FixedArray { // // [ extension ] Additional data. // -// For catch contexts, it contains a ContextExtension object -// consisting of the ScopeInfo and the name of the catch +// For catch contexts, it contains the name of the catch // variable. // // For module contexts, it contains the module object. // -// For block contexts, it may contain a ContextExtension -// object consisting of the ScopeInfo and an "extension -// object" (see below). +// For block contexts, it may contain an "extension object" +// (see below). // -// For with contexts, it contains a ContextExtension object -// consisting of the ScopeInfo and an "extension object". +// For with contexts, it contains an "extension object". // // An "extension object" is used to dynamically extend a // context with additional variables, namely in the diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc index 3166a98421..8851283fc1 100644 --- a/src/deoptimizer.cc +++ b/src/deoptimizer.cc @@ -3419,7 +3419,6 @@ void TranslatedState::InitializeCapturedObjectAt( case BOILERPLATE_DESCRIPTION_TYPE: case HASH_TABLE_TYPE: case PROPERTY_ARRAY_TYPE: - case CONTEXT_EXTENSION_TYPE: InitializeObjectWithTaggedFieldsAt(frame, &value_index, slot, map, no_allocation); break; @@ -3586,14 +3585,6 @@ void TranslatedState::EnsureCapturedObjectAllocatedAt( &value_index, worklist); } - case CONTEXT_EXTENSION_TYPE: { - CHECK_EQ(map->instance_size(), slot->GetChildrenCount() * kPointerSize); - slot->set_storage(AllocateStorageFor(slot)); - // Make sure all the remaining children (after the map) are allocated. - return EnsureChildrenAllocated(slot->GetChildrenCount() - 1, frame, - &value_index, worklist); - } - default: CHECK(map->IsJSObjectMap()); EnsureJSObjectAllocated(slot, map); diff --git a/src/heap/factory.cc b/src/heap/factory.cc index 45e2f8820b..c2b235c27b 100644 --- a/src/heap/factory.cc +++ b/src/heap/factory.cc @@ -155,15 +155,6 @@ Handle Factory::NewTuple3(Handle value1, Handle value2, return result; } -Handle Factory::NewContextExtension( - Handle scope_info, Handle extension) { - Handle result = Handle::cast( - NewStruct(CONTEXT_EXTENSION_TYPE, TENURED)); - result->set_scope_info(*scope_info); - result->set_extension(*extension); - return result; -} - Handle Factory::NewConstantElementsPair( ElementsKind elements_kind, Handle constant_values) { Handle result = @@ -1343,12 +1334,11 @@ Handle Factory::NewCatchContext(Handle previous, Handle name, Handle thrown_object) { STATIC_ASSERT(Context::MIN_CONTEXT_SLOTS == Context::THROWN_OBJECT_INDEX); - Handle extension = NewContextExtension(scope_info, name); Handle context = NewFixedArrayWithMap( Heap::kCatchContextMapRootIndex, Context::MIN_CONTEXT_SLOTS + 1); context->set_scope_info(*scope_info); context->set_previous(*previous); - context->set_extension(*extension); + context->set_extension(*name); context->set_native_context(previous->native_context()); context->set(Context::THROWN_OBJECT_INDEX, *thrown_object); return context; @@ -1361,15 +1351,15 @@ Handle Factory::NewDebugEvaluateContext(Handle previous, Handle whitelist) { STATIC_ASSERT(Context::WHITE_LIST_INDEX == Context::MIN_CONTEXT_SLOTS + 1); DCHECK(scope_info->IsDebugEvaluateScope()); - Handle context_extension = NewContextExtension( - scope_info, extension.is_null() ? Handle::cast(undefined_value()) - : Handle::cast(extension)); + Handle ext = extension.is_null() + ? Handle::cast(the_hole_value()) + : Handle::cast(extension); Handle c = NewFixedArrayWithMap( Heap::kDebugEvaluateContextMapRootIndex, Context::MIN_CONTEXT_SLOTS + 2); c->set_scope_info(*scope_info); c->set_previous(*previous); c->set_native_context(previous->native_context()); - c->set_extension(*context_extension); + c->set_extension(*ext); if (!wrapped.is_null()) c->set(Context::WRAPPED_CONTEXT_INDEX, *wrapped); if (!whitelist.is_null()) c->set(Context::WHITE_LIST_INDEX, *whitelist); return c; @@ -1378,13 +1368,11 @@ Handle Factory::NewDebugEvaluateContext(Handle previous, Handle Factory::NewWithContext(Handle previous, Handle scope_info, Handle extension) { - Handle context_extension = - NewContextExtension(scope_info, extension); Handle context = NewFixedArrayWithMap( Heap::kWithContextMapRootIndex, Context::MIN_CONTEXT_SLOTS); context->set_scope_info(*scope_info); context->set_previous(*previous); - context->set_extension(*context_extension); + context->set_extension(*extension); context->set_native_context(previous->native_context()); return context; } diff --git a/src/heap/factory.h b/src/heap/factory.h index 100040e867..b6f19a64c7 100644 --- a/src/heap/factory.h +++ b/src/heap/factory.h @@ -186,10 +186,6 @@ class V8_EXPORT_PRIVATE Factory { Handle NewTuple3(Handle value1, Handle value2, Handle value3, PretenureFlag pretenure); - // Create a new ContextExtension struct. - Handle NewContextExtension(Handle scope_info, - Handle extension); - // Create a new ConstantElementsPair struct. Handle NewConstantElementsPair( ElementsKind elements_kind, Handle constant_values); diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc index 521758a13f..27b1902990 100644 --- a/src/heap/incremental-marking.cc +++ b/src/heap/incremental-marking.cc @@ -716,8 +716,7 @@ int IncrementalMarking::VisitObject(Map* map, HeapObject* obj) { // unsafe layout change. // 4. The object is materizalized by the deoptimizer. DCHECK(obj->IsHashTable() || obj->IsPropertyArray() || - obj->IsContextExtension() || obj->IsFixedArray() || - obj->IsJSObject() || obj->IsString()); + obj->IsFixedArray() || obj->IsJSObject() || obj->IsString()); } DCHECK(marking_state()->IsBlack(obj)); WhiteToGreyAndPush(map); diff --git a/src/objects-debug.cc b/src/objects-debug.cc index 64b7cc9f11..07ffca8e28 100644 --- a/src/objects-debug.cc +++ b/src/objects-debug.cc @@ -1611,12 +1611,6 @@ void StoreHandler::StoreHandlerVerify() { // TODO(ishell): check handler integrity } -void ContextExtension::ContextExtensionVerify() { - CHECK(IsContextExtension()); - VerifyObjectField(kScopeInfoOffset); - VerifyObjectField(kExtensionOffset); -} - void AccessorInfo::AccessorInfoVerify() { CHECK(IsAccessorInfo()); VerifyPointer(name()); diff --git a/src/objects-inl.h b/src/objects-inl.h index 5091971406..947708aac3 100644 --- a/src/objects-inl.h +++ b/src/objects-inl.h @@ -571,7 +571,6 @@ CAST_ACCESSOR(BigInt) CAST_ACCESSOR(BoilerplateDescription) CAST_ACCESSOR(Cell) CAST_ACCESSOR(ConstantElementsPair) -CAST_ACCESSOR(ContextExtension) CAST_ACCESSOR(DescriptorArray) CAST_ACCESSOR(EnumCache) CAST_ACCESSOR(FeedbackCell) @@ -2324,9 +2323,6 @@ ACCESSORS(Tuple2, value1, Object, kValue1Offset) ACCESSORS(Tuple2, value2, Object, kValue2Offset) ACCESSORS(Tuple3, value3, Object, kValue3Offset) -ACCESSORS(ContextExtension, scope_info, ScopeInfo, kScopeInfoOffset) -ACCESSORS(ContextExtension, extension, Object, kExtensionOffset) - SMI_ACCESSORS(ConstantElementsPair, elements_kind, kElementsKindOffset) ACCESSORS(ConstantElementsPair, constant_values, FixedArrayBase, kConstantValuesOffset) diff --git a/src/objects-printer.cc b/src/objects-printer.cc index 930a1a1c4f..a0ea8970a0 100644 --- a/src/objects-printer.cc +++ b/src/objects-printer.cc @@ -1645,13 +1645,6 @@ void StoreHandler::StoreHandlerPrint(std::ostream& os) { // NOLINT os << "\n"; } -void ContextExtension::ContextExtensionPrint(std::ostream& os) { // NOLINT - HeapObject::PrintHeader(os, "ContextExtension"); - os << "\n - scope_info: " << Brief(scope_info()); - os << "\n - extension: " << Brief(extension()); - os << "\n"; -} - void AccessorPair::AccessorPairPrint(std::ostream& os) { // NOLINT HeapObject::PrintHeader(os, "AccessorPair"); os << "\n - getter: " << Brief(getter()); diff --git a/src/objects.h b/src/objects.h index 20024a8f0b..4f6cca5f79 100644 --- a/src/objects.h +++ b/src/objects.h @@ -382,7 +382,6 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; V(ALLOCATION_MEMENTO_TYPE) \ V(ALLOCATION_SITE_TYPE) \ V(ASYNC_GENERATOR_REQUEST_TYPE) \ - V(CONTEXT_EXTENSION_TYPE) \ V(DEBUG_INFO_TYPE) \ V(FUNCTION_TEMPLATE_INFO_TYPE) \ V(INTERCEPTOR_INFO_TYPE) \ @@ -557,7 +556,6 @@ const int kStubMinorKeyBits = kSmiValueSize - kStubMajorKeyBits - 1; V(ALLOCATION_MEMENTO, AllocationMemento, allocation_memento) \ V(ALLOCATION_SITE, AllocationSite, allocation_site) \ V(ASYNC_GENERATOR_REQUEST, AsyncGeneratorRequest, async_generator_request) \ - V(CONTEXT_EXTENSION, ContextExtension, context_extension) \ V(DEBUG_INFO, DebugInfo, debug_info) \ V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \ V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \ @@ -752,7 +750,6 @@ enum InstanceType : uint16_t { ALLOCATION_MEMENTO_TYPE, ALLOCATION_SITE_TYPE, ASYNC_GENERATOR_REQUEST_TYPE, - CONTEXT_EXTENSION_TYPE, DEBUG_INFO_TYPE, FUNCTION_TEMPLATE_INFO_TYPE, INTERCEPTOR_INFO_TYPE, @@ -2988,32 +2985,6 @@ class PrototypeInfo : public Struct { DISALLOW_IMPLICIT_CONSTRUCTORS(PrototypeInfo); }; -// Pair used to store both a ScopeInfo and an extension object in the extension -// slot of a block, catch, or with context. Needed in the rare case where a -// declaration block scope (a "varblock" as used to desugar parameter -// destructuring) also contains a sloppy direct eval, or for with and catch -// scopes. (In no other case both are needed at the same time.) -class ContextExtension : public Struct { - public: - // [scope_info]: Scope info. - DECL_ACCESSORS(scope_info, ScopeInfo) - // [extension]: Extension object. - DECL_ACCESSORS(extension, Object) - - DECL_CAST(ContextExtension) - - // Dispatched behavior. - DECL_PRINTER(ContextExtension) - DECL_VERIFIER(ContextExtension) - - static const int kScopeInfoOffset = HeapObject::kHeaderSize; - static const int kExtensionOffset = kScopeInfoOffset + kPointerSize; - static const int kSize = kExtensionOffset + kPointerSize; - - private: - DISALLOW_IMPLICIT_CONSTRUCTORS(ContextExtension); -}; - // List of builtin functions we want to identify to improve code // generation. // diff --git a/src/runtime/runtime-scopes.cc b/src/runtime/runtime-scopes.cc index 4a1ad58fb0..6faf1da451 100644 --- a/src/runtime/runtime-scopes.cc +++ b/src/runtime/runtime-scopes.cc @@ -297,14 +297,7 @@ Object* DeclareEvalHelper(Isolate* isolate, Handle name, object = isolate->factory()->NewJSObject(isolate->context_extension_function()); - if (context->IsBlockContext()) { - Handle extension = - isolate->factory()->NewContextExtension(handle(context->scope_info()), - object); - context->set_extension(*extension); - } else { - context->set_extension(*object); - } + context->set_extension(*object); } RETURN_FAILURE_ON_EXCEPTION(isolate, JSObject::SetOwnPropertyIgnoreAttributes( diff --git a/tools/v8heapconst.py b/tools/v8heapconst.py index 0069f875e9..761e29adf0 100644 --- a/tools/v8heapconst.py +++ b/tools/v8heapconst.py @@ -61,59 +61,58 @@ INSTANCE_TYPES = { 157: "ALLOCATION_MEMENTO_TYPE", 158: "ALLOCATION_SITE_TYPE", 159: "ASYNC_GENERATOR_REQUEST_TYPE", - 160: "CONTEXT_EXTENSION_TYPE", - 161: "DEBUG_INFO_TYPE", - 162: "FUNCTION_TEMPLATE_INFO_TYPE", - 163: "INTERCEPTOR_INFO_TYPE", - 164: "INTERPRETER_DATA_TYPE", - 165: "MODULE_INFO_ENTRY_TYPE", - 166: "MODULE_TYPE", - 167: "OBJECT_TEMPLATE_INFO_TYPE", - 168: "PROMISE_CAPABILITY_TYPE", - 169: "PROMISE_REACTION_TYPE", - 170: "PROTOTYPE_INFO_TYPE", - 171: "SCRIPT_TYPE", - 172: "STACK_FRAME_INFO_TYPE", - 173: "TUPLE2_TYPE", - 174: "TUPLE3_TYPE", - 175: "WASM_COMPILED_MODULE_TYPE", - 176: "WASM_DEBUG_INFO_TYPE", - 177: "WASM_SHARED_MODULE_DATA_TYPE", - 178: "CALLABLE_TASK_TYPE", - 179: "CALLBACK_TASK_TYPE", - 180: "PROMISE_FULFILL_REACTION_JOB_TASK_TYPE", - 181: "PROMISE_REJECT_REACTION_JOB_TASK_TYPE", - 182: "PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE", - 183: "FIXED_ARRAY_TYPE", - 184: "BOILERPLATE_DESCRIPTION_TYPE", - 185: "DESCRIPTOR_ARRAY_TYPE", - 186: "HASH_TABLE_TYPE", - 187: "SCOPE_INFO_TYPE", - 188: "BLOCK_CONTEXT_TYPE", - 189: "CATCH_CONTEXT_TYPE", - 190: "DEBUG_EVALUATE_CONTEXT_TYPE", - 191: "EVAL_CONTEXT_TYPE", - 192: "FUNCTION_CONTEXT_TYPE", - 193: "MODULE_CONTEXT_TYPE", - 194: "NATIVE_CONTEXT_TYPE", - 195: "SCRIPT_CONTEXT_TYPE", - 196: "WITH_CONTEXT_TYPE", - 197: "WEAK_FIXED_ARRAY_TYPE", - 198: "TRANSITION_ARRAY_TYPE", - 199: "CALL_HANDLER_INFO_TYPE", - 200: "CELL_TYPE", - 201: "CODE_DATA_CONTAINER_TYPE", - 202: "FEEDBACK_CELL_TYPE", - 203: "FEEDBACK_VECTOR_TYPE", - 204: "LOAD_HANDLER_TYPE", - 205: "PROPERTY_ARRAY_TYPE", - 206: "PROPERTY_CELL_TYPE", - 207: "SHARED_FUNCTION_INFO_TYPE", - 208: "SMALL_ORDERED_HASH_MAP_TYPE", - 209: "SMALL_ORDERED_HASH_SET_TYPE", - 210: "STORE_HANDLER_TYPE", - 211: "WEAK_CELL_TYPE", - 212: "WEAK_ARRAY_LIST_TYPE", + 160: "DEBUG_INFO_TYPE", + 161: "FUNCTION_TEMPLATE_INFO_TYPE", + 162: "INTERCEPTOR_INFO_TYPE", + 163: "INTERPRETER_DATA_TYPE", + 164: "MODULE_INFO_ENTRY_TYPE", + 165: "MODULE_TYPE", + 166: "OBJECT_TEMPLATE_INFO_TYPE", + 167: "PROMISE_CAPABILITY_TYPE", + 168: "PROMISE_REACTION_TYPE", + 169: "PROTOTYPE_INFO_TYPE", + 170: "SCRIPT_TYPE", + 171: "STACK_FRAME_INFO_TYPE", + 172: "TUPLE2_TYPE", + 173: "TUPLE3_TYPE", + 174: "WASM_COMPILED_MODULE_TYPE", + 175: "WASM_DEBUG_INFO_TYPE", + 176: "WASM_SHARED_MODULE_DATA_TYPE", + 177: "CALLABLE_TASK_TYPE", + 178: "CALLBACK_TASK_TYPE", + 179: "PROMISE_FULFILL_REACTION_JOB_TASK_TYPE", + 180: "PROMISE_REJECT_REACTION_JOB_TASK_TYPE", + 181: "PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE", + 182: "FIXED_ARRAY_TYPE", + 183: "BOILERPLATE_DESCRIPTION_TYPE", + 184: "DESCRIPTOR_ARRAY_TYPE", + 185: "HASH_TABLE_TYPE", + 186: "SCOPE_INFO_TYPE", + 187: "BLOCK_CONTEXT_TYPE", + 188: "CATCH_CONTEXT_TYPE", + 189: "DEBUG_EVALUATE_CONTEXT_TYPE", + 190: "EVAL_CONTEXT_TYPE", + 191: "FUNCTION_CONTEXT_TYPE", + 192: "MODULE_CONTEXT_TYPE", + 193: "NATIVE_CONTEXT_TYPE", + 194: "SCRIPT_CONTEXT_TYPE", + 195: "WITH_CONTEXT_TYPE", + 196: "WEAK_FIXED_ARRAY_TYPE", + 197: "TRANSITION_ARRAY_TYPE", + 198: "CALL_HANDLER_INFO_TYPE", + 199: "CELL_TYPE", + 200: "CODE_DATA_CONTAINER_TYPE", + 201: "FEEDBACK_CELL_TYPE", + 202: "FEEDBACK_VECTOR_TYPE", + 203: "LOAD_HANDLER_TYPE", + 204: "PROPERTY_ARRAY_TYPE", + 205: "PROPERTY_CELL_TYPE", + 206: "SHARED_FUNCTION_INFO_TYPE", + 207: "SMALL_ORDERED_HASH_MAP_TYPE", + 208: "SMALL_ORDERED_HASH_SET_TYPE", + 209: "STORE_HANDLER_TYPE", + 210: "WEAK_CELL_TYPE", + 211: "WEAK_ARRAY_LIST_TYPE", 1024: "JS_PROXY_TYPE", 1025: "JS_GLOBAL_OBJECT_TYPE", 1026: "JS_GLOBAL_PROXY_TYPE", @@ -162,9 +161,9 @@ KNOWN_MAPS = { ("RO_SPACE", 0x02201): (138, "FreeSpaceMap"), ("RO_SPACE", 0x02259): (132, "MetaMap"), ("RO_SPACE", 0x022e1): (131, "NullMap"), - ("RO_SPACE", 0x02359): (185, "DescriptorArrayMap"), - ("RO_SPACE", 0x023c1): (183, "FixedArrayMap"), - ("RO_SPACE", 0x02429): (211, "WeakCellMap"), + ("RO_SPACE", 0x02359): (184, "DescriptorArrayMap"), + ("RO_SPACE", 0x023c1): (182, "FixedArrayMap"), + ("RO_SPACE", 0x02429): (210, "WeakCellMap"), ("RO_SPACE", 0x024d1): (152, "OnePointerFillerMap"), ("RO_SPACE", 0x02539): (152, "TwoPointerFillerMap"), ("RO_SPACE", 0x025a1): (131, "UninitializedMap"), @@ -174,60 +173,60 @@ KNOWN_MAPS = { ("RO_SPACE", 0x02801): (131, "TheHoleMap"), ("RO_SPACE", 0x028c9): (131, "BooleanMap"), ("RO_SPACE", 0x029d9): (136, "ByteArrayMap"), - ("RO_SPACE", 0x02a41): (183, "FixedCOWArrayMap"), - ("RO_SPACE", 0x02aa9): (186, "HashTableMap"), + ("RO_SPACE", 0x02a41): (182, "FixedCOWArrayMap"), + ("RO_SPACE", 0x02aa9): (185, "HashTableMap"), ("RO_SPACE", 0x02b11): (128, "SymbolMap"), ("RO_SPACE", 0x02b79): (72, "OneByteStringMap"), - ("RO_SPACE", 0x02be1): (187, "ScopeInfoMap"), - ("RO_SPACE", 0x02c49): (207, "SharedFunctionInfoMap"), + ("RO_SPACE", 0x02be1): (186, "ScopeInfoMap"), + ("RO_SPACE", 0x02c49): (206, "SharedFunctionInfoMap"), ("RO_SPACE", 0x02cb1): (133, "CodeMap"), - ("RO_SPACE", 0x02d19): (192, "FunctionContextMap"), - ("RO_SPACE", 0x02d81): (200, "CellMap"), - ("RO_SPACE", 0x02de9): (206, "GlobalPropertyCellMap"), + ("RO_SPACE", 0x02d19): (191, "FunctionContextMap"), + ("RO_SPACE", 0x02d81): (199, "CellMap"), + ("RO_SPACE", 0x02de9): (205, "GlobalPropertyCellMap"), ("RO_SPACE", 0x02e51): (135, "ForeignMap"), - ("RO_SPACE", 0x02eb9): (198, "TransitionArrayMap"), - ("RO_SPACE", 0x02f21): (203, "FeedbackVectorMap"), + ("RO_SPACE", 0x02eb9): (197, "TransitionArrayMap"), + ("RO_SPACE", 0x02f21): (202, "FeedbackVectorMap"), ("RO_SPACE", 0x02f89): (131, "ArgumentsMarkerMap"), ("RO_SPACE", 0x03019): (131, "ExceptionMap"), ("RO_SPACE", 0x030a9): (131, "TerminationExceptionMap"), ("RO_SPACE", 0x03141): (131, "OptimizedOutMap"), ("RO_SPACE", 0x031d1): (131, "StaleRegisterMap"), - ("RO_SPACE", 0x03261): (194, "NativeContextMap"), - ("RO_SPACE", 0x032c9): (193, "ModuleContextMap"), - ("RO_SPACE", 0x03331): (191, "EvalContextMap"), - ("RO_SPACE", 0x03399): (195, "ScriptContextMap"), - ("RO_SPACE", 0x03401): (188, "BlockContextMap"), - ("RO_SPACE", 0x03469): (189, "CatchContextMap"), - ("RO_SPACE", 0x034d1): (196, "WithContextMap"), - ("RO_SPACE", 0x03539): (190, "DebugEvaluateContextMap"), - ("RO_SPACE", 0x035a1): (183, "ScriptContextTableMap"), + ("RO_SPACE", 0x03261): (193, "NativeContextMap"), + ("RO_SPACE", 0x032c9): (192, "ModuleContextMap"), + ("RO_SPACE", 0x03331): (190, "EvalContextMap"), + ("RO_SPACE", 0x03399): (194, "ScriptContextMap"), + ("RO_SPACE", 0x03401): (187, "BlockContextMap"), + ("RO_SPACE", 0x03469): (188, "CatchContextMap"), + ("RO_SPACE", 0x034d1): (195, "WithContextMap"), + ("RO_SPACE", 0x03539): (189, "DebugEvaluateContextMap"), + ("RO_SPACE", 0x035a1): (182, "ScriptContextTableMap"), ("RO_SPACE", 0x03609): (151, "FeedbackMetadataArrayMap"), - ("RO_SPACE", 0x03671): (183, "ArrayListMap"), + ("RO_SPACE", 0x03671): (182, "ArrayListMap"), ("RO_SPACE", 0x036d9): (130, "BigIntMap"), - ("RO_SPACE", 0x03741): (184, "BoilerplateDescriptionMap"), + ("RO_SPACE", 0x03741): (183, "BoilerplateDescriptionMap"), ("RO_SPACE", 0x037a9): (137, "BytecodeArrayMap"), - ("RO_SPACE", 0x03811): (201, "CodeDataContainerMap"), + ("RO_SPACE", 0x03811): (200, "CodeDataContainerMap"), ("RO_SPACE", 0x03879): (150, "FixedDoubleArrayMap"), - ("RO_SPACE", 0x038e1): (186, "GlobalDictionaryMap"), - ("RO_SPACE", 0x03949): (202, "ManyClosuresCellMap"), - ("RO_SPACE", 0x039b1): (183, "ModuleInfoMap"), + ("RO_SPACE", 0x038e1): (185, "GlobalDictionaryMap"), + ("RO_SPACE", 0x03949): (201, "ManyClosuresCellMap"), + ("RO_SPACE", 0x039b1): (182, "ModuleInfoMap"), ("RO_SPACE", 0x03a19): (134, "MutableHeapNumberMap"), - ("RO_SPACE", 0x03a81): (186, "NameDictionaryMap"), - ("RO_SPACE", 0x03ae9): (202, "NoClosuresCellMap"), - ("RO_SPACE", 0x03b51): (186, "NumberDictionaryMap"), - ("RO_SPACE", 0x03bb9): (202, "OneClosureCellMap"), - ("RO_SPACE", 0x03c21): (186, "OrderedHashMapMap"), - ("RO_SPACE", 0x03c89): (186, "OrderedHashSetMap"), - ("RO_SPACE", 0x03cf1): (205, "PropertyArrayMap"), - ("RO_SPACE", 0x03d59): (199, "SideEffectCallHandlerInfoMap"), - ("RO_SPACE", 0x03dc1): (199, "SideEffectFreeCallHandlerInfoMap"), - ("RO_SPACE", 0x03e29): (186, "SimpleNumberDictionaryMap"), - ("RO_SPACE", 0x03e91): (183, "SloppyArgumentsElementsMap"), - ("RO_SPACE", 0x03ef9): (208, "SmallOrderedHashMapMap"), - ("RO_SPACE", 0x03f61): (209, "SmallOrderedHashSetMap"), - ("RO_SPACE", 0x03fc9): (186, "StringTableMap"), - ("RO_SPACE", 0x04031): (197, "WeakFixedArrayMap"), - ("RO_SPACE", 0x04099): (212, "WeakArrayListMap"), + ("RO_SPACE", 0x03a81): (185, "NameDictionaryMap"), + ("RO_SPACE", 0x03ae9): (201, "NoClosuresCellMap"), + ("RO_SPACE", 0x03b51): (185, "NumberDictionaryMap"), + ("RO_SPACE", 0x03bb9): (201, "OneClosureCellMap"), + ("RO_SPACE", 0x03c21): (185, "OrderedHashMapMap"), + ("RO_SPACE", 0x03c89): (185, "OrderedHashSetMap"), + ("RO_SPACE", 0x03cf1): (204, "PropertyArrayMap"), + ("RO_SPACE", 0x03d59): (198, "SideEffectCallHandlerInfoMap"), + ("RO_SPACE", 0x03dc1): (198, "SideEffectFreeCallHandlerInfoMap"), + ("RO_SPACE", 0x03e29): (185, "SimpleNumberDictionaryMap"), + ("RO_SPACE", 0x03e91): (182, "SloppyArgumentsElementsMap"), + ("RO_SPACE", 0x03ef9): (207, "SmallOrderedHashMapMap"), + ("RO_SPACE", 0x03f61): (208, "SmallOrderedHashSetMap"), + ("RO_SPACE", 0x03fc9): (185, "StringTableMap"), + ("RO_SPACE", 0x04031): (196, "WeakFixedArrayMap"), + ("RO_SPACE", 0x04099): (211, "WeakArrayListMap"), ("RO_SPACE", 0x04101): (106, "NativeSourceStringMap"), ("RO_SPACE", 0x04169): (64, "StringMap"), ("RO_SPACE", 0x041d1): (73, "ConsOneByteStringMap"), @@ -261,9 +260,9 @@ KNOWN_MAPS = { ("RO_SPACE", 0x04d31): (149, "FixedBigUint64ArrayMap"), ("RO_SPACE", 0x04d99): (148, "FixedBigInt64ArrayMap"), ("RO_SPACE", 0x04e01): (131, "SelfReferenceMarkerMap"), - ("RO_SPACE", 0x04e81): (173, "Tuple2Map"), - ("RO_SPACE", 0x04ef9): (171, "ScriptMap"), - ("RO_SPACE", 0x04f61): (163, "InterceptorInfoMap"), + ("RO_SPACE", 0x04e81): (172, "Tuple2Map"), + ("RO_SPACE", 0x04ef9): (170, "ScriptMap"), + ("RO_SPACE", 0x04f61): (162, "InterceptorInfoMap"), ("RO_SPACE", 0x08e59): (154, "AccessorInfoMap"), ("RO_SPACE", 0x09069): (153, "AccessCheckInfoMap"), ("RO_SPACE", 0x090d1): (155, "AccessorPairMap"), @@ -271,26 +270,25 @@ KNOWN_MAPS = { ("RO_SPACE", 0x091a1): (157, "AllocationMementoMap"), ("RO_SPACE", 0x09209): (158, "AllocationSiteMap"), ("RO_SPACE", 0x09271): (159, "AsyncGeneratorRequestMap"), - ("RO_SPACE", 0x092d9): (160, "ContextExtensionMap"), - ("RO_SPACE", 0x09341): (161, "DebugInfoMap"), - ("RO_SPACE", 0x093a9): (162, "FunctionTemplateInfoMap"), - ("RO_SPACE", 0x09411): (164, "InterpreterDataMap"), - ("RO_SPACE", 0x09479): (165, "ModuleInfoEntryMap"), - ("RO_SPACE", 0x094e1): (166, "ModuleMap"), - ("RO_SPACE", 0x09549): (167, "ObjectTemplateInfoMap"), - ("RO_SPACE", 0x095b1): (168, "PromiseCapabilityMap"), - ("RO_SPACE", 0x09619): (169, "PromiseReactionMap"), - ("RO_SPACE", 0x09681): (170, "PrototypeInfoMap"), - ("RO_SPACE", 0x096e9): (172, "StackFrameInfoMap"), - ("RO_SPACE", 0x09751): (174, "Tuple3Map"), - ("RO_SPACE", 0x097b9): (175, "WasmCompiledModuleMap"), - ("RO_SPACE", 0x09821): (176, "WasmDebugInfoMap"), - ("RO_SPACE", 0x09889): (177, "WasmSharedModuleDataMap"), - ("RO_SPACE", 0x098f1): (178, "CallableTaskMap"), - ("RO_SPACE", 0x09959): (179, "CallbackTaskMap"), - ("RO_SPACE", 0x099c1): (180, "PromiseFulfillReactionJobTaskMap"), - ("RO_SPACE", 0x09a29): (181, "PromiseRejectReactionJobTaskMap"), - ("RO_SPACE", 0x09a91): (182, "PromiseResolveThenableJobTaskMap"), + ("RO_SPACE", 0x092d9): (160, "DebugInfoMap"), + ("RO_SPACE", 0x09341): (161, "FunctionTemplateInfoMap"), + ("RO_SPACE", 0x093a9): (163, "InterpreterDataMap"), + ("RO_SPACE", 0x09411): (164, "ModuleInfoEntryMap"), + ("RO_SPACE", 0x09479): (165, "ModuleMap"), + ("RO_SPACE", 0x094e1): (166, "ObjectTemplateInfoMap"), + ("RO_SPACE", 0x09549): (167, "PromiseCapabilityMap"), + ("RO_SPACE", 0x095b1): (168, "PromiseReactionMap"), + ("RO_SPACE", 0x09619): (169, "PrototypeInfoMap"), + ("RO_SPACE", 0x09681): (171, "StackFrameInfoMap"), + ("RO_SPACE", 0x096e9): (173, "Tuple3Map"), + ("RO_SPACE", 0x09751): (174, "WasmCompiledModuleMap"), + ("RO_SPACE", 0x097b9): (175, "WasmDebugInfoMap"), + ("RO_SPACE", 0x09821): (176, "WasmSharedModuleDataMap"), + ("RO_SPACE", 0x09889): (177, "CallableTaskMap"), + ("RO_SPACE", 0x098f1): (178, "CallbackTaskMap"), + ("RO_SPACE", 0x09959): (179, "PromiseFulfillReactionJobTaskMap"), + ("RO_SPACE", 0x099c1): (180, "PromiseRejectReactionJobTaskMap"), + ("RO_SPACE", 0x09a29): (181, "PromiseResolveThenableJobTaskMap"), ("MAP_SPACE", 0x02201): (1057, "ExternalMap"), ("MAP_SPACE", 0x02259): (1072, "JSMessageObjectMap"), }