mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
7fb4309cca
This commit makes several changes to the implementation of `NgForOf` to reduce its code size in production builds: 1. The tailor-made message for an unsupported differ is fully tree-shaken in production builds, in favor of the exception from the differ factory itself. 2. The private `_perViewChange` method was changed into a free-standing function, to allow its name to be minimized. 3. The need for an intermediate `RecordViewTuple` was avoided by applying the operation in-place, instead of collecting all insertions into a buffer first. This is safe as the `_perViewChange` operation that used to be done on each `RecordViewTuple` is entirely local to the tuple itself. Hence, it is invariant to execution ordering which means that the `_perViewChange` can be executed directly during the `forEachOperation` loop. PR Close #44315
Bundle
js_expected_symbol_test
This folder contains tests which assert that most of the code is tree shaken away. This is asserted by keeping gold files of all symbols which are expected to be retained. When doing renaming it is often necessary to update the gold files, to do so use these commands:
yarn bazel run //packages/core/test/bundling/injection:symbol_test.accept
yarn bazel run //packages/core/test/bundling/cyclic_import:symbol_test.accept
yarn bazel run //packages/core/test/bundling/forms:symbol_test.accept
yarn bazel run //packages/core/test/bundling/hello_world:symbol_test.accept
yarn bazel run //packages/core/test/bundling/router:symbol_test.accept
yarn bazel run //packages/core/test/bundling/todo:symbol_test.accept
Running all symbol tests
To run all symbol tests with one command, you can use the following scripts:
yarn run symbol-extractor:check
yarn run symbol-extractor:update