Closed Bug 1473796 Opened 2 years ago Closed 1 year ago

Add helper classes to emit bytecode for function

Categories

(Core :: JavaScript Engine, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
mozilla67
Tracking Status
firefox67 --- fixed

People

(Reporter: arai, Assigned: arai)

References

(Blocks 1 open bug)

Details

Attachments

(4 files)

Just like others (bug 1456006, bug 1456404).

Emitting function consists of two parts:
  1. emitting function declaration/expression on the parent script
  2. emitting parameters/body in the child script

To reuse the classes in BinAST streaming compilation which uses different compiler than current BytecodeEmitter which does "ParseNode=>bytecode",
those 2 parts should be separated into 2 classes.
Summary: Add classes helper to emit bytecode for function → Add helper classes to emit bytecode for function
bug 1475458 needs to be addressed, in order to design the interface.
Depends on: 1475458
See Also: → 1518391
Depends on: 1519005
Depends on: 1284719
Depends on: es-fields

bug 1530324 removes wrapper for async, and also modifies the async body.

Depends on: 1530324
Pushed by arai_a@mac.com:
https://hg.mozilla.org/integration/autoland/rev/f53c8cedef75
Part 1: Add DefaultEmitter. r=jorendorff
https://hg.mozilla.org/integration/autoland/rev/d20d700c80d5
Part 2: Do not use TokenPos in BytecodeEmitter::{setFunctionBodyEndPos,setScriptStartOffsetIfUnset}. r=jorendorff
https://hg.mozilla.org/integration/autoland/rev/7e1e3f35d7cf
Part 3: Move DestructuringFlavor into its own header. r=jorendorff
https://hg.mozilla.org/integration/autoland/rev/2429f6898afa
Part 4: Add FunctionEmitter, FunctionScriptEmitter, and FunctionParamsEmitter. r=jorendorff
You need to log in before you can comment on or make changes to this bug.