I have a couple of comments on top of Kasper's.  I think we need to be
careful with evaluation order here.


http://codereview.chromium.org/12673/diff/1/15
File src/codegen-arm.cc (right):

http://codereview.chromium.org/12673/diff/1/15#newcode2323
Line 2323: Label after_call;
Move this new code before the "Fast-case" comment and comment on what it
is doing.

http://codereview.chromium.org/12673/diff/1/15#newcode2328
Line 2328: Load(function);
Does this give us the correct evaluation order?  Shouldn't we always
load the arguments first and then load the function?  Loading the
arguments might change what the function should resolve to.

http://codereview.chromium.org/12673/diff/1/15#newcode2331
Line 2331: __ b(eq, &not_direct_eval);
Is it OK to branch out here and redo the function call?  You have
already evaluated the function expression, and falling into the next
code, you will do that again?  Since evaluating the function expression
might have side-effects we shouldn't do that.

We should probably handle the call in this code no matter if it is an
eval call or not.

http://codereview.chromium.org/12673/diff/1/6
File src/macro-assembler-arm.h (right):

http://codereview.chromium.org/12673/diff/1/6#newcode191
Line 191: // Takes the holder as an object pointer, finds its instance
type
Takes the register that holds the holder object pointer ...

http://codereview.chromium.org/12673

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to