Index: src/ia32/full-codegen-ia32.cc |
diff --git a/src/ia32/full-codegen-ia32.cc b/src/ia32/full-codegen-ia32.cc |
index 772eb8f9054c3121447068516d23ba7915f98c94..95213d1ebd97ad8332c7982e068a142b187eb415 100644 |
--- a/src/ia32/full-codegen-ia32.cc |
+++ b/src/ia32/full-codegen-ia32.cc |
@@ -3689,19 +3689,18 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) { |
if (prop != NULL) { |
VisitForStackValue(prop->obj()); |
VisitForStackValue(prop->key()); |
+ __ InvokeBuiltin(Builtins::DELETE, CALL_FUNCTION); |
} else if (var->is_global()) { |
__ push(GlobalObjectOperand()); |
__ push(Immediate(var->name())); |
+ __ InvokeBuiltin(Builtins::DELETE, CALL_FUNCTION); |
} 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()); |
__ push(Immediate(var->name())); |
- __ CallRuntime(Runtime::kLookupContext, 2); |
- __ push(eax); |
- __ push(Immediate(var->name())); |
+ __ CallRuntime(Runtime::kDeleteContextSlot, 2); |
} |
- __ InvokeBuiltin(Builtins::DELETE, CALL_FUNCTION); |
context()->Plug(eax); |
} |
break; |