Fix bogus replay of arguments object binding in LChunkBuilder.
R=jkummerow@chromium.org BUG=chromium:249894 TEST=webkit:fast/js/regress/inline-arguments-access.html Review URL: https://codereview.chromium.org/16938009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
2f731575f5
commit
5fe01da568
@ -2592,8 +2592,9 @@ LInstruction* LChunkBuilder::DoEnterInlined(HEnterInlined* instr) {
|
||||
undefined,
|
||||
instr->inlining_kind(),
|
||||
instr->undefined_receiver());
|
||||
if (instr->arguments_var() != NULL) {
|
||||
inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject());
|
||||
// Only replay binding of arguments object if it wasn't removed from graph.
|
||||
if (instr->arguments_var() != NULL && instr->arguments_object()->IsLinked()) {
|
||||
inner->Bind(instr->arguments_var(), instr->arguments_object());
|
||||
}
|
||||
inner->set_entry(instr);
|
||||
current_block_->UpdateEnvironment(inner);
|
||||
|
@ -2734,8 +2734,9 @@ LInstruction* LChunkBuilder::DoEnterInlined(HEnterInlined* instr) {
|
||||
undefined,
|
||||
instr->inlining_kind(),
|
||||
instr->undefined_receiver());
|
||||
if (instr->arguments_var() != NULL) {
|
||||
inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject());
|
||||
// Only replay binding of arguments object if it wasn't removed from graph.
|
||||
if (instr->arguments_var() != NULL && instr->arguments_object()->IsLinked()) {
|
||||
inner->Bind(instr->arguments_var(), instr->arguments_object());
|
||||
}
|
||||
inner->set_entry(instr);
|
||||
current_block_->UpdateEnvironment(inner);
|
||||
|
@ -2463,8 +2463,9 @@ LInstruction* LChunkBuilder::DoEnterInlined(HEnterInlined* instr) {
|
||||
undefined,
|
||||
instr->inlining_kind(),
|
||||
instr->undefined_receiver());
|
||||
if (instr->arguments_var() != NULL) {
|
||||
inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject());
|
||||
// Only replay binding of arguments object if it wasn't removed from graph.
|
||||
if (instr->arguments_var() != NULL && instr->arguments_object()->IsLinked()) {
|
||||
inner->Bind(instr->arguments_var(), instr->arguments_object());
|
||||
}
|
||||
inner->set_entry(instr);
|
||||
current_block_->UpdateEnvironment(inner);
|
||||
|
@ -2529,8 +2529,9 @@ LInstruction* LChunkBuilder::DoEnterInlined(HEnterInlined* instr) {
|
||||
undefined,
|
||||
instr->inlining_kind(),
|
||||
instr->undefined_receiver());
|
||||
if (instr->arguments_var() != NULL) {
|
||||
inner->Bind(instr->arguments_var(), graph()->GetArgumentsObject());
|
||||
// Only replay binding of arguments object if it wasn't removed from graph.
|
||||
if (instr->arguments_var() != NULL && instr->arguments_object()->IsLinked()) {
|
||||
inner->Bind(instr->arguments_var(), instr->arguments_object());
|
||||
}
|
||||
inner->set_entry(instr);
|
||||
current_block_->UpdateEnvironment(inner);
|
||||
|
Loading…
Reference in New Issue
Block a user