Pad the environment with 0 rather than the receiver to avoid influencing the representation of the join.

R=titzer@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23707055

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
verwaest@chromium.org 2013-09-20 11:34:05 +00:00
parent de39d37d5d
commit 3dd88c4067

View File

@ -6153,7 +6153,8 @@ void HOptimizedGraphBuilder::HandlePolymorphicCallNamed(
// Because the deopt may be the only path in the polymorphic call, make sure // Because the deopt may be the only path in the polymorphic call, make sure
// that the environment stack matches the depth on deopt that it otherwise // that the environment stack matches the depth on deopt that it otherwise
// would have had after a successful call. // would have had after a successful call.
Drop(argument_count - (ast_context()->IsEffect() ? 0 : 1)); Drop(argument_count);
if (!ast_context()->IsEffect()) Push(graph()->GetConstant0());
FinishExitWithHardDeoptimization("Unknown map in polymorphic call", join); FinishExitWithHardDeoptimization("Unknown map in polymorphic call", join);
} else { } else {
HValue* context = environment()->context(); HValue* context = environment()->context();