| Index: src/ia32/builtins-ia32.cc | 
| diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc | 
| index bcd713dce79ff1b56558b5f387c5c7898cb58eba..e3b2b7b78870581ad44fcfc82635e7e6a5ac098a 100644 | 
| --- a/src/ia32/builtins-ia32.cc | 
| +++ b/src/ia32/builtins-ia32.cc | 
| @@ -1496,17 +1496,19 @@ void Builtins::Generate_ArrayConstructCode(MacroAssembler* masm) { | 
| __ CmpObjectType(ecx, MAP_TYPE, ecx); | 
| __ Assert(equal, "Unexpected initial map for Array function"); | 
|  | 
| -    // We should either have undefined in ebx or a valid jsglobalpropertycell | 
| -    Label okay_here; | 
| -    Handle<Object> undefined_sentinel( | 
| -        masm->isolate()->heap()->undefined_value(), masm->isolate()); | 
| -    Handle<Map> global_property_cell_map( | 
| -        masm->isolate()->heap()->global_property_cell_map()); | 
| -    __ cmp(ebx, Immediate(undefined_sentinel)); | 
| -    __ j(equal, &okay_here); | 
| -    __ cmp(FieldOperand(ebx, 0), Immediate(global_property_cell_map)); | 
| -    __ Assert(equal, "Expected property cell in register ebx"); | 
| -    __ bind(&okay_here); | 
| +    if (FLAG_optimize_constructed_arrays) { | 
| +      // We should either have undefined in ebx or a valid jsglobalpropertycell | 
| +      Label okay_here; | 
| +      Handle<Object> undefined_sentinel( | 
| +          masm->isolate()->heap()->undefined_value(), masm->isolate()); | 
| +      Handle<Map> global_property_cell_map( | 
| +          masm->isolate()->heap()->global_property_cell_map()); | 
| +      __ cmp(ebx, Immediate(undefined_sentinel)); | 
| +      __ j(equal, &okay_here); | 
| +      __ cmp(FieldOperand(ebx, 0), Immediate(global_property_cell_map)); | 
| +      __ Assert(equal, "Expected property cell in register ebx"); | 
| +      __ bind(&okay_here); | 
| +    } | 
| } | 
|  | 
| if (FLAG_optimize_constructed_arrays) { | 
|  |