| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 84e6a8c54290245472306de55e9088a30f6cb317..6043caa0f47f84ed16c18535eed3f278204b17b3 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -1050,12 +1050,14 @@ void HGraphBuilder::PadEnvironmentForContinuation(
|
| HBasicBlock* continuation) {
|
| if (continuation->last_environment() != NULL) {
|
| // When merging from a deopt block to a continuation, resolve differences in
|
| - // environment by pushing undefined and popping extra values so that the
|
| - // environments match during the join.
|
| + // environment by pushing constant 0 and popping extra values so that the
|
| + // environments match during the join. Push 0 since it has the most specific
|
| + // representation, and will not influence representation inference of the
|
| + // phi.
|
| int continuation_env_length = continuation->last_environment()->length();
|
| while (continuation_env_length != from->last_environment()->length()) {
|
| if (continuation_env_length > from->last_environment()->length()) {
|
| - from->last_environment()->Push(graph()->GetConstantUndefined());
|
| + from->last_environment()->Push(graph()->GetConstant0());
|
| } else {
|
| from->last_environment()->Pop();
|
| }
|
|
|