Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index ddc74e2f734b1b67056a54e26e4f2b92dd157ca1..eb66527d1f5499f0e3d1e4da9e96fa2a20c5143f 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -2992,22 +2992,20 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { |
if (prop != NULL) { |
VisitForStackValue(prop->obj()); |
VisitForStackValue(prop->key()); |
+ __ InvokeBuiltin(Builtins::DELETE, CALL_JS); |
} else if (var->is_global()) { |
__ ldr(r1, GlobalObjectOperand()); |
__ mov(r0, Operand(var->name())); |
__ Push(r1, r0); |
+ __ InvokeBuiltin(Builtins::DELETE, CALL_JS); |
} else { |
- // Non-global variable. Call the runtime to look up the context |
- // where the variable was introduced. |
+ // Non-global variable. Call the runtime to delete from the |
+ // context where the variable was introduced. |
__ push(context_register()); |
__ mov(r2, Operand(var->name())); |
__ push(r2); |
- __ CallRuntime(Runtime::kLookupContext, 2); |
- __ push(r0); |
- __ mov(r2, Operand(var->name())); |
- __ push(r2); |
+ __ CallRuntime(Runtime::kDeleteContextSlot, 2); |
} |
- __ InvokeBuiltin(Builtins::DELETE, CALL_JS); |
context()->Plug(r0); |
} |
break; |