| 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 |