Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix a functional redeferral issue involving inlinees. #1815

Closed
wants to merge 2 commits into from

Conversation

pleath
Copy link
Contributor

@pleath pleath commented Oct 24, 2016

A function that has been inlined in a non-deferred function cannot itself be deferred. This means that we need two passes over the set of active FunctionBody's to determine the set of legal candidates. The first pass closes over the set of candidates: the functional and heuristic rules are applied, and for each function that will not be redeferred, we (recursively) mark all its inlinees as non-candidates. The second pass redefers all the functions that have not be marked as non-candidates.

eligible for deferred parsing (e.g., not arrow functions, not
functions-in-block). This is experimental behavior, off by default. Define
an 'on' mode in which all eligible functions are redeferred on GC, as well
as a 'stress' mode in which all candidates are redeferred on each stack
probe. This change is built on a previous PR that refactors the
FunctionBody hierarchy to make it easier to toggle between deferred and
fully-compiled states.
… has been inlined in a non-deferred function cannot itself be deferred. This means that we need two passes over the set of active FunctionBody's to determine the set of legal candidates. The first pass closes over the set of candidates: the functional and heuristic rules are applied, and for each function that will not be redeferred, we (recursively) mark all its inlinees as non-candidates. The second pass redefers all the functions that have not be marked as non-candidates.
@pleath
Copy link
Contributor Author

pleath commented Oct 26, 2016

Subsumed by #1585.

@pleath pleath closed this Oct 26, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants