Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index eb31d5aeeb339890dc7eb03f6f7b1f822d703720..59f6bab9a2e0b1f36f60cc2d500fa17830bbcf6e 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -339,7 +339,9 @@ void LCodeGen::WriteTranslation(LEnvironment* environment, |
int height = translation_size - environment->parameter_count(); |
WriteTranslation(environment->outer(), translation); |
- int closure_id = DefineDeoptimizationLiteral(environment->closure()); |
+ int closure_id = *info()->closure() != *environment->closure() |
+ ? DefineDeoptimizationLiteral(environment->closure()) |
+ : Translation::kSelfLiteralId; |
translation->BeginFrame(environment->ast_id(), closure_id, height); |
for (int i = 0; i < translation_size; ++i) { |
LOperand* value = environment->values()->at(i); |