summaryrefslogtreecommitdiffstats
path: root/js/src/frontend/BytecodeEmitter.cpp
Commit message (Collapse)AuthorAgeLines
* Bug 1343481 - Part 2: Stop using StarGegerator for async function.Gaming4JC2019-12-17-8/+15
| | | | Tag #1287
* Bug 1343481 - Part 1: Remove {JSFunction,JSScript,LazyScript}.isGenerator() ↵Gaming4JC2019-12-17-7/+12
| | | | | | method. Tag #1287
* 1339395 - Part 7: Remove no longer needed check for jsid strings which are ↵Gaming4JC2019-07-18-35/+4
| | | | indices from frontend.
* 1339395 - Part 3: Add BytecodeEmitter support for object rest and spread ↵Gaming4JC2019-07-18-45/+259
| | | | properties.
* 1339395 - Part 2: Add parser support for rest and spread object properties.Gaming4JC2019-07-18-0/+12
|
* 1344477 - Part 1: Add JSOP_CALL_IGNORES_RV for function call that ignores ↵Gaming4JC2019-07-18-25/+39
| | | | return value.
* 1216630 - Rename preludeStart and postludeEnd to toStringStart and ↵Gaming4JC2019-07-18-2/+2
| | | | toStringEnd and misc fixes.
* 1216630 - Print class source when calling toString on the constructor.Gaming4JC2019-07-18-1/+9
| | | | | | | | | | 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.
* 1342273 - Improve frontend tracelogging. [PARTIAL] Only implemented const to ↵Gaming4JC2019-07-18-15/+17
| | | | rvalue changes, no tracelogging
* 1283712 - Part 3: Add Parser::errorWithNotes and Parser::errorWithNotesAt.Gaming4JC2019-07-18-3/+4
|
* 1317375 - Implement "Template Literals Revision / Lifting Template Literal ↵Gaming4JC2019-07-18-0/+5
| | | | Restriction" ECMAScript proposal
* Remove JSOP_SPREADCALLARRAY and just use JSOP_NEWARRAY again.wolfbeast2019-06-18-5/+4
|
* Make use of ArrayObjects in favor of generic JS objects.wolfbeast2019-06-12-2/+2
| | | | | ArrayObjects has been a thing for years but been under-used. About time they are used where prudent.
* Improve efficiency of (C++) heap allocations related towolfbeast2019-05-28-10/+18
| | | | | | BytecodeEmitter::code. While there, also add some sanity checks and clean up code.
* Rename TokenStream::reportStrictWarningErrorNumberVA towolfbeast2019-04-06-4/+4
| | | | | | | TokenStream::reportExtraWarningErrorNumberVA for clarity. Emit Extra Warnings instead of Strict Warnings from the BCE where it makes sense.
* Split Parser::report into Parser::zeport (a temporary name) that useswolfbeast2019-04-05-2/+4
| | | | | the current offset, and Parser::reportWithNode that derives it from a Node.
* Stage 1-1: Implement Function.prototype.toString revision proposal.wolfbeast2019-02-02-1/+2
| | | | Tag #960
* Convert the trailing array of BindingNames at the end of the various kinds ↵trav902018-09-02-2/+3
| | | | of scope data into raw unsigned chars into which those BindingNames are placement-new'd, rather than memcpy-ing non-trivial classes around and failing to comply with the C++ object model
* Bug 1360839 - Call IteratorClose due to abrupt completion from yieldjanekptacijarabaci2018-03-25-8/+62
| | | | Issue #74
* Bug 1357075 - Pad a nop to unwind to the scope just before a destructuring ↵janekptacijarabaci2018-03-25-0/+8
| | | | | | iterator close trynote Issue #74
* Bug 1346862 - Fix IteratorClose due to non-local jumps being catchable by ↵janekptacijarabaci2018-03-25-13/+7
| | | | | | try statements inside for-of Issue #74
* Bug 1342553, Bug 1343072, Bug 1344753 (details in the description)janekptacijarabaci2018-03-25-147/+306
| | | | | | | | | | Bug 1342553 - Part 0.1: Use try-catch for IteratorClose in for-of Bug 1343072 - Update HasLiveStackValueAtDepth to follow the change in JSTRY_FOR_OF Bug 1344753 - Update for-of stack depth in ControlFlowGenerator::processWhileOrForInLoop Issue #74
* Bug 1338796 - Do not call iterator.return if iterator.throw is present in yield*janekptacijarabaci2018-03-25-122/+158
| | | | Issue #74
* Bug 1322069 - Add TryEmitterjanekptacijarabaci2018-03-25-169/+341
| | | | Issue #74
* Bug 1334799 - Handle stack value in correct order when leaving for-of loop ↵janekptacijarabaci2018-03-25-3/+3
| | | | | | from finally block Issue #74
* Bug 1332881 - Handle stack value in correct order when leaving loop and ↵janekptacijarabaci2018-03-25-0/+6
| | | | | | try-finally Issue #74
* Bug 1147371: Implement calling IteratorClose and "return" on iterators in yield*janekptacijarabaci2018-03-24-28/+52
| | | | Issue #74
* Bug 1147371: Implement IteratorClose for array destructuringjanekptacijarabaci2018-03-24-92/+126
| | | | Issue #74
* Bug 1147371: Rename allowContentSpread to allowContentIterjanekptacijarabaci2018-03-24-10/+20
| | | | Issue #74
* Bug 1147371: Implement IteratorClose for for-ofjanekptacijarabaci2018-03-24-164/+455
| | | | Issue #74
* Bug 1204028: Evaluate LHS reference before RHS in destructuringjanekptacijarabaci2018-03-20-88/+189
| | | | | Issue #73 [Depends on] Bug 1147371: Implement IteratorClose
* Bug 1322314 - Do not emit ParseNode twice in ↵janekptacijarabaci2018-03-20-138/+119
| | | | | | | BytecodeEmitter::emitDestructuringOpsArray Issue #73 [Depends on] Bug 1147371: Implement IteratorClose
* Bug 1322314 - Disallow emitting ParseNode twicejanekptacijarabaci2018-03-20-25/+4
| | | | | Issue #73 [Depends on] Bug 1147371: Implement IteratorClose
* Follow up: A opening bracket { was added; Added "function()->explicitName()" ↵janekptacijarabaci2018-03-19-1/+1
| | | | | | instead of "function()->name()" Issue #78
* Part 2: Call NameFunctions after emittingjanekptacijarabaci2018-03-19-2/+0
| | | | Issue #78
* Part 1: Implement ES6 function name property semanticsjanekptacijarabaci2018-03-19-12/+99
| | | | Issue #78
* Bug 1320042: Rename BytecodeEmitter::emitConditionallyExecuted{SOMETHING} to ↵janekptacijarabaci2018-03-19-16/+16
| | | | | | | | BytecodeEmitter::emit{SOMETHING}InBranch Issue #78 [Depends on] Bug 883377: Implement ES6 function "name" property semantics
* Bug 1320388: Move JSFunction::HAS_REST to JSScript and LazyScriptjanekptacijarabaci2018-03-19-3/+3
| | | | | | Issue #78 [Depends on] Bug 883377: Implement ES6 function "name" property semantics
* Add m-esr52 at 52.6.0Matt A. Tobin2018-02-02-0/+10170