Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index f7a2740ef5a4ab7f3a19be4733950c7ca75cfcba..5427a8c319d59369dd8f6e5fbde3aea5789e1d43 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -2374,16 +2374,18 @@ bool Isolate::use_crankshaft() const { |
bool Isolate::IsFastArrayConstructorPrototypeChainIntact() { |
- Handle<PropertyCell> no_elements_cell = |
- handle(heap()->array_protector(), this); |
+ PropertyCell* no_elements_cell = heap()->array_protector(); |
bool cell_reports_intact = no_elements_cell->value()->IsSmi() && |
Smi::cast(no_elements_cell->value())->value() == 1; |
#ifdef DEBUG |
Map* root_array_map = |
get_initial_js_array_map(GetInitialFastElementsKind()); |
- JSObject* initial_array_proto = JSObject::cast(*initial_array_prototype()); |
- JSObject* initial_object_proto = JSObject::cast(*initial_object_prototype()); |
+ Context* native_context = context()->native_context(); |
+ JSObject* initial_array_proto = JSObject::cast( |
+ native_context->get(Context::INITIAL_ARRAY_PROTOTYPE_INDEX)); |
+ JSObject* initial_object_proto = JSObject::cast( |
+ native_context->get(Context::INITIAL_OBJECT_PROTOTYPE_INDEX)); |
if (root_array_map == NULL || initial_array_proto == initial_object_proto) { |
// We are in the bootstrapping process, and the entire check sequence |
@@ -2426,7 +2428,6 @@ bool Isolate::IsFastArrayConstructorPrototypeChainIntact() { |
void Isolate::UpdateArrayProtectorOnSetElement(Handle<JSObject> object) { |
- Handle<PropertyCell> array_protector = factory()->array_protector(); |
if (IsFastArrayConstructorPrototypeChainIntact() && |
object->map()->is_prototype_map()) { |
Object* context = heap()->native_contexts_list(); |
@@ -2436,7 +2437,7 @@ void Isolate::UpdateArrayProtectorOnSetElement(Handle<JSObject> object) { |
*object || |
current_context->get(Context::INITIAL_ARRAY_PROTOTYPE_INDEX) == |
*object) { |
- PropertyCell::SetValueWithInvalidation(array_protector, |
+ PropertyCell::SetValueWithInvalidation(factory()->array_protector(), |
handle(Smi::FromInt(0), this)); |
break; |
} |