Closed Bug 1677177 Opened 2 months ago Closed 2 months ago

Remove run-once lambda optimization from JS Parser/Emitter


(Core :: JavaScript Engine, task, P2)




85 Branch
Tracking Status
firefox85 --- fixed


(Reporter: tcampbell, Assigned: tcampbell)


(Blocks 1 open bug)



(4 files)

The ScriptStencil::isSingleton flag was used to influence TI parameters. With TI being removed in Bug 1673553, we can remove this machinery.

This is particularly valuable as it was the final place where ImmutableScriptFlags could mismatch between lazy and non-lazy scripts.

This is not needed now that TypeInference is permanently disabled. Release
asserts are used until the last vestiges of TI are removed.

This mechanism does nothing without TypeInference, so we can remove it now.
This is particularly valuable as this was the remaining case where the
ImmutableScriptFlags of a BaseScript could be mutated during delazification.

Depends on D97029

Blocks: 1677184
No longer blocks: 1677184

Now that we don't need to update ObjectGroup while instantiating stencil, we
don't need to worry about the standalone function case. A standalone function
also has the name set already so we do not need to worry about that either.

Depends on D97030

This code was originally moved because ParserAtom -> JSAtom conversion was
fallible. Now that we instantiate JSAtoms in bulk, we can move the name
update code to the same place as other inner-function updates.

Depends on D97056

Pushed by
Remove JSFunction::setTypeForScriptedFunction. r=jandem
Remove run-once-lambda/singleton-group heuristic. r=jandem
Remove ScriptStencil::isStandaloneFunction. r=arai
Move delazification function-name update to UpdateEmittedInnerFunctions. r=arai
You need to log in before you can comment on or make changes to this bug.