Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index 5b62a8a09c80321721c91b002c257348cc8af88e..0aeb43a1b1c932d0aae9aa9f9d760958cede8afb 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -299,7 +299,10 @@ void LoadIC::ClearInlinedVersion(Address address) { |
// present) to guarantee failure by holding an invalid map (the null |
// value). The offset can be patched to anything. |
PatchInlinedLoad(address, Heap::null_value(), 0); |
- PatchInlinedContextualLoad(address, Heap::null_value(), Heap::null_value()); |
+ PatchInlinedContextualLoad(address, |
+ Heap::null_value(), |
+ Heap::null_value(), |
+ true); |
} |
@@ -848,7 +851,10 @@ Object* LoadIC::Load(State state, Handle<Object> object, Handle<String> name) { |
JSGlobalPropertyCell* cell = JSGlobalPropertyCell::cast( |
lookup.holder()->property_dictionary()->ValueAt( |
lookup.GetDictionaryEntry())); |
- if (PatchInlinedContextualLoad(address(), map, cell)) { |
+ if (PatchInlinedContextualLoad(address(), |
+ map, |
+ cell, |
+ lookup.IsDontDelete())) { |
set_target(megamorphic_stub()); |
TRACE_IC_NAMED("[LoadIC : inline contextual patch %s]\n", name); |
ASSERT(cell->value() != Heap::the_hole_value()); |