https://codereview.chromium.org/1309843007/diff/60001/src/interpreter/bytecode-generator.cc
File src/interpreter/bytecode-generator.cc (right):
https://codereview.chromium.org/1309843007/diff/60001/src/interpreter/bytecode-generator.cc#newcode318
src/interpreter/bytecode-generator.cc:318: Visit(expr->obj());
On 2015/09/02 08:16:14, Michael Starzinger wrote:
The JavaScript evaluation order is first to evaluate the object and
then
evaluate the key. That is observable with e.g. ...
(o.something_that_prints())[o.something_that_throws()];
Thanks, I should have paid more attention to this! Done, by changing
round the LoadIC bytecode to expect "name" in the accumulator and
"object" in the named register.
This is actually better overall, since once we can eliminate redundant
register load/store operations the common case (where the object is a
local or a parameter) can turn into:
LoadConstant <name>
LoadIC <local> <slot>
instead of the previous:
LoadConstant <name>
Star <tmp>
Lrda <local>
LoadIC <tmp> <slot>
https://codereview.chromium.org/1309843007/
--
--
v8-dev mailing list
v8-dev@googlegroups.com
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 v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.