00:17
<shu>
rbuckton: riddle me this
00:17
<shu>
i see in your explicit resource management test262 PR you have a test that for (using of of [1,2,3]) {} isn't supposed the parse
00:18
<shu>
the grammar as i read it says that for the production for ( [lookahead ≠ using of] ForDeclaration[?Yield, ?Await, +Using] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]
00:18
<shu>

because of the negative lookahead, for (using of of [1,2,3]) {} is always parsed as

for ( [lookahead ∉ { let, async of }] LeftHandSideExpression[?Yield, ?Await] of AssignmentExpression[+In, ?Yield, ?Await] ) Statement[?Yield, ?Await, ?Return]

00:19
<shu>
but for (using of of [1,2,3]) {} does parse as that: using is an identifier, the first of is the of in the for-of, and of[1,2,3] is an assignment expression of a computed property access on the identifier of
00:19
<shu>
what am i missing
00:19
<shu>
or is this language getting more cursed every day
00:29
<Luca Casonato>
Wow that is cursed
00:30
<nicolo-ribaudo>
The way we implemented it in Babel matches your reading
00:53
<TabAtkins>
Why are the whitespace rules so incredibly lax/cursed, omg
03:17
<snek>
this is a feature
03:20
<bakkot>
that might be one of the best parses I've ever seen
03:22
<rkirsling>
we found a new wat
03:51
<rbuckton>
but for (using of of [1,2,3]) {} does parse as that: using is an identifier, the first of is the of in the for-of, and of[1,2,3] is an assignment expression of a computed property access on the identifier of
I'm not near a computer to check. If it's legal then the test is wrong. The important bit is that the parse isn't ambiguous.
03:53
<rbuckton>
I'll have to check later. If you could file a bug on the repo, I'd be greatful.