Skip to content

Commit

Permalink
fix(@angular-devkit/build-angular): provide workaround for V8 object …
Browse files Browse the repository at this point in the history
…spread performance defect

V8 currently has a performance defect involving object spread operations that can cause degradation
in runtime performance. By specifically not supporting the object spread language feature when using
the esbuild-based browser application builder, a downlevel form will be used instead which provides a
workaround for the performance issue. The downlevel form can cause up to a 600 byte increase in file
size if an object spread operation would otherwise be present in an output file.
For more details: https://bugs.chromium.org/p/v8/issues/detail?id=11536

(cherry picked from commit 942d555)
  • Loading branch information
clydin authored and dgp1130 committed Nov 1, 2022
1 parent ceda5d6 commit 8b84c18
Showing 1 changed file with 5 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,11 @@ function createCodeBundleOptions(
// loader to perform the downlevel transformation.
// NOTE: If esbuild adds support in the future, the babel support for async generators can be disabled.
'async-await': false,
// V8 currently has a performance defect involving object spread operations that can cause signficant
// degradation in runtime performance. By not supporting the language feature here, a downlevel form
// will be used instead which provides a workaround for the performance issue.
// For more details: https://bugs.chromium.org/p/v8/issues/detail?id=11536
'object-rest-spread': false,
},
mainFields: ['es2020', 'browser', 'module', 'main'],
conditions: ['es2020', 'es2015', 'module'],
Expand Down

0 comments on commit 8b84c18

Please sign in to comment.