summaryrefslogtreecommitdiff
path: root/extensions
diff options
context:
space:
mode:
authorFranklinDM <mrmineshafter17@gmail.com>2022-04-26 21:24:29 +0800
committerFranklinDM <mrmineshafter17@gmail.com>2022-05-04 14:57:17 +0800
commit2ed7526705b546267f4e5fbf157a02c812eb935f (patch)
tree5eccde8e7903baa294964b49d2067b47d06e785a /extensions
parent9ecfdbe358f2f72ea65a36a68473d71016f68d74 (diff)
downloaduxp-2ed7526705b546267f4e5fbf157a02c812eb935f.tar.gz
Issue #1658 - Part 4: Fix optional chaining assertions and remove unreachable code
This includes the following: Bug 1611777 - Part 1: Report syntax error for optional property access in self-hosting code. r=yulia! Bug 1611777 - Part 2: Merge same blocks in emitDeleteOptionalChain(). r=yulia! Bug 1611777 - Part 3: N/A Bug 1611777 - Part 4: `super` can't occur on the left-hand side of an optional chain Bug 1611777 - Part 5: Remove unnecessary super-handling in optional delete. r=yulia! The child node of a DeleteOptionalChainExpr node can't be a super-property accessor, so we can remove this code. Bug 1611777 - Part 6: Crash for unexpected super-base in optional call. r=yulia! Bug 1611777 - Part 7: Add missing entries to list of valid optional chain start expressions. r=yulia! Bug 1611777 - Part 8: Add missing emitGet in emitOptionalElemExpression. r=yulia! Aligns emitOptionalElemExpression() with emitOptionalDotExpression(), so it's easier to compare both methods against each other. Bug 1611777 - Part 9: Replace an if-statement with an assertion. r=yulia! Bug 1611777 - Part 10: N/A Bug 1611777 - Part 11: Support optional chaining in class heritage expression. r=yulia! Bug 1611777 - Part 12: Use optionalExpr() for update expressions to match spec grammar. r=yulia! Using optionalExpr matches the spec grammar more closely. This change also modifies the reported error message. ++a?.b reported before this change "unexpected token: '?.'", but now reports "invalid increment/decrement operand". Bug 1611777 - Part 13: N/A Bug 1611777 - Part 14: Simplify two lines in optionalExpr(). r=yulia! We don't need to test for tt == TokenKind::Eof when we return for tt != TokenKind::OptionalChain anyway. Omit local variable for the result value and instead use a tail-call. This matches the local style in the parser more closely. Bug 1611777 - Part 15: Support FunCall/FunApply optimisations for optional chaining. r=yulia! Bug 1611777 - Part 16: Pass through ValueUsage in optional chains. r=yulia
Diffstat (limited to 'extensions')
0 files changed, 0 insertions, 0 deletions