| Index: src/hydrogen.cc | 
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc | 
| index 3d0d5505aea05800177fdce62d85f9cafe7dcaef..e86d216120284823466b697d5a4a27715f3477d2 100644 | 
| --- a/src/hydrogen.cc | 
| +++ b/src/hydrogen.cc | 
| @@ -8919,9 +8919,11 @@ void HOptimizedGraphBuilder::VisitCallNew(CallNew* expr) { | 
| } else { | 
| // The constructor function is both an operand to the instruction and an | 
| // argument to the construct call. | 
| +    Handle<JSFunction> array_function = | 
| +        Handle<JSFunction>(isolate()->global_context()->array_function(), | 
| +                           isolate()); | 
| bool use_call_new_array = FLAG_optimize_constructed_arrays && | 
| -        !(expr->target().is_null()) && | 
| -        *(expr->target()) == isolate()->global_context()->array_function(); | 
| +        expr->target().is_identical_to(array_function); | 
|  | 
| CHECK_ALIVE(VisitArgument(expr->expression())); | 
| HValue* constructor = HPushArgument::cast(Top())->argument(); | 
| @@ -8929,6 +8931,7 @@ void HOptimizedGraphBuilder::VisitCallNew(CallNew* expr) { | 
| HCallNew* call; | 
| if (use_call_new_array) { | 
| Handle<Cell> cell = expr->allocation_info_cell(); | 
| +      AddInstruction(new(zone()) HCheckFunction(constructor, array_function)); | 
| call = new(zone()) HCallNewArray(context, constructor, argument_count, | 
| cell); | 
| } else { | 
|  |