Commit e4b394a1 authored by Jakob Gruber's avatar Jakob Gruber Committed by Commit Bot

Revert "Reland "[runtime] Slightly optimize creation of class literals.""

This reverts commit 22932d6b.

Reason for revert: TSAN https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/18232

Original change's description:
> Reland "[runtime] Slightly optimize creation of class literals."
> 
> Bug: v8:5799
> Change-Id: I782ec131c7194aef20942a19750168a974913c3f
> Reviewed-on: https://chromium-review.googlesource.com/757337
> Commit-Queue: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Toon Verwaest <verwaest@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#49291}

TBR=ulan@chromium.org,rmcilroy@chromium.org,jarin@chromium.org,ishell@chromium.org,verwaest@chromium.org

Change-Id: I0742d25b0e2364efc696d19492ba20614a3821fa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:5799
Reviewed-on: https://chromium-review.googlesource.com/763458Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49303}
parent a3a67fe7
...@@ -1799,7 +1799,6 @@ v8_source_set("v8_base") { ...@@ -1799,7 +1799,6 @@ v8_source_set("v8_base") {
"src/objects/js-array.h", "src/objects/js-array.h",
"src/objects/js-regexp-inl.h", "src/objects/js-regexp-inl.h",
"src/objects/js-regexp.h", "src/objects/js-regexp.h",
"src/objects/literal-objects-inl.h",
"src/objects/literal-objects.cc", "src/objects/literal-objects.cc",
"src/objects/literal-objects.h", "src/objects/literal-objects.h",
"src/objects/map-inl.h", "src/objects/map-inl.h",
......
...@@ -828,17 +828,6 @@ bool Literal::IsPropertyName() const { ...@@ -828,17 +828,6 @@ bool Literal::IsPropertyName() const {
return !string_->AsArrayIndex(&index); return !string_->AsArrayIndex(&index);
} }
bool Literal::AsArrayIndex(uint32_t* index) const {
if (type() == kString) {
return string_->AsArrayIndex(index);
} else {
DCHECK_EQ(kSmi, type());
DCHECK_LE(0, smi_);
*index = smi_;
return true;
}
}
bool Literal::ToUint32(uint32_t* value) const { bool Literal::ToUint32(uint32_t* value) const {
switch (type()) { switch (type()) {
case kSmi: case kSmi:
......
...@@ -1006,10 +1006,6 @@ class Literal final : public Expression { ...@@ -1006,10 +1006,6 @@ class Literal final : public Expression {
// Returns true if literal represents a property name (i.e. cannot be parsed // Returns true if literal represents a property name (i.e. cannot be parsed
// as array indices). // as array indices).
bool IsPropertyName() const; bool IsPropertyName() const;
// Returns true if literal represents an array index.
bool AsArrayIndex(uint32_t* index) const;
const AstRawString* AsRawPropertyName() { const AstRawString* AsRawPropertyName() {
DCHECK(IsPropertyName()); DCHECK(IsPropertyName());
return string_; return string_;
......
...@@ -191,7 +191,6 @@ enum class ObjectType { ...@@ -191,7 +191,6 @@ enum class ObjectType {
#undef ENUM_STRUCT_ELEMENT #undef ENUM_STRUCT_ELEMENT
class AccessCheckNeeded; class AccessCheckNeeded;
class ClassBoilerplate;
class CompilationCacheTable; class CompilationCacheTable;
class Constructor; class Constructor;
class Filler; class Filler;
......
...@@ -3115,7 +3115,6 @@ Handle<Map> Factory::CreateClassFunctionMap(Handle<JSFunction> empty_function) { ...@@ -3115,7 +3115,6 @@ Handle<Map> Factory::CreateClassFunctionMap(Handle<JSFunction> empty_function) {
Handle<Map> map = NewMap(JS_FUNCTION_TYPE, JSFunction::kSizeWithPrototype); Handle<Map> map = NewMap(JS_FUNCTION_TYPE, JSFunction::kSizeWithPrototype);
map->set_has_prototype_slot(true); map->set_has_prototype_slot(true);
map->set_is_constructor(true); map->set_is_constructor(true);
map->set_is_prototype_map(true);
map->set_is_callable(); map->set_is_callable();
Map::SetPrototype(map, empty_function); Map::SetPrototype(map, empty_function);
...@@ -3124,8 +3123,8 @@ Handle<Map> Factory::CreateClassFunctionMap(Handle<JSFunction> empty_function) { ...@@ -3124,8 +3123,8 @@ Handle<Map> Factory::CreateClassFunctionMap(Handle<JSFunction> empty_function) {
// //
Map::EnsureDescriptorSlack(map, 2); Map::EnsureDescriptorSlack(map, 2);
PropertyAttributes ro_attribs = PropertyAttributes rw_attribs =
static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE | READ_ONLY); static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE);
PropertyAttributes roc_attribs = PropertyAttributes roc_attribs =
static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY); static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY);
...@@ -3139,7 +3138,7 @@ Handle<Map> Factory::CreateClassFunctionMap(Handle<JSFunction> empty_function) { ...@@ -3139,7 +3138,7 @@ Handle<Map> Factory::CreateClassFunctionMap(Handle<JSFunction> empty_function) {
{ {
// Add prototype accessor. // Add prototype accessor.
Descriptor d = Descriptor::AccessorConstant( Descriptor d = Descriptor::AccessorConstant(
prototype_string(), function_prototype_accessor(), ro_attribs); prototype_string(), function_prototype_accessor(), rw_attribs);
map->AppendDescriptor(&d); map->AppendDescriptor(&d);
} }
return map; return map;
......
...@@ -283,7 +283,6 @@ using v8::MemoryPressureLevel; ...@@ -283,7 +283,6 @@ using v8::MemoryPressureLevel;
V(CatchContextMap) \ V(CatchContextMap) \
V(CellMap) \ V(CellMap) \
V(CodeMap) \ V(CodeMap) \
V(DescriptorArrayMap) \
V(EmptyByteArray) \ V(EmptyByteArray) \
V(EmptyDescriptorArray) \ V(EmptyDescriptorArray) \
V(EmptyFixedArray) \ V(EmptyFixedArray) \
......
This diff is collapsed.
...@@ -153,6 +153,9 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -153,6 +153,9 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
void VisitArgumentsObject(Variable* variable); void VisitArgumentsObject(Variable* variable);
void VisitRestArgumentsArray(Variable* rest); void VisitRestArgumentsArray(Variable* rest);
void VisitCallSuper(Call* call); void VisitCallSuper(Call* call);
void VisitClassLiteralProperties(ClassLiteral* expr, Register constructor,
Register prototype);
void BuildClassLiteralNameProperty(ClassLiteral* expr, Register constructor);
void BuildClassLiteral(ClassLiteral* expr); void BuildClassLiteral(ClassLiteral* expr);
void VisitNewTargetVariable(Variable* variable); void VisitNewTargetVariable(Variable* variable);
void VisitThisFunctionVariable(Variable* variable); void VisitThisFunctionVariable(Variable* variable);
...@@ -305,7 +308,6 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -305,7 +308,6 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
native_function_literals_; native_function_literals_;
ZoneVector<std::pair<ObjectLiteral*, size_t>> object_literals_; ZoneVector<std::pair<ObjectLiteral*, size_t>> object_literals_;
ZoneVector<std::pair<ArrayLiteral*, size_t>> array_literals_; ZoneVector<std::pair<ArrayLiteral*, size_t>> array_literals_;
ZoneVector<std::pair<ClassLiteral*, size_t>> class_literals_;
ZoneVector<std::pair<GetTemplateObject*, size_t>> template_objects_; ZoneVector<std::pair<GetTemplateObject*, size_t>> template_objects_;
ControlScope* execution_control_; ControlScope* execution_control_;
......
...@@ -152,8 +152,6 @@ bool HeapObject::IsJSGeneratorObject() const { ...@@ -152,8 +152,6 @@ bool HeapObject::IsJSGeneratorObject() const {
bool HeapObject::IsBoilerplateDescription() const { return IsFixedArray(); } bool HeapObject::IsBoilerplateDescription() const { return IsFixedArray(); }
bool HeapObject::IsClassBoilerplate() const { return IsFixedArray(); }
bool HeapObject::IsExternal() const { bool HeapObject::IsExternal() const {
return map()->FindRootMap() == GetHeap()->external_map(); return map()->FindRootMap() == GetHeap()->external_map();
} }
......
...@@ -1145,9 +1145,6 @@ void SharedFunctionInfo::SharedFunctionInfoPrint(std::ostream& os) { // NOLINT ...@@ -1145,9 +1145,6 @@ void SharedFunctionInfo::SharedFunctionInfoPrint(std::ostream& os) { // NOLINT
os << "<no-shared-name>"; os << "<no-shared-name>";
} }
os << "\n - kind = " << kind(); os << "\n - kind = " << kind();
if (needs_home_object()) {
os << "\n - needs_home_object";
}
os << "\n - function_map_index = " << function_map_index(); os << "\n - function_map_index = " << function_map_index();
os << "\n - formal_parameter_count = " << internal_formal_parameter_count(); os << "\n - formal_parameter_count = " << internal_formal_parameter_count();
os << "\n - expected_nof_properties = " << expected_nof_properties(); os << "\n - expected_nof_properties = " << expected_nof_properties();
......
...@@ -15619,7 +15619,6 @@ template <typename Derived, typename Shape> ...@@ -15619,7 +15619,6 @@ template <typename Derived, typename Shape>
void Dictionary<Derived, Shape>::Print() { void Dictionary<Derived, Shape>::Print() {
OFStream os(stdout); OFStream os(stdout);
Print(os); Print(os);
os << std::endl;
} }
#endif #endif
...@@ -17408,23 +17407,6 @@ Handle<Derived> Dictionary<Derived, Shape>::AtPut(Handle<Derived> dictionary, ...@@ -17408,23 +17407,6 @@ Handle<Derived> Dictionary<Derived, Shape>::AtPut(Handle<Derived> dictionary,
return dictionary; return dictionary;
} }
template <typename Derived, typename Shape>
Handle<Derived>
BaseNameDictionary<Derived, Shape>::AddNoUpdateNextEnumerationIndex(
Handle<Derived> dictionary, Key key, Handle<Object> value,
PropertyDetails details, int* entry_out) {
// Insert element at empty or deleted entry
return Dictionary<Derived, Shape>::Add(dictionary, key, value, details,
entry_out);
}
// GCC workaround: Explicitly instantiate template method for NameDictionary
// to avoid "undefined reference" issues during linking.
template Handle<NameDictionary>
BaseNameDictionary<NameDictionary, NameDictionaryShape>::
AddNoUpdateNextEnumerationIndex(Handle<NameDictionary>, Handle<Name>,
Handle<Object>, PropertyDetails, int*);
template <typename Derived, typename Shape> template <typename Derived, typename Shape>
Handle<Derived> BaseNameDictionary<Derived, Shape>::Add( Handle<Derived> BaseNameDictionary<Derived, Shape>::Add(
Handle<Derived> dictionary, Key key, Handle<Object> value, Handle<Derived> dictionary, Key key, Handle<Object> value,
...@@ -17436,7 +17418,7 @@ Handle<Derived> BaseNameDictionary<Derived, Shape>::Add( ...@@ -17436,7 +17418,7 @@ Handle<Derived> BaseNameDictionary<Derived, Shape>::Add(
int index = dictionary->NextEnumerationIndex(); int index = dictionary->NextEnumerationIndex();
details = details.set_index(index); details = details.set_index(index);
dictionary->SetNextEnumerationIndex(index + 1); dictionary->SetNextEnumerationIndex(index + 1);
return AddNoUpdateNextEnumerationIndex(dictionary, key, value, details, return Dictionary<Derived, Shape>::Add(dictionary, key, value, details,
entry_out); entry_out);
} }
......
...@@ -977,7 +977,6 @@ template <class C> inline bool Is(Object* obj); ...@@ -977,7 +977,6 @@ template <class C> inline bool Is(Object* obj);
V(Callable) \ V(Callable) \
V(CallHandlerInfo) \ V(CallHandlerInfo) \
V(Cell) \ V(Cell) \
V(ClassBoilerplate) \
V(Code) \ V(Code) \
V(CodeDataContainer) \ V(CodeDataContainer) \
V(CompilationCacheTable) \ V(CompilationCacheTable) \
......
...@@ -172,10 +172,6 @@ class BaseNameDictionary : public Dictionary<Derived, Shape> { ...@@ -172,10 +172,6 @@ class BaseNameDictionary : public Dictionary<Derived, Shape> {
// Ensure enough space for n additional elements. // Ensure enough space for n additional elements.
static Handle<Derived> EnsureCapacity(Handle<Derived> dictionary, int n); static Handle<Derived> EnsureCapacity(Handle<Derived> dictionary, int n);
MUST_USE_RESULT static Handle<Derived> AddNoUpdateNextEnumerationIndex(
Handle<Derived> dictionary, Key key, Handle<Object> value,
PropertyDetails details, int* entry_out = nullptr);
MUST_USE_RESULT static Handle<Derived> Add(Handle<Derived> dictionary, MUST_USE_RESULT static Handle<Derived> Add(Handle<Derived> dictionary,
Key key, Handle<Object> value, Key key, Handle<Object> value,
PropertyDetails details, PropertyDetails details,
......
// Copyright 2017 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef V8_LITERAL_OBJECTS_INL_H_
#define V8_LITERAL_OBJECTS_INL_H_
#include "src/objects-inl.h"
#include "src/objects/literal-objects.h"
// Has to be the last include (doesn't have include guards):
#include "src/objects/object-macros.h"
namespace v8 {
namespace internal {
CAST_ACCESSOR(ClassBoilerplate)
BIT_FIELD_ACCESSORS(ClassBoilerplate, flags, install_class_name_accessor,
ClassBoilerplate::Flags::InstallClassNameAccessorBit)
BIT_FIELD_ACCESSORS(ClassBoilerplate, flags, arguments_count,
ClassBoilerplate::Flags::ArgumentsCountBits)
SMI_ACCESSORS(ClassBoilerplate, flags,
FixedArray::OffsetOfElementAt(kFlagsIndex));
ACCESSORS(ClassBoilerplate, static_properties_template, Object,
FixedArray::OffsetOfElementAt(kClassPropertiesTemplateIndex));
ACCESSORS(ClassBoilerplate, static_elements_template, Object,
FixedArray::OffsetOfElementAt(kClassElementsTemplateIndex));
ACCESSORS(ClassBoilerplate, static_computed_properties, FixedArray,
FixedArray::OffsetOfElementAt(kClassComputedPropertiesIndex));
ACCESSORS(ClassBoilerplate, instance_properties_template, Object,
FixedArray::OffsetOfElementAt(kPrototypePropertiesTemplateIndex));
ACCESSORS(ClassBoilerplate, instance_elements_template, Object,
FixedArray::OffsetOfElementAt(kPrototypeElementsTemplateIndex));
ACCESSORS(ClassBoilerplate, instance_computed_properties, FixedArray,
FixedArray::OffsetOfElementAt(kPrototypeComputedPropertiesIndex));
} // namespace internal
} // namespace v8
#include "src/objects/object-macros-undef.h"
#endif // V8_LITERAL_OBJECTS_INL_H_
This diff is collapsed.
...@@ -13,8 +13,6 @@ ...@@ -13,8 +13,6 @@
namespace v8 { namespace v8 {
namespace internal { namespace internal {
class ClassLiteral;
// BoilerplateDescription is a list of properties consisting of name value // BoilerplateDescription is a list of properties consisting of name value
// pairs. In addition to the properties, it provides the projected number // pairs. In addition to the properties, it provides the projected number
// of properties in the backing store. This number includes properties with // of properties in the backing store. This number includes properties with
...@@ -58,79 +56,6 @@ class ConstantElementsPair : public Tuple2 { ...@@ -58,79 +56,6 @@ class ConstantElementsPair : public Tuple2 {
DISALLOW_IMPLICIT_CONSTRUCTORS(ConstantElementsPair); DISALLOW_IMPLICIT_CONSTRUCTORS(ConstantElementsPair);
}; };
class ClassBoilerplate : public FixedArray {
public:
enum ValueKind { kData, kGetter, kSetter };
struct Flags {
#define FLAGS_BIT_FIELDS(V, _) \
V(InstallClassNameAccessorBit, bool, 1, _) \
V(ArgumentsCountBits, int, 30, _)
DEFINE_BIT_FIELDS(FLAGS_BIT_FIELDS)
#undef FLAGS_BIT_FIELDS
};
struct ComputedEntryFlags {
#define COMPUTED_ENTRY_BIT_FIELDS(V, _) \
V(ValueKindBits, ValueKind, 2, _) \
V(KeyIndexBits, unsigned, 29, _)
DEFINE_BIT_FIELDS(COMPUTED_ENTRY_BIT_FIELDS)
#undef COMPUTED_ENTRY_BIT_FIELDS
};
enum DefineClassArgumentsIndices {
kConstructorArgumentIndex = 1,
kPrototypeArgumentIndex = 2,
// The index of a first dynamic argument passed to Runtime::kDefineClass
// function. The dynamic arguments are consist of method closures and
// computed property names.
kFirstDynamicArgumentIndex = 3,
};
static const int kMinimumClassPropertiesCount = 6;
static const int kMinimumPrototypePropertiesCount = 1;
DECL_CAST(ClassBoilerplate)
DECL_BOOLEAN_ACCESSORS(install_class_name_accessor)
DECL_INT_ACCESSORS(arguments_count)
DECL_ACCESSORS(static_properties_template, Object)
DECL_ACCESSORS(static_elements_template, Object)
DECL_ACCESSORS(static_computed_properties, FixedArray)
DECL_ACCESSORS(instance_properties_template, Object)
DECL_ACCESSORS(instance_elements_template, Object)
DECL_ACCESSORS(instance_computed_properties, FixedArray)
static void AddToPropertiesTemplate(Isolate* isolate,
Handle<NameDictionary> dictionary,
Handle<Name> name, int key_index,
ValueKind value_kind, Object* value);
static void AddToElementsTemplate(Isolate* isolate,
Handle<NumberDictionary> dictionary,
uint32_t key, int key_index,
ValueKind value_kind, Object* value);
static Handle<ClassBoilerplate> BuildClassBoilerplate(Isolate* isolate,
ClassLiteral* expr);
enum {
kFlagsIndex,
kClassPropertiesTemplateIndex,
kClassElementsTemplateIndex,
kClassComputedPropertiesIndex,
kPrototypePropertiesTemplateIndex,
kPrototypeElementsTemplateIndex,
kPrototypeComputedPropertiesIndex,
kBoileplateLength // last element
};
static const int kFullComputedEntrySize = 2;
private:
DECL_INT_ACCESSORS(flags)
};
} // namespace internal } // namespace internal
} // namespace v8 } // namespace v8
......
...@@ -496,18 +496,16 @@ class SharedFunctionInfo : public HeapObject { ...@@ -496,18 +496,16 @@ class SharedFunctionInfo : public HeapObject {
DEFINE_BIT_FIELDS(DEBUGGER_HINTS_BIT_FIELDS) DEFINE_BIT_FIELDS(DEBUGGER_HINTS_BIT_FIELDS)
#undef DEBUGGER_HINTS_BIT_FIELDS #undef DEBUGGER_HINTS_BIT_FIELDS
// Indicates that this function uses a super property (or an eval that may
// use a super property).
// This is needed to set up the [[HomeObject]] on the function instance.
inline bool needs_home_object() const;
private: private:
// [raw_name]: Function name string or kNoSharedNameSentinel. // [raw_name]: Function name string or kNoSharedNameSentinel.
DECL_ACCESSORS(raw_name, Object) DECL_ACCESSORS(raw_name, Object)
inline void set_kind(FunctionKind kind); inline void set_kind(FunctionKind kind);
inline void set_needs_home_object(bool value); // Indicates that this function uses a super property (or an eval that may
// use a super property).
// This is needed to set up the [[HomeObject]] on the function instance.
DECL_BOOLEAN_ACCESSORS(needs_home_object)
friend class Factory; friend class Factory;
friend class V8HeapExplorer; friend class V8HeapExplorer;
......
This diff is collapsed.
...@@ -80,21 +80,23 @@ namespace internal { ...@@ -80,21 +80,23 @@ namespace internal {
F(BigIntToNumber, 1, 1) \ F(BigIntToNumber, 1, 1) \
F(BigIntUnaryOp, 2, 1) F(BigIntUnaryOp, 2, 1)
#define FOR_EACH_INTRINSIC_CLASSES(F) \ #define FOR_EACH_INTRINSIC_CLASSES(F) \
F(ThrowUnsupportedSuperError, 0, 1) \ F(ThrowUnsupportedSuperError, 0, 1) \
F(ThrowConstructorNonCallableError, 1, 1) \ F(ThrowConstructorNonCallableError, 1, 1) \
F(ThrowStaticPrototypeError, 0, 1) \ F(ThrowStaticPrototypeError, 0, 1) \
F(ThrowSuperAlreadyCalledError, 0, 1) \ F(ThrowSuperAlreadyCalledError, 0, 1) \
F(ThrowSuperNotCalled, 0, 1) \ F(ThrowSuperNotCalled, 0, 1) \
F(ThrowNotSuperConstructor, 2, 1) \ F(ThrowNotSuperConstructor, 2, 1) \
F(HomeObjectSymbol, 0, 1) \ F(HomeObjectSymbol, 0, 1) \
F(DefineClass, -1 /* >= 3 */, 1) \ F(DefineClass, 4, 1) \
F(LoadFromSuper, 3, 1) \ F(InstallClassNameAccessor, 1, 1) \
F(LoadKeyedFromSuper, 3, 1) \ F(InstallClassNameAccessorWithCheck, 1, 1) \
F(StoreToSuper_Strict, 4, 1) \ F(LoadFromSuper, 3, 1) \
F(StoreToSuper_Sloppy, 4, 1) \ F(LoadKeyedFromSuper, 3, 1) \
F(StoreKeyedToSuper_Strict, 4, 1) \ F(StoreToSuper_Strict, 4, 1) \
F(StoreKeyedToSuper_Sloppy, 4, 1) \ F(StoreToSuper_Sloppy, 4, 1) \
F(StoreKeyedToSuper_Strict, 4, 1) \
F(StoreKeyedToSuper_Sloppy, 4, 1) \
F(GetSuperConstructor, 1, 1) F(GetSuperConstructor, 1, 1)
#define FOR_EACH_INTRINSIC_COLLECTIONS(F) \ #define FOR_EACH_INTRINSIC_COLLECTIONS(F) \
......
...@@ -1174,7 +1174,6 @@ ...@@ -1174,7 +1174,6 @@
'objects/js-regexp.h', 'objects/js-regexp.h',
'objects/js-regexp-inl.h', 'objects/js-regexp-inl.h',
'objects/literal-objects.cc', 'objects/literal-objects.cc',
'objects/literal-objects-inl.h',
'objects/literal-objects.h', 'objects/literal-objects.h',
'objects/map-inl.h', 'objects/map-inl.h',
'objects/map.h', 'objects/map.h',
......
...@@ -12,28 +12,40 @@ snippet: " ...@@ -12,28 +12,40 @@ snippet: "
speak() { console.log(this.name + ' is speaking.'); } speak() { console.log(this.name + ' is speaking.'); }
} }
" "
frame size: 6 frame size: 8
parameter count: 1 parameter count: 1
bytecode array length: 31 bytecode array length: 67
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(2),
B(LdaTheHole), B(LdaTheHole),
B(Star), R(4),
B(CreateClosure), U8(1), U8(0), U8(2),
B(Star), R(3), B(Star), R(3),
B(LdaConstant), U8(0), B(LdaSmi), I8(34),
B(Star), R(2), B(Star), R(5),
B(CreateClosure), U8(2), U8(1), U8(2), B(Wide), B(LdaSmi), I16(148),
B(Star), R(6),
B(Mov), R(2), R(4),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
B(Star), R(3),
B(LdaConstant), U8(1),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), B(CreateClosure), U8(2), U8(1), U8(2),
B(Star), R(6),
B(LdaSmi), I8(2),
B(Star), R(7),
B(Ldar), R(6),
B(StaDataPropertyInLiteral), R(3), R(5), U8(1), U8(2),
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
B(Star), R(0), B(Star), R(0),
B(Star), R(1), B(Star), R(1),
B(LdaUndefined), B(LdaUndefined),
/* 149 S> */ B(Return), /* 149 S> */ B(Return),
] ]
constant pool: [ constant pool: [
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["speak"],
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
] ]
handlers: [ handlers: [
...@@ -46,28 +58,40 @@ snippet: " ...@@ -46,28 +58,40 @@ snippet: "
speak() { console.log(this.name + ' is speaking.'); } speak() { console.log(this.name + ' is speaking.'); }
} }
" "
frame size: 6 frame size: 8
parameter count: 1 parameter count: 1
bytecode array length: 31 bytecode array length: 67
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(2),
B(LdaTheHole), B(LdaTheHole),
B(Star), R(4),
B(CreateClosure), U8(1), U8(0), U8(2),
B(Star), R(3), B(Star), R(3),
B(LdaConstant), U8(0), B(LdaSmi), I8(34),
B(Star), R(2),
B(CreateClosure), U8(2), U8(1), U8(2),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), B(Wide), B(LdaSmi), I16(148),
B(Star), R(6),
B(Mov), R(2), R(4),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
B(Star), R(3),
B(LdaConstant), U8(1),
B(Star), R(5),
B(CreateClosure), U8(2), U8(1), U8(2),
B(Star), R(6),
B(LdaSmi), I8(2),
B(Star), R(7),
B(Ldar), R(6),
B(StaDataPropertyInLiteral), R(3), R(5), U8(1), U8(2),
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
B(Star), R(0), B(Star), R(0),
B(Star), R(1), B(Star), R(1),
B(LdaUndefined), B(LdaUndefined),
/* 149 S> */ B(Return), /* 149 S> */ B(Return),
] ]
constant pool: [ constant pool: [
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["speak"],
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
] ]
handlers: [ handlers: [
...@@ -82,9 +106,9 @@ snippet: " ...@@ -82,9 +106,9 @@ snippet: "
static [n1]() { return n1; } static [n1]() { return n1; }
} }
" "
frame size: 10 frame size: 9
parameter count: 1 parameter count: 1
bytecode array length: 68 bytecode array length: 106
bytecodes: [ bytecodes: [
B(CreateFunctionContext), U8(2), B(CreateFunctionContext), U8(2),
B(PushContext), R(2), B(PushContext), R(2),
...@@ -93,25 +117,36 @@ bytecodes: [ ...@@ -93,25 +117,36 @@ bytecodes: [
/* 43 E> */ B(StaCurrentContextSlot), U8(4), /* 43 E> */ B(StaCurrentContextSlot), U8(4),
/* 57 S> */ B(LdaConstant), U8(1), /* 57 S> */ B(LdaConstant), U8(1),
/* 57 E> */ B(StaCurrentContextSlot), U8(5), /* 57 E> */ B(StaCurrentContextSlot), U8(5),
B(CreateClosure), U8(2), U8(0), U8(2),
B(Star), R(3),
B(LdaTheHole), B(LdaTheHole),
B(Star), R(5),
B(CreateClosure), U8(3), U8(0), U8(2),
B(Star), R(4), B(Star), R(4),
B(LdaConstant), U8(2), B(LdaSmi), I8(62),
B(Star), R(3), B(Star), R(6),
B(Wide), B(LdaSmi), I16(128),
B(Star), R(7),
B(Mov), R(3), R(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
/* 75 E> */ B(ToName), R(6), /* 75 E> */ B(ToName), R(6),
B(CreateClosure), U8(4), U8(1), U8(2), B(CreateClosure), U8(3), U8(1), U8(2),
B(Star), R(7), B(Star), R(7),
B(LdaSmi), I8(2),
B(Star), R(8),
B(Ldar), R(7),
B(StaDataPropertyInLiteral), R(4), R(6), U8(3), U8(2),
B(LdaImmutableCurrentContextSlot), U8(5), B(LdaImmutableCurrentContextSlot), U8(5),
/* 106 E> */ B(ToName), R(8), /* 106 E> */ B(ToName), R(6),
B(LdaConstant), U8(5), B(LdaConstant), U8(4),
B(TestEqualStrictNoFeedback), R(8), B(TestEqualStrictNoFeedback), R(6),
B(Mov), R(3), R(5),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
B(CreateClosure), U8(6), U8(2), U8(2), B(CreateClosure), U8(5), U8(4), U8(2),
B(Star), R(9), B(StaDataPropertyInLiteral), R(5), R(6), U8(3), U8(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(7), B(CallRuntime), U16(Runtime::kInstallClassNameAccessorWithCheck), R(3), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
B(Star), R(0), B(Star), R(0),
B(Star), R(1), B(Star), R(1),
B(LdaUndefined), B(LdaUndefined),
...@@ -120,7 +155,6 @@ bytecodes: [ ...@@ -120,7 +155,6 @@ bytecodes: [
constant pool: [ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"],
...@@ -135,29 +169,34 @@ snippet: " ...@@ -135,29 +169,34 @@ snippet: "
class C { constructor() { count++; }} class C { constructor() { count++; }}
return new C(); return new C();
" "
frame size: 6 frame size: 8
parameter count: 1 parameter count: 1
bytecode array length: 36 bytecode array length: 55
bytecodes: [ bytecodes: [
B(CreateFunctionContext), U8(1), B(CreateFunctionContext), U8(1),
B(PushContext), R(2), B(PushContext), R(2),
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 46 S> */ B(LdaZero), /* 46 S> */ B(LdaZero),
/* 46 E> */ B(StaCurrentContextSlot), U8(4), /* 46 E> */ B(StaCurrentContextSlot), U8(4),
B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(3),
B(LdaTheHole), B(LdaTheHole),
B(Star), R(5),
B(CreateClosure), U8(1), U8(0), U8(2),
B(Star), R(4), B(Star), R(4),
B(LdaConstant), U8(0), B(LdaSmi), I8(49),
B(Star), R(3), B(Star), R(6),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(3), B(LdaSmi), I8(86),
B(Star), R(7),
B(Mov), R(3), R(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4),
B(Star), R(4),
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(3), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
B(Star), R(0), B(Star), R(0),
B(Star), R(1), B(Star), R(1),
/* 94 S> */ B(Construct), R(1), R(0), U8(0), U8(1), /* 94 S> */ B(Construct), R(1), R(0), U8(0), U8(1),
/* 102 S> */ B(Return), /* 102 S> */ B(Return),
] ]
constant pool: [ constant pool: [
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
] ]
handlers: [ handlers: [
...@@ -168,37 +207,52 @@ snippet: " ...@@ -168,37 +207,52 @@ snippet: "
(class {}) (class {})
class E { static name () {}} class E { static name () {}}
" "
frame size: 6 frame size: 8
parameter count: 1 parameter count: 1
bytecode array length: 49 bytecode array length: 92
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(LdaTheHole), /* 34 S> */ B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(4), B(Star), R(2),
B(CreateClosure), U8(1), U8(0), U8(2), B(LdaTheHole),
B(Star), R(3),
B(LdaSmi), I8(35),
B(Star), R(5),
B(LdaSmi), I8(43),
B(Star), R(6),
B(Mov), R(2), R(4),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
B(Star), R(3), B(Star), R(3),
B(LdaConstant), U8(0), B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
B(CreateClosure), U8(1), U8(1), U8(2),
B(Star), R(2), B(Star), R(2),
B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(3),
B(LdaTheHole), B(LdaTheHole),
B(Star), R(4), B(Star), R(3),
B(CreateClosure), U8(3), U8(1), U8(2), B(LdaSmi), I8(45),
B(Star), R(5),
B(LdaSmi), I8(73),
B(Star), R(6),
B(Mov), R(2), R(4),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
B(Star), R(3), B(Star), R(3),
B(LdaConstant), U8(2), B(LdaConstant), U8(2),
B(Star), R(2),
B(CreateClosure), U8(4), U8(2), U8(2),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), B(CreateClosure), U8(3), U8(2), U8(2),
B(Star), R(6),
B(LdaSmi), I8(2),
B(Star), R(7),
B(Ldar), R(6),
B(StaDataPropertyInLiteral), R(4), R(5), U8(1), U8(3),
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
B(Star), R(0), B(Star), R(0),
B(Star), R(1), B(Star), R(1),
B(LdaUndefined), B(LdaUndefined),
/* 74 S> */ B(Return), /* 74 S> */ B(Return),
] ]
constant pool: [ constant pool: [
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["name"],
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
] ]
handlers: [ handlers: [
......
...@@ -505,9 +505,9 @@ handlers: [ ...@@ -505,9 +505,9 @@ handlers: [
snippet: " snippet: "
export default (class {}); export default (class {});
" "
frame size: 6 frame size: 8
parameter count: 2 parameter count: 2
bytecode array length: 121 bytecode array length: 140
bytecodes: [ bytecodes: [
B(Ldar), R(1), B(Ldar), R(1),
B(JumpIfUndefined), U8(18), B(JumpIfUndefined), U8(18),
...@@ -548,13 +548,19 @@ bytecodes: [ ...@@ -548,13 +548,19 @@ bytecodes: [
/* 26 S> */ B(Return), /* 26 S> */ B(Return),
B(Ldar), R(3), B(Ldar), R(3),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
B(CreateClosure), U8(4), U8(0), U8(0),
B(Star), R(3),
B(LdaTheHole), B(LdaTheHole),
B(Star), R(5),
B(CreateClosure), U8(5), U8(0), U8(0),
B(Star), R(4), B(Star), R(4),
B(LdaConstant), U8(4), B(LdaSmi), I8(16),
B(Star), R(3), B(Star), R(6),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(3), B(LdaSmi), I8(24),
B(Star), R(7),
B(Mov), R(3), R(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4),
B(Star), R(4),
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(3), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
B(StaModuleVariable), I8(1), U8(0), B(StaModuleVariable), I8(1), U8(0),
B(LdaCurrentContextSlot), U8(5), B(LdaCurrentContextSlot), U8(5),
/* 26 S> */ B(Return), /* 26 S> */ B(Return),
...@@ -564,7 +570,6 @@ constant pool: [ ...@@ -564,7 +570,6 @@ constant pool: [
FIXED_ARRAY_TYPE, FIXED_ARRAY_TYPE,
Smi [10], Smi [10],
Smi [7], Smi [7],
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
] ]
handlers: [ handlers: [
......
...@@ -10,21 +10,27 @@ snippet: " ...@@ -10,21 +10,27 @@ snippet: "
class A { constructor(...args) { this.args = args; } } class A { constructor(...args) { this.args = args; } }
new A(...[1, 2, 3]); new A(...[1, 2, 3]);
" "
frame size: 5 frame size: 7
parameter count: 1 parameter count: 1
bytecode array length: 38 bytecode array length: 57
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(2),
B(LdaTheHole), B(LdaTheHole),
B(Star), R(4),
B(CreateClosure), U8(1), U8(0), U8(2),
B(Star), R(3), B(Star), R(3),
B(LdaConstant), U8(0), B(LdaSmi), I8(34),
B(Star), R(2), B(Star), R(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(3), B(LdaSmi), I8(88),
B(Star), R(6),
B(Mov), R(2), R(4),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
B(Star), R(0), B(Star), R(0),
B(Star), R(1), B(Star), R(1),
/* 89 S> */ B(CreateArrayLiteral), U8(2), U8(1), U8(37), /* 89 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(3), B(Star), R(3),
B(Ldar), R(1), B(Ldar), R(1),
/* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(1), U8(2), /* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(1), U8(2),
...@@ -32,7 +38,6 @@ bytecodes: [ ...@@ -32,7 +38,6 @@ bytecodes: [
/* 110 S> */ B(Return), /* 110 S> */ B(Return),
] ]
constant pool: [ constant pool: [
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
TUPLE2_TYPE, TUPLE2_TYPE,
] ]
...@@ -44,23 +49,29 @@ snippet: " ...@@ -44,23 +49,29 @@ snippet: "
class A { constructor(...args) { this.args = args; } } class A { constructor(...args) { this.args = args; } }
new A(0, ...[1, 2, 3]); new A(0, ...[1, 2, 3]);
" "
frame size: 5 frame size: 7
parameter count: 1 parameter count: 1
bytecode array length: 41 bytecode array length: 60
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(2),
B(LdaTheHole), B(LdaTheHole),
B(Star), R(4),
B(CreateClosure), U8(1), U8(0), U8(2),
B(Star), R(3), B(Star), R(3),
B(LdaConstant), U8(0), B(LdaSmi), I8(34),
B(Star), R(2), B(Star), R(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(3), B(LdaSmi), I8(88),
B(Star), R(6),
B(Mov), R(2), R(4),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
B(Star), R(0), B(Star), R(0),
B(Star), R(1), B(Star), R(1),
/* 89 S> */ B(LdaZero), /* 89 S> */ B(LdaZero),
B(Star), R(3), B(Star), R(3),
B(CreateArrayLiteral), U8(2), U8(1), U8(37), B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(4), B(Star), R(4),
B(Ldar), R(1), B(Ldar), R(1),
/* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(2), U8(2), /* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(2), U8(2),
...@@ -68,7 +79,6 @@ bytecodes: [ ...@@ -68,7 +79,6 @@ bytecodes: [
/* 113 S> */ B(Return), /* 113 S> */ B(Return),
] ]
constant pool: [ constant pool: [
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
TUPLE2_TYPE, TUPLE2_TYPE,
] ]
...@@ -80,27 +90,33 @@ snippet: " ...@@ -80,27 +90,33 @@ snippet: "
class A { constructor(...args) { this.args = args; } } class A { constructor(...args) { this.args = args; } }
new A(0, ...[1, 2, 3], 4); new A(0, ...[1, 2, 3], 4);
" "
frame size: 6 frame size: 7
parameter count: 1 parameter count: 1
bytecode array length: 62 bytecode array length: 81
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(2),
B(LdaTheHole), B(LdaTheHole),
B(Star), R(4),
B(CreateClosure), U8(1), U8(0), U8(2),
B(Star), R(3), B(Star), R(3),
B(LdaConstant), U8(0), B(LdaSmi), I8(34),
B(Star), R(2), B(Star), R(5),
B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(3), B(LdaSmi), I8(88),
B(Star), R(6),
B(Mov), R(2), R(4),
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
B(Star), R(0), B(Star), R(0),
B(Star), R(1), B(Star), R(1),
/* 89 S> */ B(CreateArrayLiteral), U8(2), U8(1), U8(37), /* 89 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(3), B(Star), R(3),
B(CreateArrayLiteral), U8(3), U8(2), U8(37), B(CreateArrayLiteral), U8(2), U8(2), U8(37),
B(Star), R(4), B(Star), R(4),
B(CallJSRuntime), U8(%spread_iterable), R(4), U8(1), B(CallJSRuntime), U8(%spread_iterable), R(4), U8(1),
B(Star), R(4), B(Star), R(4),
B(CreateArrayLiteral), U8(4), U8(3), U8(37), B(CreateArrayLiteral), U8(3), U8(3), U8(37),
B(Star), R(5), B(Star), R(5),
B(CallJSRuntime), U8(%spread_arguments), R(3), U8(3), B(CallJSRuntime), U8(%spread_arguments), R(3), U8(3),
B(Star), R(3), B(Star), R(3),
...@@ -110,7 +126,6 @@ bytecodes: [ ...@@ -110,7 +126,6 @@ bytecodes: [
/* 116 S> */ B(Return), /* 116 S> */ B(Return),
] ]
constant pool: [ constant pool: [
FIXED_ARRAY_TYPE,
SHARED_FUNCTION_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE,
TUPLE2_TYPE, TUPLE2_TYPE,
TUPLE2_TYPE, TUPLE2_TYPE,
......
...@@ -199,58 +199,58 @@ KNOWN_MAPS = { ...@@ -199,58 +199,58 @@ KNOWN_MAPS = {
0x02cf1: (171, "BlockContextMap"), 0x02cf1: (171, "BlockContextMap"),
0x02d41: (171, "CatchContextMap"), 0x02d41: (171, "CatchContextMap"),
0x02d91: (171, "WithContextMap"), 0x02d91: (171, "WithContextMap"),
0x02de1: (171, "DescriptorArrayMap"), 0x02de1: (148, "FixedDoubleArrayMap"),
0x02e31: (148, "FixedDoubleArrayMap"), 0x02e31: (134, "MutableHeapNumberMap"),
0x02e81: (134, "MutableHeapNumberMap"), 0x02e81: (172, "OrderedHashTableMap"),
0x02ed1: (172, "OrderedHashTableMap"), 0x02ed1: (172, "NameDictionaryMap"),
0x02f21: (172, "NameDictionaryMap"), 0x02f21: (172, "GlobalDictionaryMap"),
0x02f71: (172, "GlobalDictionaryMap"), 0x02f71: (172, "NumberDictionaryMap"),
0x02fc1: (172, "NumberDictionaryMap"), 0x02fc1: (171, "SloppyArgumentsElementsMap"),
0x03011: (171, "SloppyArgumentsElementsMap"), 0x03011: (180, "SmallOrderedHashMapMap"),
0x03061: (180, "SmallOrderedHashMapMap"), 0x03061: (181, "SmallOrderedHashSetMap"),
0x030b1: (181, "SmallOrderedHashSetMap"), 0x030b1: (189, "JSMessageObjectMap"),
0x03101: (189, "JSMessageObjectMap"), 0x03101: (137, "BytecodeArrayMap"),
0x03151: (137, "BytecodeArrayMap"), 0x03151: (171, "ModuleInfoMap"),
0x031a1: (171, "ModuleInfoMap"), 0x031a1: (177, "NoClosuresCellMap"),
0x031f1: (177, "NoClosuresCellMap"), 0x031f1: (177, "OneClosureCellMap"),
0x03241: (177, "OneClosureCellMap"), 0x03241: (177, "ManyClosuresCellMap"),
0x03291: (177, "ManyClosuresCellMap"), 0x03291: (175, "PropertyArrayMap"),
0x032e1: (175, "PropertyArrayMap"), 0x032e1: (130, "BigIntMap"),
0x03331: (130, "BigIntMap"), 0x03331: (64, "StringMap"),
0x03381: (64, "StringMap"), 0x03381: (73, "ConsOneByteStringMap"),
0x033d1: (73, "ConsOneByteStringMap"), 0x033d1: (65, "ConsStringMap"),
0x03421: (65, "ConsStringMap"), 0x03421: (77, "ThinOneByteStringMap"),
0x03471: (77, "ThinOneByteStringMap"), 0x03471: (69, "ThinStringMap"),
0x034c1: (69, "ThinStringMap"), 0x034c1: (67, "SlicedStringMap"),
0x03511: (67, "SlicedStringMap"), 0x03511: (75, "SlicedOneByteStringMap"),
0x03561: (75, "SlicedOneByteStringMap"), 0x03561: (66, "ExternalStringMap"),
0x035b1: (66, "ExternalStringMap"), 0x035b1: (82, "ExternalStringWithOneByteDataMap"),
0x03601: (82, "ExternalStringWithOneByteDataMap"), 0x03601: (74, "ExternalOneByteStringMap"),
0x03651: (74, "ExternalOneByteStringMap"), 0x03651: (98, "ShortExternalStringMap"),
0x036a1: (98, "ShortExternalStringMap"), 0x036a1: (114, "ShortExternalStringWithOneByteDataMap"),
0x036f1: (114, "ShortExternalStringWithOneByteDataMap"), 0x036f1: (0, "InternalizedStringMap"),
0x03741: (0, "InternalizedStringMap"), 0x03741: (2, "ExternalInternalizedStringMap"),
0x03791: (2, "ExternalInternalizedStringMap"), 0x03791: (18, "ExternalInternalizedStringWithOneByteDataMap"),
0x037e1: (18, "ExternalInternalizedStringWithOneByteDataMap"), 0x037e1: (10, "ExternalOneByteInternalizedStringMap"),
0x03831: (10, "ExternalOneByteInternalizedStringMap"), 0x03831: (34, "ShortExternalInternalizedStringMap"),
0x03881: (34, "ShortExternalInternalizedStringMap"), 0x03881: (50, "ShortExternalInternalizedStringWithOneByteDataMap"),
0x038d1: (50, "ShortExternalInternalizedStringWithOneByteDataMap"), 0x038d1: (42, "ShortExternalOneByteInternalizedStringMap"),
0x03921: (42, "ShortExternalOneByteInternalizedStringMap"), 0x03921: (106, "ShortExternalOneByteStringMap"),
0x03971: (106, "ShortExternalOneByteStringMap"), 0x03971: (140, "FixedUint8ArrayMap"),
0x039c1: (140, "FixedUint8ArrayMap"), 0x039c1: (139, "FixedInt8ArrayMap"),
0x03a11: (139, "FixedInt8ArrayMap"), 0x03a11: (142, "FixedUint16ArrayMap"),
0x03a61: (142, "FixedUint16ArrayMap"), 0x03a61: (141, "FixedInt16ArrayMap"),
0x03ab1: (141, "FixedInt16ArrayMap"), 0x03ab1: (144, "FixedUint32ArrayMap"),
0x03b01: (144, "FixedUint32ArrayMap"), 0x03b01: (143, "FixedInt32ArrayMap"),
0x03b51: (143, "FixedInt32ArrayMap"), 0x03b51: (145, "FixedFloat32ArrayMap"),
0x03ba1: (145, "FixedFloat32ArrayMap"), 0x03ba1: (146, "FixedFloat64ArrayMap"),
0x03bf1: (146, "FixedFloat64ArrayMap"), 0x03bf1: (147, "FixedUint8ClampedArrayMap"),
0x03c41: (147, "FixedUint8ClampedArrayMap"), 0x03c41: (158, "ScriptMap"),
0x03c91: (158, "ScriptMap"), 0x03c91: (182, "CodeDataContainerMap"),
0x03ce1: (182, "CodeDataContainerMap"), 0x03ce1: (173, "FeedbackVectorMap"),
0x03d31: (173, "FeedbackVectorMap"), 0x03d31: (171, "DebugEvaluateContextMap"),
0x03d81: (171, "DebugEvaluateContextMap"), 0x03d81: (171, "ScriptContextTableMap"),
0x03dd1: (171, "ScriptContextTableMap"), 0x03dd1: (171, "DescriptorArrayMap"),
0x03e21: (192, "ExternalMap"), 0x03e21: (192, "ExternalMap"),
0x03e71: (106, "NativeSourceStringMap"), 0x03e71: (106, "NativeSourceStringMap"),
0x03ec1: (165, "Tuple2Map"), 0x03ec1: (165, "Tuple2Map"),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment