| Index: src/hydrogen.cc | 
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc | 
| index 3c4ff159eb22b9b92595a5843f83c492c6c2d589..69969bdf28113dde6f0a47a23dd1db63536d4a0b 100644 | 
| --- a/src/hydrogen.cc | 
| +++ b/src/hydrogen.cc | 
| @@ -2657,6 +2657,18 @@ void HGraphBuilder::BuildCreateAllocationMemento( | 
| } | 
|  | 
|  | 
| +HInstruction* HGraphBuilder::BuildGetNativeContext(HValue* closure) { | 
| +  // Get the global context, then the native context | 
| +  HInstruction* context = | 
| +      Add<HLoadNamedField>(closure, HObjectAccess::ForFunctionContextPointer()); | 
| +  HInstruction* global_object = Add<HLoadNamedField>(context, | 
| +      HObjectAccess::ForContextSlot(Context::GLOBAL_OBJECT_INDEX)); | 
| +  HObjectAccess access = HObjectAccess::ForJSObjectOffset( | 
| +      GlobalObject::kNativeContextOffset); | 
| +  return Add<HLoadNamedField>(global_object, access); | 
| +} | 
| + | 
| + | 
| HInstruction* HGraphBuilder::BuildGetNativeContext() { | 
| // Get the global context, then the native context | 
| HInstruction* global_object = Add<HGlobalObject>(); | 
| @@ -2716,7 +2728,12 @@ HValue* HGraphBuilder::JSArrayBuilder::EmitMapCode() { | 
| return builder()->AddLoadNamedField(constructor_function_, access); | 
| } | 
|  | 
| -  HInstruction* native_context = builder()->BuildGetNativeContext(); | 
| +  // TODO(mvstanton): we should always have a constructor function if we | 
| +  // are creating a stub. | 
| +  HInstruction* native_context = constructor_function_ != NULL | 
| +      ? builder()->BuildGetNativeContext(constructor_function_) | 
| +      : builder()->BuildGetNativeContext(); | 
| + | 
| HInstruction* index = builder()->Add<HConstant>( | 
| static_cast<int32_t>(Context::JS_ARRAY_MAPS_INDEX)); | 
|  | 
|  |