Index: src/elements.cc |
diff --git a/src/elements.cc b/src/elements.cc |
index 10fc1be97b165430e40f833f54deb2f8f2d8ecef..2faa9ff9abaf6feba0c107b4168cde3876cc6454 100644 |
--- a/src/elements.cc |
+++ b/src/elements.cc |
@@ -185,14 +185,15 @@ static void CopyDictionaryToObjectElements( |
WriteBarrierMode write_barrier_mode = IsFastObjectElementsKind(to_kind) |
? UPDATE_WRITE_BARRIER |
: SKIP_WRITE_BARRIER; |
+ Isolate* isolate = from->GetIsolate(); |
for (int i = 0; i < copy_size; i++) { |
int entry = from->FindEntry(i + from_start); |
if (entry != SeededNumberDictionary::kNotFound) { |
Object* value = from->ValueAt(entry); |
- DCHECK(!value->IsTheHole(from->GetIsolate())); |
+ DCHECK(!value->IsTheHole(isolate)); |
to->set(i + to_start, value, write_barrier_mode); |
} else { |
- to->set_the_hole(i + to_start); |
+ to->set_the_hole(isolate, i + to_start); |
} |
} |
} |
@@ -761,9 +762,7 @@ class ElementsAccessorBase : public ElementsAccessor { |
isolate->heap()->RightTrimFixedArray(*backing_store, capacity - length); |
} else { |
// Otherwise, fill the unused tail with holes. |
- for (uint32_t i = length; i < old_length; i++) { |
- BackingStore::cast(*backing_store)->set_the_hole(i); |
- } |
+ BackingStore::cast(*backing_store)->FillWithHoles(length, old_length); |
} |
} else { |
// Check whether the backing store should be expanded. |
@@ -1814,7 +1813,7 @@ class FastElementsAccessor : public ElementsAccessorBase<Subclass, KindTraits> { |
} |
Isolate* isolate = obj->GetIsolate(); |
- backing_store->set_the_hole(entry); |
+ backing_store->set_the_hole(isolate, entry); |
// TODO(verwaest): Move this out of elements.cc. |
// If an old space backing store is larger than a certain size and |
@@ -3281,7 +3280,7 @@ class SlowSloppyArgumentsElementsAccessor |
context->set(context_entry, *value); |
// Redefining attributes of an aliased element destroys fast aliasing. |
- parameter_map->set_the_hole(entry + 2); |
+ parameter_map->set_the_hole(isolate, entry + 2); |
// For elements that are still writable we re-establish slow aliasing. |
if ((attributes & READ_ONLY) == 0) { |
value = isolate->factory()->NewAliasedArgumentsEntry(context_entry); |
@@ -3340,7 +3339,7 @@ class FastSloppyArgumentsElementsAccessor |
if (entry != kMaxUInt32 && HasEntryImpl(isolate, parameters, entry)) { |
elements->set(insertion_index, *GetImpl(parameters, entry)); |
} else { |
- elements->set_the_hole(insertion_index); |
+ elements->set_the_hole(isolate, insertion_index); |
} |
insertion_index++; |
} |