In ES5 and ES2015, class identifiers may have aliases. Previously, the `NgccReflectionHost`s recognized the following formats: - ES5: ```js var MyClass = (function () { function InnerClass() {} InnerClass_1 = InnerClass; ... }()); ``` - ES2015: ```js let MyClass = MyClass_1 = class MyClass { ... }; ``` In addition to the above, this commit adds support for recognizing an alias outside the IIFE in ES5 classes (which was previously not supported): ```js var MyClass = MyClass_1 = (function () { ... }()); ``` Jira issue: [FW-1869](https://angular-team.atlassian.net/browse/FW-1869) Partially addresses #35399. PR Close #35527
Angular Compatibility Compiler (ngcc)
This compiler will convert node_modules
compiled with ngc
, into node_modules
which
appear to have been compiled with ngtsc
.
This conversion will allow such "legacy" packages to be used by the Ivy rendering engine.
Building
The project is built using Bazel:
yarn bazel build //packages/compiler-cli/ngcc
Unit Testing
The unit tests are built and run using Bazel:
yarn bazel test //packages/compiler-cli/ngcc/test
Integration Testing
There are tests that check the behavior of the overall executable:
yarn bazel test //packages/compiler-cli/ngcc/test:integration