Index: src/ia32/virtual-frame-ia32.cc |
diff --git a/src/ia32/virtual-frame-ia32.cc b/src/ia32/virtual-frame-ia32.cc |
index d2485392f5cbea7c1c2dc2a464c3ee50c6617e17..5e44f94d0c1404528d798325b5372fbad59b170a 100644 |
--- a/src/ia32/virtual-frame-ia32.cc |
+++ b/src/ia32/virtual-frame-ia32.cc |
@@ -1175,6 +1175,25 @@ void VirtualFrame::EmitPush(Immediate immediate, NumberInfo::Type info) { |
} |
+void VirtualFrame::Push(Expression* expr) { |
+ ASSERT(expr->IsTrivial()); |
+ |
+ Literal* lit = expr->AsLiteral(); |
+ if (lit != NULL) { |
+ Push(lit->handle()); |
+ return; |
+ } |
+ |
+ VariableProxy* proxy = expr->AsVariableProxy(); |
+ if (proxy != NULL && proxy->is_this()) { |
+ PushParameterAt(-1); |
+ return; |
+ } |
+ |
+ UNREACHABLE(); |
+} |
+ |
+ |
#undef __ |
} } // namespace v8::internal |