Commit b19d123f authored by Dan Elphick's avatar Dan Elphick Committed by Commit Bot

[heap] Move even more objects into RO_SPACE

Moves all Oddballs, empty_feedback_metadata, lots of symbols and
immortal heap numbers and several other empty collection objects.

      RO_SPACE  NEW_SPACE  OLD_SPACE  CODE_SPACE  MAP_SPACE  LO_SPACE
old      31592          0     221160       33280        176         0
new      35016          0     217736       33280        176         0
diff     +3424                 -3424

Bug: v8:7464
Change-Id: Ic99411bcbcb9c9a48b33c59dddb68359278fb0b3
Reviewed-on: https://chromium-review.googlesource.com/1025996
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53053}
parent cc399a0d
...@@ -177,16 +177,17 @@ Handle<TemplateObjectDescription> Factory::NewTemplateObjectDescription( ...@@ -177,16 +177,17 @@ Handle<TemplateObjectDescription> Factory::NewTemplateObjectDescription(
Handle<Oddball> Factory::NewOddball(Handle<Map> map, const char* to_string, Handle<Oddball> Factory::NewOddball(Handle<Map> map, const char* to_string,
Handle<Object> to_number, Handle<Object> to_number,
const char* type_of, byte kind) { const char* type_of, byte kind,
Handle<Oddball> oddball(Oddball::cast(New(map, TENURED)), isolate()); PretenureFlag pretenure) {
Handle<Oddball> oddball(Oddball::cast(New(map, pretenure)), isolate());
Oddball::Initialize(isolate(), oddball, to_string, to_number, type_of, kind); Oddball::Initialize(isolate(), oddball, to_string, to_number, type_of, kind);
return oddball; return oddball;
} }
Handle<Oddball> Factory::NewSelfReferenceMarker() { Handle<Oddball> Factory::NewSelfReferenceMarker(PretenureFlag pretenure) {
return NewOddball(self_reference_marker_map(), "self_reference_marker", return NewOddball(self_reference_marker_map(), "self_reference_marker",
handle(Smi::FromInt(-1), isolate()), "undefined", handle(Smi::FromInt(-1), isolate()), "undefined",
Oddball::kSelfReferenceMarker); Oddball::kSelfReferenceMarker, pretenure);
} }
Handle<PropertyArray> Factory::NewPropertyArray(int length, Handle<PropertyArray> Factory::NewPropertyArray(int length,
...@@ -401,11 +402,12 @@ Handle<FixedArrayBase> Factory::NewFixedDoubleArrayWithHoles( ...@@ -401,11 +402,12 @@ Handle<FixedArrayBase> Factory::NewFixedDoubleArrayWithHoles(
return array; return array;
} }
Handle<FeedbackMetadata> Factory::NewFeedbackMetadata(int slot_count) { Handle<FeedbackMetadata> Factory::NewFeedbackMetadata(int slot_count,
PretenureFlag tenure) {
DCHECK_LE(0, slot_count); DCHECK_LE(0, slot_count);
int size = FeedbackMetadata::SizeFor(slot_count); int size = FeedbackMetadata::SizeFor(slot_count);
HeapObject* result = HeapObject* result =
AllocateRawWithImmortalMap(size, TENURED, *feedback_metadata_map()); AllocateRawWithImmortalMap(size, tenure, *feedback_metadata_map());
Handle<FeedbackMetadata> data(FeedbackMetadata::cast(result), isolate()); Handle<FeedbackMetadata> data(FeedbackMetadata::cast(result), isolate());
data->set_slot_count(slot_count); data->set_slot_count(slot_count);
...@@ -1226,12 +1228,13 @@ Handle<JSStringIterator> Factory::NewJSStringIterator(Handle<String> string) { ...@@ -1226,12 +1228,13 @@ Handle<JSStringIterator> Factory::NewJSStringIterator(Handle<String> string) {
return iterator; return iterator;
} }
Handle<Symbol> Factory::NewSymbol() { Handle<Symbol> Factory::NewSymbol(PretenureFlag flag) {
DCHECK(flag != NOT_TENURED);
// Statically ensure that it is safe to allocate symbols in paged spaces. // Statically ensure that it is safe to allocate symbols in paged spaces.
STATIC_ASSERT(Symbol::kSize <= kMaxRegularHeapObjectSize); STATIC_ASSERT(Symbol::kSize <= kMaxRegularHeapObjectSize);
HeapObject* result = HeapObject* result =
AllocateRawWithImmortalMap(Symbol::kSize, TENURED, *symbol_map()); AllocateRawWithImmortalMap(Symbol::kSize, flag, *symbol_map());
// Generate a random hash value. // Generate a random hash value.
int hash = isolate()->GenerateIdentityHash(Name::kHashBitMask); int hash = isolate()->GenerateIdentityHash(Name::kHashBitMask);
...@@ -1245,8 +1248,9 @@ Handle<Symbol> Factory::NewSymbol() { ...@@ -1245,8 +1248,9 @@ Handle<Symbol> Factory::NewSymbol() {
return symbol; return symbol;
} }
Handle<Symbol> Factory::NewPrivateSymbol() { Handle<Symbol> Factory::NewPrivateSymbol(PretenureFlag flag) {
Handle<Symbol> symbol = NewSymbol(); DCHECK(flag != NOT_TENURED);
Handle<Symbol> symbol = NewSymbol(flag);
symbol->set_is_private(true); symbol->set_is_private(true);
return symbol; return symbol;
} }
...@@ -1426,10 +1430,11 @@ Handle<AccessorInfo> Factory::NewAccessorInfo() { ...@@ -1426,10 +1430,11 @@ Handle<AccessorInfo> Factory::NewAccessorInfo() {
return info; return info;
} }
Handle<Script> Factory::NewScript(Handle<String> source) { Handle<Script> Factory::NewScript(Handle<String> source, PretenureFlag tenure) {
DCHECK(tenure == TENURED || tenure == TENURED_READ_ONLY);
// Create and initialize script object. // Create and initialize script object.
Heap* heap = isolate()->heap(); Heap* heap = isolate()->heap();
Handle<Script> script = Handle<Script>::cast(NewStruct(SCRIPT_TYPE, TENURED)); Handle<Script> script = Handle<Script>::cast(NewStruct(SCRIPT_TYPE, tenure));
script->set_source(*source); script->set_source(*source);
script->set_name(heap->undefined_value()); script->set_name(heap->undefined_value());
script->set_id(isolate()->heap()->NextScriptId()); script->set_id(isolate()->heap()->NextScriptId());
...@@ -1616,11 +1621,12 @@ Handle<FeedbackCell> Factory::NewManyClosuresCell(Handle<HeapObject> value) { ...@@ -1616,11 +1621,12 @@ Handle<FeedbackCell> Factory::NewManyClosuresCell(Handle<HeapObject> value) {
return cell; return cell;
} }
Handle<PropertyCell> Factory::NewPropertyCell(Handle<Name> name) { Handle<PropertyCell> Factory::NewPropertyCell(Handle<Name> name,
PretenureFlag pretenure) {
DCHECK(name->IsUniqueName()); DCHECK(name->IsUniqueName());
STATIC_ASSERT(PropertyCell::kSize <= kMaxRegularHeapObjectSize); STATIC_ASSERT(PropertyCell::kSize <= kMaxRegularHeapObjectSize);
HeapObject* result = AllocateRawWithImmortalMap(PropertyCell::kSize, TENURED, HeapObject* result = AllocateRawWithImmortalMap(
*global_property_cell_map()); PropertyCell::kSize, pretenure, *global_property_cell_map());
Handle<PropertyCell> cell(PropertyCell::cast(result), isolate()); Handle<PropertyCell> cell(PropertyCell::cast(result), isolate());
cell->set_dependent_code(DependentCode::cast(*empty_fixed_array()), cell->set_dependent_code(DependentCode::cast(*empty_fixed_array()),
SKIP_WRITE_BARRIER); SKIP_WRITE_BARRIER);
......
...@@ -88,10 +88,11 @@ class V8_EXPORT_PRIVATE Factory { ...@@ -88,10 +88,11 @@ class V8_EXPORT_PRIVATE Factory {
public: public:
Handle<Oddball> NewOddball(Handle<Map> map, const char* to_string, Handle<Oddball> NewOddball(Handle<Map> map, const char* to_string,
Handle<Object> to_number, const char* type_of, Handle<Object> to_number, const char* type_of,
byte kind); byte kind,
PretenureFlag pretenure = TENURED_READ_ONLY);
// Marks self references within code generation. // Marks self references within code generation.
Handle<Oddball> NewSelfReferenceMarker(); Handle<Oddball> NewSelfReferenceMarker(PretenureFlag pretenure = TENURED);
// Allocates a fixed array-like object with given map and initialized with // Allocates a fixed array-like object with given map and initialized with
// undefined values. // undefined values.
...@@ -158,7 +159,8 @@ class V8_EXPORT_PRIVATE Factory { ...@@ -158,7 +159,8 @@ class V8_EXPORT_PRIVATE Factory {
int size, PretenureFlag pretenure = NOT_TENURED); int size, PretenureFlag pretenure = NOT_TENURED);
// Allocates a FeedbackMedata object and zeroes the data section. // Allocates a FeedbackMedata object and zeroes the data section.
Handle<FeedbackMetadata> NewFeedbackMetadata(int slot_count); Handle<FeedbackMetadata> NewFeedbackMetadata(int slot_count,
PretenureFlag tenure = TENURED);
Handle<FrameArray> NewFrameArray(int number_of_frames, Handle<FrameArray> NewFrameArray(int number_of_frames,
PretenureFlag pretenure = NOT_TENURED); PretenureFlag pretenure = NOT_TENURED);
...@@ -346,9 +348,9 @@ class V8_EXPORT_PRIVATE Factory { ...@@ -346,9 +348,9 @@ class V8_EXPORT_PRIVATE Factory {
Handle<ExternalOneByteString> NewNativeSourceString( Handle<ExternalOneByteString> NewNativeSourceString(
const ExternalOneByteString::Resource* resource); const ExternalOneByteString::Resource* resource);
// Create a symbol in old space. // Create a symbol in old or read-only space.
Handle<Symbol> NewSymbol(); Handle<Symbol> NewSymbol(PretenureFlag pretenure = TENURED);
Handle<Symbol> NewPrivateSymbol(); Handle<Symbol> NewPrivateSymbol(PretenureFlag pretenure = TENURED);
Handle<Symbol> NewPrivateFieldSymbol(); Handle<Symbol> NewPrivateFieldSymbol();
// Create a global (but otherwise uninitialized) context. // Create a global (but otherwise uninitialized) context.
...@@ -397,7 +399,8 @@ class V8_EXPORT_PRIVATE Factory { ...@@ -397,7 +399,8 @@ class V8_EXPORT_PRIVATE Factory {
Handle<AccessorInfo> NewAccessorInfo(); Handle<AccessorInfo> NewAccessorInfo();
Handle<Script> NewScript(Handle<String> source); Handle<Script> NewScript(Handle<String> source,
PretenureFlag tenure = TENURED);
Handle<BreakPointInfo> NewBreakPointInfo(int source_position); Handle<BreakPointInfo> NewBreakPointInfo(int source_position);
Handle<BreakPoint> NewBreakPoint(int id, Handle<String> condition); Handle<BreakPoint> NewBreakPoint(int id, Handle<String> condition);
...@@ -437,7 +440,8 @@ class V8_EXPORT_PRIVATE Factory { ...@@ -437,7 +440,8 @@ class V8_EXPORT_PRIVATE Factory {
Handle<Cell> NewCell(Handle<Object> value); Handle<Cell> NewCell(Handle<Object> value);
Handle<PropertyCell> NewPropertyCell(Handle<Name> name); Handle<PropertyCell> NewPropertyCell(Handle<Name> name,
PretenureFlag pretenure = TENURED);
Handle<WeakCell> NewWeakCell(Handle<HeapObject> value, Handle<WeakCell> NewWeakCell(Handle<HeapObject> value,
PretenureFlag pretenure = TENURED); PretenureFlag pretenure = TENURED);
......
...@@ -2173,8 +2173,8 @@ class Heap { ...@@ -2173,8 +2173,8 @@ class Heap {
void FinalizePartialMap(Map* map); void FinalizePartialMap(Map* map);
// Allocate empty fixed typed array of given type. // Allocate empty fixed typed array of given type.
V8_WARN_UNUSED_RESULT AllocationResult AllocateEmptyFixedTypedArray( V8_WARN_UNUSED_RESULT AllocationResult
ExternalArrayType array_type, AllocationSpace space = OLD_SPACE); AllocateEmptyFixedTypedArray(ExternalArrayType array_type);
void set_force_oom(bool value) { force_oom_ = value; } void set_force_oom(bool value) { force_oom_ = value; }
......
...@@ -177,12 +177,12 @@ AllocationResult Heap::Allocate(Map* map, AllocationSpace space) { ...@@ -177,12 +177,12 @@ AllocationResult Heap::Allocate(Map* map, AllocationSpace space) {
} }
AllocationResult Heap::AllocateEmptyFixedTypedArray( AllocationResult Heap::AllocateEmptyFixedTypedArray(
ExternalArrayType array_type, AllocationSpace space) { ExternalArrayType array_type) {
int size = OBJECT_POINTER_ALIGN(FixedTypedArrayBase::kDataOffset); int size = OBJECT_POINTER_ALIGN(FixedTypedArrayBase::kDataOffset);
HeapObject* object = nullptr; HeapObject* object = nullptr;
AllocationResult allocation = AllocateRaw( AllocationResult allocation = AllocateRaw(
size, space, size, RO_SPACE,
array_type == kExternalFloat64Array ? kDoubleAligned : kWordAligned); array_type == kExternalFloat64Array ? kDoubleAligned : kWordAligned);
if (!allocation.To(&object)) return allocation; if (!allocation.To(&object)) return allocation;
...@@ -247,7 +247,7 @@ bool Heap::CreateInitialMaps() { ...@@ -247,7 +247,7 @@ bool Heap::CreateInitialMaps() {
set_empty_fixed_array(FixedArray::cast(obj)); set_empty_fixed_array(FixedArray::cast(obj));
{ {
AllocationResult alloc = AllocateRaw(WeakFixedArray::SizeFor(0), OLD_SPACE); AllocationResult alloc = AllocateRaw(WeakFixedArray::SizeFor(0), RO_SPACE);
if (!alloc.To(&obj)) return false; if (!alloc.To(&obj)) return false;
obj->set_map_after_allocation(weak_fixed_array_map(), SKIP_WRITE_BARRIER); obj->set_map_after_allocation(weak_fixed_array_map(), SKIP_WRITE_BARRIER);
WeakFixedArray::cast(obj)->set_length(0); WeakFixedArray::cast(obj)->set_length(0);
...@@ -256,7 +256,7 @@ bool Heap::CreateInitialMaps() { ...@@ -256,7 +256,7 @@ bool Heap::CreateInitialMaps() {
{ {
AllocationResult allocation = AllocationResult allocation =
AllocateRaw(WeakArrayList::SizeForCapacity(0), OLD_SPACE); AllocateRaw(WeakArrayList::SizeForCapacity(0), RO_SPACE);
if (!allocation.To(&obj)) return false; if (!allocation.To(&obj)) return false;
obj->set_map_after_allocation(weak_array_list_map(), SKIP_WRITE_BARRIER); obj->set_map_after_allocation(weak_array_list_map(), SKIP_WRITE_BARRIER);
WeakArrayList::cast(obj)->set_capacity(0); WeakArrayList::cast(obj)->set_capacity(0);
...@@ -496,7 +496,7 @@ bool Heap::CreateInitialMaps() { ...@@ -496,7 +496,7 @@ bool Heap::CreateInitialMaps() {
} }
{ {
AllocationResult alloc = AllocateRaw(FixedArray::SizeFor(0), OLD_SPACE); AllocationResult alloc = AllocateRaw(FixedArray::SizeFor(0), RO_SPACE);
if (!alloc.To(&obj)) return false; if (!alloc.To(&obj)) return false;
obj->set_map_after_allocation(scope_info_map(), SKIP_WRITE_BARRIER); obj->set_map_after_allocation(scope_info_map(), SKIP_WRITE_BARRIER);
FixedArray::cast(obj)->set_length(0); FixedArray::cast(obj)->set_length(0);
...@@ -504,7 +504,7 @@ bool Heap::CreateInitialMaps() { ...@@ -504,7 +504,7 @@ bool Heap::CreateInitialMaps() {
set_empty_scope_info(ScopeInfo::cast(obj)); set_empty_scope_info(ScopeInfo::cast(obj));
{ {
AllocationResult alloc = AllocateRaw(FixedArray::SizeFor(0), OLD_SPACE); AllocationResult alloc = AllocateRaw(FixedArray::SizeFor(0), RO_SPACE);
if (!alloc.To(&obj)) return false; if (!alloc.To(&obj)) return false;
obj->set_map_after_allocation(boilerplate_description_map(), obj->set_map_after_allocation(boilerplate_description_map(),
SKIP_WRITE_BARRIER); SKIP_WRITE_BARRIER);
...@@ -535,7 +535,7 @@ bool Heap::CreateInitialMaps() { ...@@ -535,7 +535,7 @@ bool Heap::CreateInitialMaps() {
} }
{ {
if (!AllocateRaw(FixedArray::SizeFor(0), OLD_SPACE).To(&obj)) { if (!AllocateRaw(FixedArray::SizeFor(0), RO_SPACE).To(&obj)) {
return false; return false;
} }
obj->set_map_after_allocation(property_array_map(), SKIP_WRITE_BARRIER); obj->set_map_after_allocation(property_array_map(), SKIP_WRITE_BARRIER);
...@@ -565,7 +565,7 @@ void Heap::CreateApiObjects() { ...@@ -565,7 +565,7 @@ void Heap::CreateApiObjects() {
set_message_listeners(*TemplateList::New(isolate, 2)); set_message_listeners(*TemplateList::New(isolate, 2));
Handle<InterceptorInfo> info = Handle<InterceptorInfo>::cast( Handle<InterceptorInfo> info = Handle<InterceptorInfo>::cast(
isolate->factory()->NewStruct(INTERCEPTOR_INFO_TYPE, TENURED)); isolate->factory()->NewStruct(INTERCEPTOR_INFO_TYPE, TENURED_READ_ONLY));
info->set_flags(0); info->set_flags(0);
set_noop_interceptor_info(*info); set_noop_interceptor_info(*info);
} }
...@@ -575,16 +575,18 @@ void Heap::CreateInitialObjects() { ...@@ -575,16 +575,18 @@ void Heap::CreateInitialObjects() {
Factory* factory = isolate()->factory(); Factory* factory = isolate()->factory();
// The -0 value must be set before NewNumber works. // The -0 value must be set before NewNumber works.
set_minus_zero_value(*factory->NewHeapNumber(-0.0, IMMUTABLE, TENURED)); set_minus_zero_value(
*factory->NewHeapNumber(-0.0, IMMUTABLE, TENURED_READ_ONLY));
DCHECK(std::signbit(minus_zero_value()->Number())); DCHECK(std::signbit(minus_zero_value()->Number()));
set_nan_value(*factory->NewHeapNumber( set_nan_value(*factory->NewHeapNumber(
std::numeric_limits<double>::quiet_NaN(), IMMUTABLE, TENURED_READ_ONLY)); std::numeric_limits<double>::quiet_NaN(), IMMUTABLE, TENURED_READ_ONLY));
set_hole_nan_value(*factory->NewHeapNumberFromBits(kHoleNanInt64, IMMUTABLE, set_hole_nan_value(*factory->NewHeapNumberFromBits(kHoleNanInt64, IMMUTABLE,
TENURED_READ_ONLY)); TENURED_READ_ONLY));
set_infinity_value(*factory->NewHeapNumber(V8_INFINITY, IMMUTABLE, TENURED)); set_infinity_value(
*factory->NewHeapNumber(V8_INFINITY, IMMUTABLE, TENURED_READ_ONLY));
set_minus_infinity_value( set_minus_infinity_value(
*factory->NewHeapNumber(-V8_INFINITY, IMMUTABLE, TENURED)); *factory->NewHeapNumber(-V8_INFINITY, IMMUTABLE, TENURED_READ_ONLY));
// Allocate cache for single character one byte strings. // Allocate cache for single character one byte strings.
set_single_character_string_cache( set_single_character_string_cache(
...@@ -653,7 +655,8 @@ void Heap::CreateInitialObjects() { ...@@ -653,7 +655,8 @@ void Heap::CreateInitialObjects() {
Oddball::kStaleRegister)); Oddball::kStaleRegister));
// Initialize the self-reference marker. // Initialize the self-reference marker.
set_self_reference_marker(*factory->NewSelfReferenceMarker()); set_self_reference_marker(
*factory->NewSelfReferenceMarker(TENURED_READ_ONLY));
// Create the code_stubs dictionary. The initial size is set to avoid // Create the code_stubs dictionary. The initial size is set to avoid
// expanding the dictionary during bootstrapping. // expanding the dictionary during bootstrapping.
...@@ -661,10 +664,11 @@ void Heap::CreateInitialObjects() { ...@@ -661,10 +664,11 @@ void Heap::CreateInitialObjects() {
{ {
HandleScope scope(isolate()); HandleScope scope(isolate());
#define SYMBOL_INIT(name) \ #define SYMBOL_INIT(name) \
{ \ { \
Handle<Symbol> symbol(isolate()->factory()->NewPrivateSymbol()); \ Handle<Symbol> symbol( \
roots_[k##name##RootIndex] = *symbol; \ isolate()->factory()->NewPrivateSymbol(TENURED_READ_ONLY)); \
roots_[k##name##RootIndex] = *symbol; \
} }
PRIVATE_SYMBOL_LIST(SYMBOL_INIT) PRIVATE_SYMBOL_LIST(SYMBOL_INIT)
#undef SYMBOL_INIT #undef SYMBOL_INIT
...@@ -672,19 +676,21 @@ void Heap::CreateInitialObjects() { ...@@ -672,19 +676,21 @@ void Heap::CreateInitialObjects() {
{ {
HandleScope scope(isolate()); HandleScope scope(isolate());
#define SYMBOL_INIT(name, description) \ #define SYMBOL_INIT(name, description) \
Handle<Symbol> name = factory->NewSymbol(); \ Handle<Symbol> name = factory->NewSymbol(TENURED_READ_ONLY); \
Handle<String> name##d = factory->NewStringFromStaticChars(#description); \ Handle<String> name##d = \
name->set_name(*name##d); \ factory->NewStringFromStaticChars(#description, TENURED_READ_ONLY); \
name->set_name(*name##d); \
roots_[k##name##RootIndex] = *name; roots_[k##name##RootIndex] = *name;
PUBLIC_SYMBOL_LIST(SYMBOL_INIT) PUBLIC_SYMBOL_LIST(SYMBOL_INIT)
#undef SYMBOL_INIT #undef SYMBOL_INIT
#define SYMBOL_INIT(name, description) \ #define SYMBOL_INIT(name, description) \
Handle<Symbol> name = factory->NewSymbol(); \ Handle<Symbol> name = factory->NewSymbol(TENURED_READ_ONLY); \
Handle<String> name##d = factory->NewStringFromStaticChars(#description); \ Handle<String> name##d = \
name->set_is_well_known_symbol(true); \ factory->NewStringFromStaticChars(#description, TENURED_READ_ONLY); \
name->set_name(*name##d); \ name->set_is_well_known_symbol(true); \
name->set_name(*name##d); \
roots_[k##name##RootIndex] = *name; roots_[k##name##RootIndex] = *name;
WELL_KNOWN_SYMBOL_LIST(SYMBOL_INIT) WELL_KNOWN_SYMBOL_LIST(SYMBOL_INIT)
#undef SYMBOL_INIT #undef SYMBOL_INIT
...@@ -693,8 +699,8 @@ void Heap::CreateInitialObjects() { ...@@ -693,8 +699,8 @@ void Heap::CreateInitialObjects() {
to_string_tag_symbol->set_is_interesting_symbol(true); to_string_tag_symbol->set_is_interesting_symbol(true);
} }
Handle<NameDictionary> empty_property_dictionary = Handle<NameDictionary> empty_property_dictionary = NameDictionary::New(
NameDictionary::New(isolate(), 1, TENURED, USE_CUSTOM_MINIMUM_CAPACITY); isolate(), 1, TENURED_READ_ONLY, USE_CUSTOM_MINIMUM_CAPACITY);
DCHECK(!empty_property_dictionary->HasSufficientCapacityToAdd(1)); DCHECK(!empty_property_dictionary->HasSufficientCapacityToAdd(1));
set_empty_property_dictionary(*empty_property_dictionary); set_empty_property_dictionary(*empty_property_dictionary);
...@@ -722,14 +728,15 @@ void Heap::CreateInitialObjects() { ...@@ -722,14 +728,15 @@ void Heap::CreateInitialObjects() {
{ {
Handle<FixedArray> empty_sloppy_arguments_elements = Handle<FixedArray> empty_sloppy_arguments_elements =
factory->NewFixedArray(2, TENURED); factory->NewFixedArray(2, TENURED_READ_ONLY);
empty_sloppy_arguments_elements->set_map_after_allocation( empty_sloppy_arguments_elements->set_map_after_allocation(
sloppy_arguments_elements_map(), SKIP_WRITE_BARRIER); sloppy_arguments_elements_map(), SKIP_WRITE_BARRIER);
set_empty_sloppy_arguments_elements(*empty_sloppy_arguments_elements); set_empty_sloppy_arguments_elements(*empty_sloppy_arguments_elements);
} }
{ {
Handle<WeakCell> cell = factory->NewWeakCell(factory->undefined_value()); Handle<WeakCell> cell =
factory->NewWeakCell(factory->undefined_value(), TENURED_READ_ONLY);
set_empty_weak_cell(*cell); set_empty_weak_cell(*cell);
cell->clear(); cell->clear();
} }
...@@ -742,8 +749,8 @@ void Heap::CreateInitialObjects() { ...@@ -742,8 +749,8 @@ void Heap::CreateInitialObjects() {
set_script_list(Smi::kZero); set_script_list(Smi::kZero);
Handle<NumberDictionary> slow_element_dictionary = Handle<NumberDictionary> slow_element_dictionary = NumberDictionary::New(
NumberDictionary::New(isolate(), 1, TENURED, USE_CUSTOM_MINIMUM_CAPACITY); isolate(), 1, TENURED_READ_ONLY, USE_CUSTOM_MINIMUM_CAPACITY);
DCHECK(!slow_element_dictionary->HasSufficientCapacityToAdd(1)); DCHECK(!slow_element_dictionary->HasSufficientCapacityToAdd(1));
slow_element_dictionary->set_requires_slow_elements(); slow_element_dictionary->set_requires_slow_elements();
set_empty_slow_element_dictionary(*slow_element_dictionary); set_empty_slow_element_dictionary(*slow_element_dictionary);
...@@ -756,8 +763,8 @@ void Heap::CreateInitialObjects() { ...@@ -756,8 +763,8 @@ void Heap::CreateInitialObjects() {
set_next_template_serial_number(Smi::kZero); set_next_template_serial_number(Smi::kZero);
// Allocate the empty OrderedHashMap. // Allocate the empty OrderedHashMap.
Handle<FixedArray> empty_ordered_hash_map = Handle<FixedArray> empty_ordered_hash_map = factory->NewFixedArray(
factory->NewFixedArray(OrderedHashMap::kHashTableStartIndex, TENURED); OrderedHashMap::kHashTableStartIndex, TENURED_READ_ONLY);
empty_ordered_hash_map->set_map_no_write_barrier( empty_ordered_hash_map->set_map_no_write_barrier(
*factory->ordered_hash_map_map()); *factory->ordered_hash_map_map());
for (int i = 0; i < empty_ordered_hash_map->length(); ++i) { for (int i = 0; i < empty_ordered_hash_map->length(); ++i) {
...@@ -766,8 +773,8 @@ void Heap::CreateInitialObjects() { ...@@ -766,8 +773,8 @@ void Heap::CreateInitialObjects() {
set_empty_ordered_hash_map(*empty_ordered_hash_map); set_empty_ordered_hash_map(*empty_ordered_hash_map);
// Allocate the empty OrderedHashSet. // Allocate the empty OrderedHashSet.
Handle<FixedArray> empty_ordered_hash_set = Handle<FixedArray> empty_ordered_hash_set = factory->NewFixedArray(
factory->NewFixedArray(OrderedHashSet::kHashTableStartIndex, TENURED); OrderedHashSet::kHashTableStartIndex, TENURED_READ_ONLY);
empty_ordered_hash_set->set_map_no_write_barrier( empty_ordered_hash_set->set_map_no_write_barrier(
*factory->ordered_hash_set_map()); *factory->ordered_hash_set_map());
for (int i = 0; i < empty_ordered_hash_set->length(); ++i) { for (int i = 0; i < empty_ordered_hash_set->length(); ++i) {
...@@ -777,7 +784,7 @@ void Heap::CreateInitialObjects() { ...@@ -777,7 +784,7 @@ void Heap::CreateInitialObjects() {
// Allocate the empty FeedbackMetadata. // Allocate the empty FeedbackMetadata.
Handle<FeedbackMetadata> empty_feedback_metadata = Handle<FeedbackMetadata> empty_feedback_metadata =
factory->NewFeedbackMetadata(0); factory->NewFeedbackMetadata(0, TENURED_READ_ONLY);
set_empty_feedback_metadata(*empty_feedback_metadata); set_empty_feedback_metadata(*empty_feedback_metadata);
// Allocate the empty script. // Allocate the empty script.
...@@ -793,7 +800,7 @@ void Heap::CreateInitialObjects() { ...@@ -793,7 +800,7 @@ void Heap::CreateInitialObjects() {
cell->set_value(Smi::FromInt(Isolate::kProtectorValid)); cell->set_value(Smi::FromInt(Isolate::kProtectorValid));
set_no_elements_protector(*cell); set_no_elements_protector(*cell);
cell = factory->NewPropertyCell(factory->empty_string()); cell = factory->NewPropertyCell(factory->empty_string(), TENURED_READ_ONLY);
cell->set_value(the_hole_value()); cell->set_value(the_hole_value());
set_empty_property_cell(*cell); set_empty_property_cell(*cell);
......
...@@ -2416,7 +2416,7 @@ TEST(OptimizedPretenuringDoubleArrayProperties) { ...@@ -2416,7 +2416,7 @@ TEST(OptimizedPretenuringDoubleArrayProperties) {
return; return;
v8::HandleScope scope(CcTest::isolate()); v8::HandleScope scope(CcTest::isolate());
// Grow new space unitl maximum capacity reached. // Grow new space until maximum capacity reached.
while (!CcTest::heap()->new_space()->IsAtMaximumCapacity()) { while (!CcTest::heap()->new_space()->IsAtMaximumCapacity()) {
CcTest::heap()->new_space()->Grow(); CcTest::heap()->new_space()->Grow();
} }
...@@ -2443,7 +2443,7 @@ TEST(OptimizedPretenuringDoubleArrayProperties) { ...@@ -2443,7 +2443,7 @@ TEST(OptimizedPretenuringDoubleArrayProperties) {
v8::Utils::OpenHandle(*v8::Local<v8::Object>::Cast(res))); v8::Utils::OpenHandle(*v8::Local<v8::Object>::Cast(res)));
CHECK(CcTest::heap()->InOldSpace(*o)); CHECK(CcTest::heap()->InOldSpace(*o));
CHECK(CcTest::heap()->InOldSpace(o->property_array())); CHECK_EQ(o->property_array(), CcTest::heap()->empty_property_array());
} }
......
...@@ -167,131 +167,131 @@ KNOWN_MAPS = { ...@@ -167,131 +167,131 @@ KNOWN_MAPS = {
("RO_SPACE", 0x02429): (211, "WeakCellMap"), ("RO_SPACE", 0x02429): (211, "WeakCellMap"),
("RO_SPACE", 0x024d1): (152, "OnePointerFillerMap"), ("RO_SPACE", 0x024d1): (152, "OnePointerFillerMap"),
("RO_SPACE", 0x02539): (152, "TwoPointerFillerMap"), ("RO_SPACE", 0x02539): (152, "TwoPointerFillerMap"),
("RO_SPACE", 0x025a1): (131, "UninitializedMap"), ("RO_SPACE", 0x025d1): (131, "UninitializedMap"),
("RO_SPACE", 0x02631): (8, "OneByteInternalizedStringMap"), ("RO_SPACE", 0x02661): (8, "OneByteInternalizedStringMap"),
("RO_SPACE", 0x026f1): (131, "UndefinedMap"), ("RO_SPACE", 0x02721): (131, "UndefinedMap"),
("RO_SPACE", 0x02769): (129, "HeapNumberMap"), ("RO_SPACE", 0x02799): (129, "HeapNumberMap"),
("RO_SPACE", 0x02801): (131, "TheHoleMap"), ("RO_SPACE", 0x02831): (131, "TheHoleMap"),
("RO_SPACE", 0x028c9): (131, "BooleanMap"), ("RO_SPACE", 0x028f9): (131, "BooleanMap"),
("RO_SPACE", 0x029d9): (136, "ByteArrayMap"), ("RO_SPACE", 0x02a09): (136, "ByteArrayMap"),
("RO_SPACE", 0x02a41): (183, "FixedCOWArrayMap"), ("RO_SPACE", 0x02a71): (183, "FixedCOWArrayMap"),
("RO_SPACE", 0x02aa9): (186, "HashTableMap"), ("RO_SPACE", 0x02ad9): (186, "HashTableMap"),
("RO_SPACE", 0x02b11): (128, "SymbolMap"), ("RO_SPACE", 0x02b41): (128, "SymbolMap"),
("RO_SPACE", 0x02b79): (72, "OneByteStringMap"), ("RO_SPACE", 0x02ba9): (72, "OneByteStringMap"),
("RO_SPACE", 0x02be1): (187, "ScopeInfoMap"), ("RO_SPACE", 0x02c11): (187, "ScopeInfoMap"),
("RO_SPACE", 0x02c49): (207, "SharedFunctionInfoMap"), ("RO_SPACE", 0x02c79): (207, "SharedFunctionInfoMap"),
("RO_SPACE", 0x02cb1): (133, "CodeMap"), ("RO_SPACE", 0x02ce1): (133, "CodeMap"),
("RO_SPACE", 0x02d19): (192, "FunctionContextMap"), ("RO_SPACE", 0x02d49): (192, "FunctionContextMap"),
("RO_SPACE", 0x02d81): (200, "CellMap"), ("RO_SPACE", 0x02db1): (200, "CellMap"),
("RO_SPACE", 0x02de9): (206, "GlobalPropertyCellMap"), ("RO_SPACE", 0x02e19): (206, "GlobalPropertyCellMap"),
("RO_SPACE", 0x02e51): (135, "ForeignMap"), ("RO_SPACE", 0x02e81): (135, "ForeignMap"),
("RO_SPACE", 0x02eb9): (198, "TransitionArrayMap"), ("RO_SPACE", 0x02ee9): (198, "TransitionArrayMap"),
("RO_SPACE", 0x02f21): (203, "FeedbackVectorMap"), ("RO_SPACE", 0x02f51): (203, "FeedbackVectorMap"),
("RO_SPACE", 0x02f89): (131, "ArgumentsMarkerMap"), ("RO_SPACE", 0x02ff9): (131, "ArgumentsMarkerMap"),
("RO_SPACE", 0x03019): (131, "ExceptionMap"), ("RO_SPACE", 0x030b9): (131, "ExceptionMap"),
("RO_SPACE", 0x030a9): (131, "TerminationExceptionMap"), ("RO_SPACE", 0x03179): (131, "TerminationExceptionMap"),
("RO_SPACE", 0x03141): (131, "OptimizedOutMap"), ("RO_SPACE", 0x03241): (131, "OptimizedOutMap"),
("RO_SPACE", 0x031d1): (131, "StaleRegisterMap"), ("RO_SPACE", 0x03301): (131, "StaleRegisterMap"),
("RO_SPACE", 0x03261): (194, "NativeContextMap"), ("RO_SPACE", 0x03391): (194, "NativeContextMap"),
("RO_SPACE", 0x032c9): (193, "ModuleContextMap"), ("RO_SPACE", 0x033f9): (193, "ModuleContextMap"),
("RO_SPACE", 0x03331): (191, "EvalContextMap"), ("RO_SPACE", 0x03461): (191, "EvalContextMap"),
("RO_SPACE", 0x03399): (195, "ScriptContextMap"), ("RO_SPACE", 0x034c9): (195, "ScriptContextMap"),
("RO_SPACE", 0x03401): (188, "BlockContextMap"), ("RO_SPACE", 0x03531): (188, "BlockContextMap"),
("RO_SPACE", 0x03469): (189, "CatchContextMap"), ("RO_SPACE", 0x03599): (189, "CatchContextMap"),
("RO_SPACE", 0x034d1): (196, "WithContextMap"), ("RO_SPACE", 0x03601): (196, "WithContextMap"),
("RO_SPACE", 0x03539): (190, "DebugEvaluateContextMap"), ("RO_SPACE", 0x03669): (190, "DebugEvaluateContextMap"),
("RO_SPACE", 0x035a1): (183, "ScriptContextTableMap"), ("RO_SPACE", 0x036d1): (183, "ScriptContextTableMap"),
("RO_SPACE", 0x03609): (151, "FeedbackMetadataArrayMap"), ("RO_SPACE", 0x03739): (151, "FeedbackMetadataArrayMap"),
("RO_SPACE", 0x03671): (183, "ArrayListMap"), ("RO_SPACE", 0x037a1): (183, "ArrayListMap"),
("RO_SPACE", 0x036d9): (130, "BigIntMap"), ("RO_SPACE", 0x03809): (130, "BigIntMap"),
("RO_SPACE", 0x03741): (184, "BoilerplateDescriptionMap"), ("RO_SPACE", 0x03871): (184, "BoilerplateDescriptionMap"),
("RO_SPACE", 0x037a9): (137, "BytecodeArrayMap"), ("RO_SPACE", 0x038d9): (137, "BytecodeArrayMap"),
("RO_SPACE", 0x03811): (201, "CodeDataContainerMap"), ("RO_SPACE", 0x03941): (201, "CodeDataContainerMap"),
("RO_SPACE", 0x03879): (150, "FixedDoubleArrayMap"), ("RO_SPACE", 0x039a9): (150, "FixedDoubleArrayMap"),
("RO_SPACE", 0x038e1): (186, "GlobalDictionaryMap"), ("RO_SPACE", 0x03a11): (186, "GlobalDictionaryMap"),
("RO_SPACE", 0x03949): (202, "ManyClosuresCellMap"), ("RO_SPACE", 0x03a79): (202, "ManyClosuresCellMap"),
("RO_SPACE", 0x039b1): (183, "ModuleInfoMap"), ("RO_SPACE", 0x03ae1): (183, "ModuleInfoMap"),
("RO_SPACE", 0x03a19): (134, "MutableHeapNumberMap"), ("RO_SPACE", 0x03b49): (134, "MutableHeapNumberMap"),
("RO_SPACE", 0x03a81): (186, "NameDictionaryMap"), ("RO_SPACE", 0x03bb1): (186, "NameDictionaryMap"),
("RO_SPACE", 0x03ae9): (202, "NoClosuresCellMap"), ("RO_SPACE", 0x03c19): (202, "NoClosuresCellMap"),
("RO_SPACE", 0x03b51): (186, "NumberDictionaryMap"), ("RO_SPACE", 0x03c81): (186, "NumberDictionaryMap"),
("RO_SPACE", 0x03bb9): (202, "OneClosureCellMap"), ("RO_SPACE", 0x03ce9): (202, "OneClosureCellMap"),
("RO_SPACE", 0x03c21): (186, "OrderedHashMapMap"), ("RO_SPACE", 0x03d51): (186, "OrderedHashMapMap"),
("RO_SPACE", 0x03c89): (186, "OrderedHashSetMap"), ("RO_SPACE", 0x03db9): (186, "OrderedHashSetMap"),
("RO_SPACE", 0x03cf1): (205, "PropertyArrayMap"), ("RO_SPACE", 0x03e21): (205, "PropertyArrayMap"),
("RO_SPACE", 0x03d59): (199, "SideEffectCallHandlerInfoMap"), ("RO_SPACE", 0x03e89): (199, "SideEffectCallHandlerInfoMap"),
("RO_SPACE", 0x03dc1): (199, "SideEffectFreeCallHandlerInfoMap"), ("RO_SPACE", 0x03ef1): (199, "SideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x03e29): (199, "NextCallSideEffectFreeCallHandlerInfoMap"), ("RO_SPACE", 0x03f59): (199, "NextCallSideEffectFreeCallHandlerInfoMap"),
("RO_SPACE", 0x03e91): (186, "SimpleNumberDictionaryMap"), ("RO_SPACE", 0x03fc1): (186, "SimpleNumberDictionaryMap"),
("RO_SPACE", 0x03ef9): (183, "SloppyArgumentsElementsMap"), ("RO_SPACE", 0x04029): (183, "SloppyArgumentsElementsMap"),
("RO_SPACE", 0x03f61): (208, "SmallOrderedHashMapMap"), ("RO_SPACE", 0x04091): (208, "SmallOrderedHashMapMap"),
("RO_SPACE", 0x03fc9): (209, "SmallOrderedHashSetMap"), ("RO_SPACE", 0x040f9): (209, "SmallOrderedHashSetMap"),
("RO_SPACE", 0x04031): (186, "StringTableMap"), ("RO_SPACE", 0x04161): (186, "StringTableMap"),
("RO_SPACE", 0x04099): (197, "WeakFixedArrayMap"), ("RO_SPACE", 0x041c9): (197, "WeakFixedArrayMap"),
("RO_SPACE", 0x04101): (212, "WeakArrayListMap"), ("RO_SPACE", 0x04231): (212, "WeakArrayListMap"),
("RO_SPACE", 0x04169): (106, "NativeSourceStringMap"), ("RO_SPACE", 0x04299): (106, "NativeSourceStringMap"),
("RO_SPACE", 0x041d1): (64, "StringMap"), ("RO_SPACE", 0x04301): (64, "StringMap"),
("RO_SPACE", 0x04239): (73, "ConsOneByteStringMap"), ("RO_SPACE", 0x04369): (73, "ConsOneByteStringMap"),
("RO_SPACE", 0x042a1): (65, "ConsStringMap"), ("RO_SPACE", 0x043d1): (65, "ConsStringMap"),
("RO_SPACE", 0x04309): (77, "ThinOneByteStringMap"), ("RO_SPACE", 0x04439): (77, "ThinOneByteStringMap"),
("RO_SPACE", 0x04371): (69, "ThinStringMap"), ("RO_SPACE", 0x044a1): (69, "ThinStringMap"),
("RO_SPACE", 0x043d9): (67, "SlicedStringMap"), ("RO_SPACE", 0x04509): (67, "SlicedStringMap"),
("RO_SPACE", 0x04441): (75, "SlicedOneByteStringMap"), ("RO_SPACE", 0x04571): (75, "SlicedOneByteStringMap"),
("RO_SPACE", 0x044a9): (66, "ExternalStringMap"), ("RO_SPACE", 0x045d9): (66, "ExternalStringMap"),
("RO_SPACE", 0x04511): (82, "ExternalStringWithOneByteDataMap"), ("RO_SPACE", 0x04641): (82, "ExternalStringWithOneByteDataMap"),
("RO_SPACE", 0x04579): (74, "ExternalOneByteStringMap"), ("RO_SPACE", 0x046a9): (74, "ExternalOneByteStringMap"),
("RO_SPACE", 0x045e1): (98, "ShortExternalStringMap"), ("RO_SPACE", 0x04711): (98, "ShortExternalStringMap"),
("RO_SPACE", 0x04649): (114, "ShortExternalStringWithOneByteDataMap"), ("RO_SPACE", 0x04779): (114, "ShortExternalStringWithOneByteDataMap"),
("RO_SPACE", 0x046b1): (0, "InternalizedStringMap"), ("RO_SPACE", 0x047e1): (0, "InternalizedStringMap"),
("RO_SPACE", 0x04719): (2, "ExternalInternalizedStringMap"), ("RO_SPACE", 0x04849): (2, "ExternalInternalizedStringMap"),
("RO_SPACE", 0x04781): (18, "ExternalInternalizedStringWithOneByteDataMap"), ("RO_SPACE", 0x048b1): (18, "ExternalInternalizedStringWithOneByteDataMap"),
("RO_SPACE", 0x047e9): (10, "ExternalOneByteInternalizedStringMap"), ("RO_SPACE", 0x04919): (10, "ExternalOneByteInternalizedStringMap"),
("RO_SPACE", 0x04851): (34, "ShortExternalInternalizedStringMap"), ("RO_SPACE", 0x04981): (34, "ShortExternalInternalizedStringMap"),
("RO_SPACE", 0x048b9): (50, "ShortExternalInternalizedStringWithOneByteDataMap"), ("RO_SPACE", 0x049e9): (50, "ShortExternalInternalizedStringWithOneByteDataMap"),
("RO_SPACE", 0x04921): (42, "ShortExternalOneByteInternalizedStringMap"), ("RO_SPACE", 0x04a51): (42, "ShortExternalOneByteInternalizedStringMap"),
("RO_SPACE", 0x04989): (106, "ShortExternalOneByteStringMap"), ("RO_SPACE", 0x04ab9): (106, "ShortExternalOneByteStringMap"),
("RO_SPACE", 0x049f1): (140, "FixedUint8ArrayMap"), ("RO_SPACE", 0x04b21): (140, "FixedUint8ArrayMap"),
("RO_SPACE", 0x04a59): (139, "FixedInt8ArrayMap"), ("RO_SPACE", 0x04b89): (139, "FixedInt8ArrayMap"),
("RO_SPACE", 0x04ac1): (142, "FixedUint16ArrayMap"), ("RO_SPACE", 0x04bf1): (142, "FixedUint16ArrayMap"),
("RO_SPACE", 0x04b29): (141, "FixedInt16ArrayMap"), ("RO_SPACE", 0x04c59): (141, "FixedInt16ArrayMap"),
("RO_SPACE", 0x04b91): (144, "FixedUint32ArrayMap"), ("RO_SPACE", 0x04cc1): (144, "FixedUint32ArrayMap"),
("RO_SPACE", 0x04bf9): (143, "FixedInt32ArrayMap"), ("RO_SPACE", 0x04d29): (143, "FixedInt32ArrayMap"),
("RO_SPACE", 0x04c61): (145, "FixedFloat32ArrayMap"), ("RO_SPACE", 0x04d91): (145, "FixedFloat32ArrayMap"),
("RO_SPACE", 0x04cc9): (146, "FixedFloat64ArrayMap"), ("RO_SPACE", 0x04df9): (146, "FixedFloat64ArrayMap"),
("RO_SPACE", 0x04d31): (147, "FixedUint8ClampedArrayMap"), ("RO_SPACE", 0x04e61): (147, "FixedUint8ClampedArrayMap"),
("RO_SPACE", 0x04d99): (149, "FixedBigUint64ArrayMap"), ("RO_SPACE", 0x04ec9): (149, "FixedBigUint64ArrayMap"),
("RO_SPACE", 0x04e01): (148, "FixedBigInt64ArrayMap"), ("RO_SPACE", 0x04f31): (148, "FixedBigInt64ArrayMap"),
("RO_SPACE", 0x04e69): (131, "SelfReferenceMarkerMap"), ("RO_SPACE", 0x04f99): (131, "SelfReferenceMarkerMap"),
("RO_SPACE", 0x04ee9): (172, "Tuple2Map"), ("RO_SPACE", 0x05019): (172, "Tuple2Map"),
("RO_SPACE", 0x04f61): (170, "ScriptMap"), ("RO_SPACE", 0x05211): (170, "ScriptMap"),
("RO_SPACE", 0x04fc9): (162, "InterceptorInfoMap"), ("RO_SPACE", 0x053d9): (162, "InterceptorInfoMap"),
("RO_SPACE", 0x08ec1): (154, "AccessorInfoMap"), ("RO_SPACE", 0x09be1): (154, "AccessorInfoMap"),
("RO_SPACE", 0x090d1): (153, "AccessCheckInfoMap"), ("RO_SPACE", 0x09df1): (153, "AccessCheckInfoMap"),
("RO_SPACE", 0x09139): (155, "AccessorPairMap"), ("RO_SPACE", 0x09e59): (155, "AccessorPairMap"),
("RO_SPACE", 0x091a1): (156, "AliasedArgumentsEntryMap"), ("RO_SPACE", 0x09ec1): (156, "AliasedArgumentsEntryMap"),
("RO_SPACE", 0x09209): (157, "AllocationMementoMap"), ("RO_SPACE", 0x09f29): (157, "AllocationMementoMap"),
("RO_SPACE", 0x09271): (158, "AllocationSiteMap"), ("RO_SPACE", 0x09f91): (158, "AllocationSiteMap"),
("RO_SPACE", 0x092d9): (159, "AsyncGeneratorRequestMap"), ("RO_SPACE", 0x09ff9): (159, "AsyncGeneratorRequestMap"),
("RO_SPACE", 0x09341): (160, "DebugInfoMap"), ("RO_SPACE", 0x0a061): (160, "DebugInfoMap"),
("RO_SPACE", 0x093a9): (161, "FunctionTemplateInfoMap"), ("RO_SPACE", 0x0a0c9): (161, "FunctionTemplateInfoMap"),
("RO_SPACE", 0x09411): (163, "InterpreterDataMap"), ("RO_SPACE", 0x0a131): (163, "InterpreterDataMap"),
("RO_SPACE", 0x09479): (164, "ModuleInfoEntryMap"), ("RO_SPACE", 0x0a199): (164, "ModuleInfoEntryMap"),
("RO_SPACE", 0x094e1): (165, "ModuleMap"), ("RO_SPACE", 0x0a201): (165, "ModuleMap"),
("RO_SPACE", 0x09549): (166, "ObjectTemplateInfoMap"), ("RO_SPACE", 0x0a269): (166, "ObjectTemplateInfoMap"),
("RO_SPACE", 0x095b1): (167, "PromiseCapabilityMap"), ("RO_SPACE", 0x0a2d1): (167, "PromiseCapabilityMap"),
("RO_SPACE", 0x09619): (168, "PromiseReactionMap"), ("RO_SPACE", 0x0a339): (168, "PromiseReactionMap"),
("RO_SPACE", 0x09681): (169, "PrototypeInfoMap"), ("RO_SPACE", 0x0a3a1): (169, "PrototypeInfoMap"),
("RO_SPACE", 0x096e9): (171, "StackFrameInfoMap"), ("RO_SPACE", 0x0a409): (171, "StackFrameInfoMap"),
("RO_SPACE", 0x09751): (173, "Tuple3Map"), ("RO_SPACE", 0x0a471): (173, "Tuple3Map"),
("RO_SPACE", 0x097b9): (174, "WasmCompiledModuleMap"), ("RO_SPACE", 0x0a4d9): (174, "WasmCompiledModuleMap"),
("RO_SPACE", 0x09821): (175, "WasmDebugInfoMap"), ("RO_SPACE", 0x0a541): (175, "WasmDebugInfoMap"),
("RO_SPACE", 0x09889): (176, "WasmExportedFunctionDataMap"), ("RO_SPACE", 0x0a5a9): (176, "WasmExportedFunctionDataMap"),
("RO_SPACE", 0x098f1): (177, "WasmSharedModuleDataMap"), ("RO_SPACE", 0x0a611): (177, "WasmSharedModuleDataMap"),
("RO_SPACE", 0x09959): (178, "CallableTaskMap"), ("RO_SPACE", 0x0a679): (178, "CallableTaskMap"),
("RO_SPACE", 0x099c1): (179, "CallbackTaskMap"), ("RO_SPACE", 0x0a6e1): (179, "CallbackTaskMap"),
("RO_SPACE", 0x09a29): (180, "PromiseFulfillReactionJobTaskMap"), ("RO_SPACE", 0x0a749): (180, "PromiseFulfillReactionJobTaskMap"),
("RO_SPACE", 0x09a91): (181, "PromiseRejectReactionJobTaskMap"), ("RO_SPACE", 0x0a7b1): (181, "PromiseRejectReactionJobTaskMap"),
("RO_SPACE", 0x09af9): (182, "PromiseResolveThenableJobTaskMap"), ("RO_SPACE", 0x0a819): (182, "PromiseResolveThenableJobTaskMap"),
("MAP_SPACE", 0x02201): (1057, "ExternalMap"), ("MAP_SPACE", 0x02201): (1057, "ExternalMap"),
("MAP_SPACE", 0x02259): (1072, "JSMessageObjectMap"), ("MAP_SPACE", 0x02259): (1072, "JSMessageObjectMap"),
} }
...@@ -301,50 +301,50 @@ KNOWN_OBJECTS = { ...@@ -301,50 +301,50 @@ KNOWN_OBJECTS = {
("RO_SPACE", 0x022b1): "NullValue", ("RO_SPACE", 0x022b1): "NullValue",
("RO_SPACE", 0x02339): "EmptyDescriptorArray", ("RO_SPACE", 0x02339): "EmptyDescriptorArray",
("RO_SPACE", 0x023b1): "EmptyFixedArray", ("RO_SPACE", 0x023b1): "EmptyFixedArray",
("RO_SPACE", 0x026c1): "UndefinedValue", ("RO_SPACE", 0x025a1): "UninitializedValue",
("RO_SPACE", 0x02759): "NanValue", ("RO_SPACE", 0x026f1): "UndefinedValue",
("RO_SPACE", 0x027d1): "TheHoleValue", ("RO_SPACE", 0x02789): "NanValue",
("RO_SPACE", 0x02889): "HoleNanValue", ("RO_SPACE", 0x02801): "TheHoleValue",
("RO_SPACE", 0x02899): "TrueValue", ("RO_SPACE", 0x028b9): "HoleNanValue",
("RO_SPACE", 0x02971): "FalseValue", ("RO_SPACE", 0x028c9): "TrueValue",
("RO_SPACE", 0x029c1): "empty_string", ("RO_SPACE", 0x029a1): "FalseValue",
("RO_SPACE", 0x04f51): "EmptyByteArray", ("RO_SPACE", 0x029f1): "empty_string",
("OLD_SPACE", 0x02201): "UninitializedValue", ("RO_SPACE", 0x02fb9): "EmptyScopeInfo",
("OLD_SPACE", 0x02231): "EmptyScopeInfo", ("RO_SPACE", 0x02fc9): "ArgumentsMarker",
("OLD_SPACE", 0x02241): "ArgumentsMarker", ("RO_SPACE", 0x03089): "Exception",
("OLD_SPACE", 0x02271): "Exception", ("RO_SPACE", 0x03149): "TerminationException",
("OLD_SPACE", 0x022a1): "TerminationException", ("RO_SPACE", 0x03211): "OptimizedOut",
("OLD_SPACE", 0x022d1): "OptimizedOut", ("RO_SPACE", 0x032d1): "StaleRegister",
("OLD_SPACE", 0x02301): "StaleRegister", ("RO_SPACE", 0x05091): "EmptyByteArray",
("OLD_SPACE", 0x02361): "EmptyFixedUint8Array", ("RO_SPACE", 0x050b1): "EmptyFixedUint8Array",
("OLD_SPACE", 0x02381): "EmptyFixedInt8Array", ("RO_SPACE", 0x050d1): "EmptyFixedInt8Array",
("OLD_SPACE", 0x023a1): "EmptyFixedUint16Array", ("RO_SPACE", 0x050f1): "EmptyFixedUint16Array",
("OLD_SPACE", 0x023c1): "EmptyFixedInt16Array", ("RO_SPACE", 0x05111): "EmptyFixedInt16Array",
("OLD_SPACE", 0x023e1): "EmptyFixedUint32Array", ("RO_SPACE", 0x05131): "EmptyFixedUint32Array",
("OLD_SPACE", 0x02401): "EmptyFixedInt32Array", ("RO_SPACE", 0x05151): "EmptyFixedInt32Array",
("OLD_SPACE", 0x02421): "EmptyFixedFloat32Array", ("RO_SPACE", 0x05171): "EmptyFixedFloat32Array",
("OLD_SPACE", 0x02441): "EmptyFixedFloat64Array", ("RO_SPACE", 0x05191): "EmptyFixedFloat64Array",
("OLD_SPACE", 0x02461): "EmptyFixedUint8ClampedArray", ("RO_SPACE", 0x051b1): "EmptyFixedUint8ClampedArray",
("OLD_SPACE", 0x024c1): "EmptyScript", ("RO_SPACE", 0x05289): "EmptySloppyArgumentsElements",
("OLD_SPACE", 0x02559): "ManyClosuresCell", ("RO_SPACE", 0x052a9): "EmptySlowElementDictionary",
("OLD_SPACE", 0x02569): "EmptySloppyArgumentsElements", ("RO_SPACE", 0x052f1): "EmptyOrderedHashMap",
("OLD_SPACE", 0x02589): "EmptySlowElementDictionary", ("RO_SPACE", 0x05319): "EmptyOrderedHashSet",
("OLD_SPACE", 0x025d1): "EmptyOrderedHashMap", ("RO_SPACE", 0x05351): "EmptyPropertyCell",
("OLD_SPACE", 0x025f9): "EmptyOrderedHashSet", ("RO_SPACE", 0x05379): "EmptyWeakCell",
("OLD_SPACE", 0x02631): "EmptyPropertyCell", ("RO_SPACE", 0x05459): "InfinityValue",
("OLD_SPACE", 0x02659): "EmptyWeakCell", ("RO_SPACE", 0x05469): "MinusZeroValue",
("OLD_SPACE", 0x026e1): "NoElementsProtector", ("RO_SPACE", 0x05479): "MinusInfinityValue",
("OLD_SPACE", 0x02709): "IsConcatSpreadableProtector", ("RO_SPACE", 0x05489): "SelfReferenceMarker",
("OLD_SPACE", 0x02719): "ArraySpeciesProtector", ("OLD_SPACE", 0x02211): "EmptyScript",
("OLD_SPACE", 0x02741): "TypedArraySpeciesProtector", ("OLD_SPACE", 0x02299): "ManyClosuresCell",
("OLD_SPACE", 0x02769): "PromiseSpeciesProtector", ("OLD_SPACE", 0x022b9): "NoElementsProtector",
("OLD_SPACE", 0x02791): "StringLengthProtector", ("OLD_SPACE", 0x022e1): "IsConcatSpreadableProtector",
("OLD_SPACE", 0x027a1): "ArrayIteratorProtector", ("OLD_SPACE", 0x022f1): "ArraySpeciesProtector",
("OLD_SPACE", 0x027c9): "ArrayBufferNeuteringProtector", ("OLD_SPACE", 0x02319): "TypedArraySpeciesProtector",
("OLD_SPACE", 0x02851): "InfinityValue", ("OLD_SPACE", 0x02341): "PromiseSpeciesProtector",
("OLD_SPACE", 0x02861): "MinusZeroValue", ("OLD_SPACE", 0x02369): "StringLengthProtector",
("OLD_SPACE", 0x02871): "MinusInfinityValue", ("OLD_SPACE", 0x02379): "ArrayIteratorProtector",
("OLD_SPACE", 0x02881): "SelfReferenceMarker", ("OLD_SPACE", 0x023a1): "ArrayBufferNeuteringProtector",
} }
# List of known V8 Frame Markers. # List of known V8 Frame Markers.
......
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