| Index: src/arm/lithium-arm.cc | 
| diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc | 
| index 12a6290fbcbaef3780f3158d65f5d3c1bcf2541e..cba861b7be278dbf83eb3181d6fee3186f9f440f 100644 | 
| --- a/src/arm/lithium-arm.cc | 
| +++ b/src/arm/lithium-arm.cc | 
| @@ -2440,6 +2440,22 @@ LInstruction* LChunkBuilder::DoArgumentsObject(HArgumentsObject* instr) { | 
|  | 
|  | 
| LInstruction* LChunkBuilder::DoCapturedObject(HCapturedObject* instr) { | 
| +  HEnvironment* env = current_block_->last_environment(); | 
| +  ASSERT(env != NULL); | 
| + | 
| +  // Replay captured objects by replacing all captured objects with the | 
| +  // same capture id in the current and all outer environments. | 
| +  while (env != NULL) { | 
| +    for (int i = 0; i < env->length(); ++i) { | 
| +      HValue* value = env->values()->at(i); | 
| +      if (value->IsCapturedObject() && | 
| +          HCapturedObject::cast(value)->capture_id() == instr->capture_id()) { | 
| +        env->SetValueAt(i, instr); | 
| +      } | 
| +    } | 
| +    env = env->outer(); | 
| +  } | 
| + | 
| // There are no real uses of a captured object. | 
| return NULL; | 
| } | 
|  |