chore(performance): optimize regressed for..of and array destructuring performance #4080
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.
One of the issues we uncovered in #3648 is that upgrading to ES6 output maintained the
for..of
and array destructuring in our bundles which leads to a pretty considerable performance regression. This changes our build step to account for these less performant syntaxes and transforms them.There is more low hanging fruit that can be optimised like the custom accumulatormap/... however starting with a quick win. The babel plugin also still leverages the iterator spec for non-array for loops, it optimises what it can
Fixes #3648
The performance implication would be higher if we did something akin to #3687