Revision: 15179
Author:   [email protected]
Date:     Mon Jun 17 04:11:41 2013
Log:      Fix bogus replay of arguments object binding in LChunkBuilder.

[email protected]
BUG=chromium:249894
TEST=webkit:fast/js/regress/inline-arguments-access.html

Review URL: https://codereview.chromium.org/16938009
http://code.google.com/p/v8/source/detail?r=15179

Modified:
 /branches/bleeding_edge/src/arm/lithium-arm.cc
 /branches/bleeding_edge/src/ia32/lithium-ia32.cc
 /branches/bleeding_edge/src/mips/lithium-mips.cc
 /branches/bleeding_edge/src/x64/lithium-x64.cc

=======================================
--- /branches/bleeding_edge/src/arm/lithium-arm.cc      Fri Jun 14 07:33:15 2013
+++ /branches/bleeding_edge/src/arm/lithium-arm.cc      Mon Jun 17 04:11:41 2013
@@ -2592,8 +2592,9 @@
                                                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);
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-ia32.cc Fri Jun 14 07:33:15 2013 +++ /branches/bleeding_edge/src/ia32/lithium-ia32.cc Mon Jun 17 04:11:41 2013
@@ -2734,8 +2734,9 @@
                                                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);
=======================================
--- /branches/bleeding_edge/src/mips/lithium-mips.cc Fri Jun 14 02:02:11 2013 +++ /branches/bleeding_edge/src/mips/lithium-mips.cc Mon Jun 17 04:11:41 2013
@@ -2463,8 +2463,9 @@
                                                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);
=======================================
--- /branches/bleeding_edge/src/x64/lithium-x64.cc      Fri Jun 14 07:33:15 2013
+++ /branches/bleeding_edge/src/x64/lithium-x64.cc      Mon Jun 17 04:11:41 2013
@@ -2529,8 +2529,9 @@
                                                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);

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to