02:11
<devsnek>
does the production LabelledItem : FunctionDeclaration only exist so B.3.2 can modify it
02:25
<jmdyck>
Modify its Early Error rule, yeah looks like it.
03:53
<devsnek>
so in regex
03:53
<devsnek>
\0 is nul
03:53
<devsnek>
\1 through \9 are meta "nth capturing group" magi
03:53
<devsnek>
magic*
03:53
<devsnek>
and any other digits are just an escape
03:53
<devsnek>
?
03:54
<jmdyck>
digits other than 0-9?
03:56
<devsnek>
like \123
03:58
<jmdyck>
no, \123 should be a reference to the 123rd capturing group
03:59
<devsnek>
> /\123/.test('S')
03:59
<jmdyck>
(but only if the regex has at least 13 capturing groups
04:00
<jmdyck>
"It is a Syntax Error if the CapturingGroupNumber of DecimalEscape is larger than NcapturingParens (21.2.2.1)."
04:00
<rkirsling>
yeah the magic only applies if the capturing groups exist
04:00
<rkirsling>
`/\1/.test('\1')` is true
04:00
<jmdyck>
(s/13/123/)
04:00
<devsnek>
this is evil i hate this
04:03
<jmdyck>
well, at least you don't have to interpret it as "\1 followed by '23'" if the regex has < 12 cap groups, or "\12 followed by '3'" if it has less than 123 groups
04:04
<devsnek>
i would've just not had octal escapes
04:04
<jmdyck>
Legacy!
09:54
<jackworks>
https://twitter.com/jackworks_asref/status/1289859760829812738
09:55
<jackworks>
CC people in the chrome team here 👀
17:58
<devsnek>
where's the definition of IteratorDestructuringAssignmentEvaluation for ObjectAssignmentPattern
18:01
<Bakkot>
devsnek: is IteratorDestructuringAssignmentEvaluation ever invoked for ObjectAssignmentPattern?
18:02
<Bakkot>
I don't see a path whereby that could happen
18:02
<devsnek>
like if you have
18:02
<devsnek>
[{}]
18:02
<devsnek>
that says do the IteratorDestructuringAssignmentEvaluation of AssignmentElementList
18:04
<devsnek>
oh wait the refinements are lazy
18:04
<devsnek>
this makes more sense now
18:05
<Bakkot>
IteratorDestructuringAssignmentEvaluation is defined for `AssignmentElisionElement:AssignmentElement`
18:05
<Bakkot>
and for `AssignmentElement : DestructuringAssignmentTarget Initialzer_opt`
18:05
<devsnek>
yeah i see now
18:05
<devsnek>
when i was refining the ArrayLiteral
18:05
<devsnek>
i was doing it recursively
18:06
<Bakkot>
ah, yeah
19:56
<devsnek>
((x = eval('var x = 1')) => {})()
19:56
<devsnek>
apparently this is supposed to throw a SyntaxError
19:56
<devsnek>
i'm guessing from EvalDeclarationInstantiation step 3.d ish?
20:01
<Bakkot>
I believe so
20:01
<Bakkot>
this is fairly new; see https://github.com/tc39/ecma262/pull/1046
20:02
<devsnek>
spooky