Index: src/objects-debug.cc |
diff --git a/src/objects-debug.cc b/src/objects-debug.cc |
index 69cf5001b4aa6fc59f6495607322b85c8cdae943..96da68778b52dff9ca1895333707d15fde2503ce 100644 |
--- a/src/objects-debug.cc |
+++ b/src/objects-debug.cc |
@@ -211,7 +211,7 @@ void Symbol::SymbolVerify() { |
CHECK(IsSymbol()); |
CHECK(HasHashCode()); |
CHECK(Hash() > 0u); |
- CHECK(name()->IsUndefined() || name()->IsString()); |
+ CHECK(name()->IsUndefined(GetIsolate()) || name()->IsString()); |
} |
@@ -289,6 +289,7 @@ void JSObject::JSObjectVerify() { |
actual_unused_property_fields - JSObject::kFieldsAdded); |
} |
DescriptorArray* descriptors = map()->instance_descriptors(); |
+ Isolate* isolate = GetIsolate(); |
for (int i = 0; i < map()->NumberOfOwnDescriptors(); i++) { |
if (descriptors->GetDetails(i).type() == DATA) { |
Representation r = descriptors->GetDetails(i).representation(); |
@@ -312,7 +313,7 @@ void JSObject::JSObjectVerify() { |
// object literal creation and we will end up having and undefined |
// value that does not match the field type. |
CHECK(!field_type->NowStable() || field_type->NowContains(value) || |
- (!FLAG_use_allocation_folding && value->IsUndefined())); |
+ (!FLAG_use_allocation_folding && value->IsUndefined(isolate))); |
} |
} |
} |
@@ -338,7 +339,7 @@ void Map::MapVerify() { |
CHECK(instance_size() == kVariableSizeSentinel || |
(kPointerSize <= instance_size() && |
instance_size() < heap->Capacity())); |
- CHECK(GetBackPointer()->IsUndefined() || |
+ CHECK(GetBackPointer()->IsUndefined(heap->isolate()) || |
!Map::cast(GetBackPointer())->is_stable()); |
VerifyHeapPointer(prototype()); |
VerifyHeapPointer(instance_descriptors()); |
@@ -412,7 +413,7 @@ void TransitionArray::TransitionArrayVerify() { |
VerifyPointer(e); |
} |
CHECK_LE(LengthFor(number_of_transitions()), length()); |
- CHECK(next_link()->IsUndefined() || next_link()->IsSmi() || |
+ CHECK(next_link()->IsUndefined(GetIsolate()) || next_link()->IsSmi() || |
next_link()->IsTransitionArray()); |
} |
@@ -432,7 +433,7 @@ void JSGeneratorObject::JSGeneratorObjectVerify() { |
void JSModule::JSModuleVerify() { |
VerifyObjectField(kContextOffset); |
VerifyObjectField(kScopeInfoOffset); |
- CHECK(context()->IsUndefined() || |
+ CHECK(context()->IsUndefined(GetIsolate()) || |
Context::cast(context())->IsModuleContext()); |
} |
@@ -449,16 +450,18 @@ void JSDate::JSDateVerify() { |
if (value()->IsHeapObject()) { |
VerifyHeapPointer(value()); |
} |
- CHECK(value()->IsUndefined() || value()->IsSmi() || value()->IsHeapNumber()); |
- CHECK(year()->IsUndefined() || year()->IsSmi() || year()->IsNaN()); |
- CHECK(month()->IsUndefined() || month()->IsSmi() || month()->IsNaN()); |
- CHECK(day()->IsUndefined() || day()->IsSmi() || day()->IsNaN()); |
- CHECK(weekday()->IsUndefined() || weekday()->IsSmi() || weekday()->IsNaN()); |
- CHECK(hour()->IsUndefined() || hour()->IsSmi() || hour()->IsNaN()); |
- CHECK(min()->IsUndefined() || min()->IsSmi() || min()->IsNaN()); |
- CHECK(sec()->IsUndefined() || sec()->IsSmi() || sec()->IsNaN()); |
- CHECK(cache_stamp()->IsUndefined() || |
- cache_stamp()->IsSmi() || |
+ Isolate* isolate = GetIsolate(); |
+ CHECK(value()->IsUndefined(isolate) || value()->IsSmi() || |
+ value()->IsHeapNumber()); |
+ CHECK(year()->IsUndefined(isolate) || year()->IsSmi() || year()->IsNaN()); |
+ CHECK(month()->IsUndefined(isolate) || month()->IsSmi() || month()->IsNaN()); |
+ CHECK(day()->IsUndefined(isolate) || day()->IsSmi() || day()->IsNaN()); |
+ CHECK(weekday()->IsUndefined(isolate) || weekday()->IsSmi() || |
+ weekday()->IsNaN()); |
+ CHECK(hour()->IsUndefined(isolate) || hour()->IsSmi() || hour()->IsNaN()); |
+ CHECK(min()->IsUndefined(isolate) || min()->IsSmi() || min()->IsNaN()); |
+ CHECK(sec()->IsUndefined(isolate) || sec()->IsSmi() || sec()->IsNaN()); |
+ CHECK(cache_stamp()->IsUndefined(isolate) || cache_stamp()->IsSmi() || |
cache_stamp()->IsNaN()); |
if (month()->IsSmi()) { |
@@ -487,7 +490,7 @@ void JSDate::JSDateVerify() { |
} |
if (cache_stamp()->IsSmi()) { |
CHECK(Smi::cast(cache_stamp())->value() <= |
- Smi::cast(GetIsolate()->date_cache()->stamp())->value()); |
+ Smi::cast(isolate->date_cache()->stamp())->value()); |
} |
} |
@@ -555,7 +558,7 @@ void JSFunction::JSFunctionVerify() { |
VerifyObjectField(kNextFunctionLinkOffset); |
CHECK(code()->IsCode()); |
CHECK(next_function_link() == NULL || |
- next_function_link()->IsUndefined() || |
+ next_function_link()->IsUndefined(GetIsolate()) || |
next_function_link()->IsJSFunction()); |
CHECK(map()->is_callable()); |
} |
@@ -569,7 +572,7 @@ void SharedFunctionInfo::SharedFunctionInfoVerify() { |
VerifyObjectField(kFeedbackMetadataOffset); |
VerifyObjectField(kScopeInfoOffset); |
VerifyObjectField(kInstanceClassNameOffset); |
- CHECK(function_data()->IsUndefined() || IsApiFunction() || |
+ CHECK(function_data()->IsUndefined(GetIsolate()) || IsApiFunction() || |
HasBuiltinFunctionId() || HasBytecodeArray()); |
VerifyObjectField(kFunctionDataOffset); |
VerifyObjectField(kScriptOffset); |
@@ -708,12 +711,12 @@ void Code::VerifyEmbeddedObjectsDependency() { |
void JSArray::JSArrayVerify() { |
JSObjectVerify(); |
- CHECK(length()->IsNumber() || length()->IsUndefined()); |
+ Isolate* isolate = GetIsolate(); |
+ CHECK(length()->IsNumber() || length()->IsUndefined(isolate)); |
// If a GC was caused while constructing this array, the elements |
// pointer may point to a one pointer filler map. |
if (ElementsAreSafeToExamine()) { |
- CHECK(elements()->IsUndefined() || |
- elements()->IsFixedArray() || |
+ CHECK(elements()->IsUndefined(isolate) || elements()->IsFixedArray() || |
elements()->IsFixedDoubleArray()); |
} |
} |
@@ -723,7 +726,7 @@ void JSSet::JSSetVerify() { |
CHECK(IsJSSet()); |
JSObjectVerify(); |
VerifyHeapPointer(table()); |
- CHECK(table()->IsOrderedHashTable() || table()->IsUndefined()); |
+ CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(GetIsolate())); |
// TODO(arv): Verify OrderedHashTable too. |
} |
@@ -732,7 +735,7 @@ void JSMap::JSMapVerify() { |
CHECK(IsJSMap()); |
JSObjectVerify(); |
VerifyHeapPointer(table()); |
- CHECK(table()->IsOrderedHashTable() || table()->IsUndefined()); |
+ CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(GetIsolate())); |
// TODO(arv): Verify OrderedHashTable too. |
} |
@@ -741,9 +744,10 @@ void JSSetIterator::JSSetIteratorVerify() { |
CHECK(IsJSSetIterator()); |
JSObjectVerify(); |
VerifyHeapPointer(table()); |
- CHECK(table()->IsOrderedHashTable() || table()->IsUndefined()); |
- CHECK(index()->IsSmi() || index()->IsUndefined()); |
- CHECK(kind()->IsSmi() || kind()->IsUndefined()); |
+ Isolate* isolate = GetIsolate(); |
+ CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(isolate)); |
+ CHECK(index()->IsSmi() || index()->IsUndefined(isolate)); |
+ CHECK(kind()->IsSmi() || kind()->IsUndefined(isolate)); |
} |
@@ -751,9 +755,10 @@ void JSMapIterator::JSMapIteratorVerify() { |
CHECK(IsJSMapIterator()); |
JSObjectVerify(); |
VerifyHeapPointer(table()); |
- CHECK(table()->IsOrderedHashTable() || table()->IsUndefined()); |
- CHECK(index()->IsSmi() || index()->IsUndefined()); |
- CHECK(kind()->IsSmi() || kind()->IsUndefined()); |
+ Isolate* isolate = GetIsolate(); |
+ CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(isolate)); |
+ CHECK(index()->IsSmi() || index()->IsUndefined(isolate)); |
+ CHECK(kind()->IsSmi() || kind()->IsUndefined(isolate)); |
} |
@@ -761,7 +766,7 @@ void JSWeakMap::JSWeakMapVerify() { |
CHECK(IsJSWeakMap()); |
JSObjectVerify(); |
VerifyHeapPointer(table()); |
- CHECK(table()->IsHashTable() || table()->IsUndefined()); |
+ CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate())); |
} |
@@ -769,13 +774,14 @@ void JSWeakSet::JSWeakSetVerify() { |
CHECK(IsJSWeakSet()); |
JSObjectVerify(); |
VerifyHeapPointer(table()); |
- CHECK(table()->IsHashTable() || table()->IsUndefined()); |
+ CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate())); |
} |
void JSRegExp::JSRegExpVerify() { |
JSObjectVerify(); |
- CHECK(data()->IsUndefined() || data()->IsFixedArray()); |
+ Isolate* isolate = GetIsolate(); |
+ CHECK(data()->IsUndefined(isolate) || data()->IsFixedArray()); |
switch (TypeTag()) { |
case JSRegExp::ATOM: { |
FixedArray* arr = FixedArray::cast(data()); |
@@ -811,7 +817,7 @@ void JSRegExp::JSRegExpVerify() { |
} |
default: |
CHECK_EQ(JSRegExp::NOT_COMPILED, TypeTag()); |
- CHECK(data()->IsUndefined()); |
+ CHECK(data()->IsUndefined(isolate)); |
break; |
} |
} |
@@ -821,9 +827,10 @@ void JSProxy::JSProxyVerify() { |
CHECK(IsJSProxy()); |
VerifyPointer(target()); |
VerifyPointer(handler()); |
+ Isolate* isolate = GetIsolate(); |
CHECK_EQ(target()->IsCallable(), map()->is_callable()); |
CHECK_EQ(target()->IsConstructor(), map()->is_constructor()); |
- CHECK(hash()->IsSmi() || hash()->IsUndefined()); |
+ CHECK(hash()->IsSmi() || hash()->IsUndefined(isolate)); |
CHECK(map()->prototype()->IsNull()); |
// There should be no properties on a Proxy. |
CHECK_EQ(0, map()->NumberOfOwnDescriptors()); |
@@ -834,8 +841,8 @@ void JSArrayBuffer::JSArrayBufferVerify() { |
CHECK(IsJSArrayBuffer()); |
JSObjectVerify(); |
VerifyPointer(byte_length()); |
- CHECK(byte_length()->IsSmi() || byte_length()->IsHeapNumber() |
- || byte_length()->IsUndefined()); |
+ CHECK(byte_length()->IsSmi() || byte_length()->IsHeapNumber() || |
+ byte_length()->IsUndefined(GetIsolate())); |
} |
@@ -843,16 +850,17 @@ void JSArrayBufferView::JSArrayBufferViewVerify() { |
CHECK(IsJSArrayBufferView()); |
JSObjectVerify(); |
VerifyPointer(buffer()); |
- CHECK(buffer()->IsJSArrayBuffer() || buffer()->IsUndefined() |
- || buffer() == Smi::FromInt(0)); |
+ Isolate* isolate = GetIsolate(); |
+ CHECK(buffer()->IsJSArrayBuffer() || buffer()->IsUndefined(isolate) || |
+ buffer() == Smi::FromInt(0)); |
VerifyPointer(raw_byte_offset()); |
CHECK(raw_byte_offset()->IsSmi() || raw_byte_offset()->IsHeapNumber() || |
- raw_byte_offset()->IsUndefined()); |
+ raw_byte_offset()->IsUndefined(isolate)); |
VerifyPointer(raw_byte_length()); |
CHECK(raw_byte_length()->IsSmi() || raw_byte_length()->IsHeapNumber() || |
- raw_byte_length()->IsUndefined()); |
+ raw_byte_length()->IsUndefined(isolate)); |
} |
@@ -861,7 +869,7 @@ void JSTypedArray::JSTypedArrayVerify() { |
JSArrayBufferViewVerify(); |
VerifyPointer(raw_length()); |
CHECK(raw_length()->IsSmi() || raw_length()->IsHeapNumber() || |
- raw_length()->IsUndefined()); |
+ raw_length()->IsUndefined(GetIsolate())); |
VerifyPointer(elements()); |
} |
@@ -1003,12 +1011,13 @@ void Script::ScriptVerify() { |
void NormalizedMapCache::NormalizedMapCacheVerify() { |
FixedArray::cast(this)->FixedArrayVerify(); |
if (FLAG_enable_slow_asserts) { |
+ Isolate* isolate = GetIsolate(); |
for (int i = 0; i < length(); i++) { |
Object* e = FixedArray::get(i); |
if (e->IsMap()) { |
Map::cast(e)->DictionaryMapVerify(); |
} else { |
- CHECK(e->IsUndefined()); |
+ CHECK(e->IsUndefined(isolate)); |
} |
} |
} |
@@ -1062,9 +1071,9 @@ void JSObject::IncrementSpillStatistics(SpillInformation* info) { |
int holes = 0; |
FixedArray* e = FixedArray::cast(elements()); |
int len = e->length(); |
- Heap* heap = GetHeap(); |
+ Isolate* isolate = GetIsolate(); |
for (int i = 0; i < len; i++) { |
- if (e->get(i) == heap->the_hole_value()) holes++; |
+ if (e->get(i)->IsTheHole(isolate)) holes++; |
} |
info->number_of_fast_used_elements_ += len - holes; |
info->number_of_fast_unused_elements_ += holes; |