On 2015/08/06 14:43:53, rossberg wrote:
I also tried digging into it, but without much success. Something must be
pointing into the wild, but I couldn't find out what.

Some cases fail with an invalid access. I'd try to breakpoint on those in the debugger and try to figure out what there pointing at and where it is coming
from. Maybe that gives a hint.

The "some cases" clause raises a flag for me, because I wasn't able to find any cases involving [[Call]]-ing an arrow function with rest parameters which didn't result in an access violation. Reading all registers makes it look like rbx is null and being dereferenced somehow, but it could be from dereferencing the [
rax + 0xf ] operand, wherever that is coming from. I was hoping someone more
accustomed to the various parts of the baseline x64 codegen might have an idea
what it's likely these are.

The next thing you could try is not invoking DeclareParameter on the rest
param
at all, and just desugar using a temporary instead. In fact, it should be
possible to make it such that all traces of a rest parameter effectively
disappear after desugaring. (The only thing you probably need to remember is
whether the parameter list was simple, for allocating the right arguments
object
later.)

You could also try to temporarily replace the desugaring with a nop. If that
doesn't make the problem go away then maybe something is f-ed up with
variable/temporary allocation?

Could be, I'll spend some more time on that this week

Maybe there also is some weird problem with doing the desugaring after
processing the body. Could be worth a shot trying to undo that (with the TC39
resolution it doesn't seem necessary anymore anyway).

I'll revert-ish the change from July (thus desugar before the body is parsed), but I won't add any early errors when the language mode directive is found. I
don't think people are going to appreciate that change very much :( It
definitely does make the language weird, at least until people are reliably able
to use modules.

https://codereview.chromium.org/1272673003/

--
--
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/d/optout.

Reply via email to