Avoid unnecessary work during lookahead #9982
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We were create a comment object but not doing anything with it. Then I noticed that even calling
pushComment()
is unnecessary and this way we avoid some slicing on the input.Also we were calling
updateContext()
during lookahead which potentially could add a new context to the state, but as we do not clone arrays in state during lookahead this would mess up the state.And we always only check the
type
or thevalue
on the lookahead state.And because we do no call
updateContext()
anymore I don't think we need to clonethis.state.context
every time, because it won't be change during lookahead.I did not see any noticeable performance change, but we are doing
lookahead()
mostly in flow/ts plugins which I haven't tested.