Reviewers: Lasse Reichstein,

Message:
Small change.

Description:
X64 Implementation: Correct error with initializer blocks

Please review this at http://codereview.chromium.org/149008

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
   M     src/x64/codegen-x64.cc


Index: src/x64/codegen-x64.cc
===================================================================
--- src/x64/codegen-x64.cc      (revision 2275)
+++ src/x64/codegen-x64.cc      (working copy)
@@ -1486,7 +1486,8 @@
        // The receiver is the argument to the runtime call.  It is the
        // first value pushed when the reference was loaded to the
        // frame.
-      frame_->PushElementAt(target.size() - 1);
+      // TODO(X64): Enable this and the switch back to fast, once they  
work.
+      // frame_->PushElementAt(target.size() - 1);
        // Result ignored = frame_->CallRuntime(Runtime::kToSlowProperties,  
1);
      }
      if (node->op() == Token::ASSIGN ||
@@ -1538,7 +1539,8 @@
          // argument to the runtime call is the receiver, which is the
          // first value pushed as part of the reference, which is below
          // the lhs value.
-        frame_->PushElementAt(target.size());
+        // TODO(X64): Enable this once ToFastProperties works.
+        // frame_->PushElementAt(target.size());
          // Result ignored =  
frame_->CallRuntime(Runtime::kToFastProperties, 1);
        }
      }
@@ -2305,7 +2307,7 @@
        (operation != NULL && operation->op() == Token::TYPEOF) &&
        (right->AsLiteral() != NULL &&
         right->AsLiteral()->handle()->IsString())) {
-    Handle<String> check(String::cast(*right->AsLiteral()->handle()));
+    Handle<String>  
check(Handle<String>::cast(right->AsLiteral()->handle()));

      // Load the operand and move it to a register.
      LoadTypeofExpression(operation->expression());
@@ -3323,11 +3325,7 @@
        // When non-smi, call out to the compare stub.
        CompareStub stub(cc, strict);
        Result answer = frame_->CallStub(&stub, &left_side, &right_side);
-      if (cc == equal) {
-        __ testq(answer.reg(), answer.reg());
-      } else {
-        __ cmpq(answer.reg(), Immediate(0));
-      }
+      __ testq(answer.reg(), answer.reg());  // Both zero and sign flag  
right.
        answer.Unuse();
        dest->Split(cc);
      } else {



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to