summaryrefslogtreecommitdiff
path: root/js/src/frontend/SyntaxParseHandler.h
Commit message (Collapse)AuthorAge
* Issue #1658 - Part 4: Fix optional chaining assertions and remove ↵FranklinDM2022-05-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Issue #1658 - Part 1: Implement support for optional chaining in the JS ParserFranklinDM2022-05-04
| | | | Partially based on: https://bugzilla.mozilla.org/show_bug.cgi?id=1566143
* Issue #1656 - Part 7: Nuke vim config lines in JSMoonchild2020-09-24
|
* Bug 1343481 - Part 7: Add BytecodeEmitter::emitDotGenerator and make ↵Gaming4JC2019-12-17
| | | | | | yield/await nodes unary. Tag #1287
* 1339395 - Part 2: Add parser support for rest and spread object properties.Gaming4JC2019-07-18
|
* 1303703 - Part 3: Syntax parse destructuring assignment patterns.Gaming4JC2019-07-18
|
* 1216630 - Print class source when calling toString on the constructor.Gaming4JC2019-07-18
| | | | | | | | | | This is accomplished in the following ways. LazyScripts and JSScripts now have 4 offsets: - Source begin and end for the actual source. This is used for lazy parsing. - toString begin and end for toString. Some kinds of functions, like async, only have a different begin offset. Class constructors have different offsets for both begin and end. For syntactically present (i.e. non-default) constructors, the class source span is remembered directly on the LazyScript or JSScript. The toString implementation then splices out the substring directly. For default constructors, a new SRC_CLASS SrcNote type is added. It's binary and has as its arguments the begin and end offsets of the class expression or statement. MakeDefaultConstructor reads the note and overrides the cloned self-hosted function's source object. This is probably the least intrusive way to accomplish this.
* 1339963 - Part 1: Split Parser::exportDeclaration.Gaming4JC2019-07-18
|
* 1317375 - Implement "Template Literals Revision / Lifting Template Literal ↵Gaming4JC2019-07-18
| | | | Restriction" ECMAScript proposal
* 1315815 - Don't treat async or await as a keyword when they contain escapes.Gaming4JC2019-07-18
|
* Move the Parser::checkFunctionDefinition call into its callers.wolfbeast2019-04-06
|
* Specify an explicit offset when warning about "use asm" found in thewolfbeast2019-04-05
| | | | directive prologue of a script (rather than a function body).
* Part 1: Implement ES6 function name property semanticsjanekptacijarabaci2018-03-19
| | | | Issue #78
* Add m-esr52 at 52.6.0Matt A. Tobin2018-02-02