angular-cn/packages/compiler-cli
crisbeto 22786c8e88 fix(ivy): incorrectly generating shared pure function between null and object literal (#35481)
In #33705 we made it so that we generate pure functions for object/array literals in order to avoid having them be shared across elements/views. The problem this introduced is that further down the line the `ContantPool` uses the generated literal in order to figure out whether to share an existing factory or to create a new one. `ConstantPool` determines whether to share a factory by creating a key from the AST node and using it to look it up in the factory cache, however the key generation function didn't handle function invocations and replaced them with `null`. This means that the key for `{foo: pureFunction0(...)}` and `{foo: null}` are the same.

These changes rework the logic so that instead of generating a `null` key
for function invocations, we generate a variable called `<unknown>` which
shouldn't be able to collide with anything.

Fixes #35298.

PR Close #35481
2020-02-20 15:23:58 -08:00
..
integrationtest feat(ngcc): automatically clean outdated ngcc artifacts (#35079) 2020-01-31 17:02:44 -08:00
ngcc fix(ngcc): add default config for `angular2-highcharts` (#35527) 2020-02-20 15:12:07 -08:00
src fix(compiler): use FatalDiagnosticError to generate better error messages (#35244) 2020-02-20 11:25:23 -08:00
test fix(ivy): incorrectly generating shared pure function between null and object literal (#35481) 2020-02-20 15:23:58 -08:00
BUILD.bazel build: remove dependency on `@types/chokidar` (#35371) 2020-02-19 12:49:52 -08:00
index.ts refactor(compiler-cli): Move diagnostics files to language service (#33809) 2019-11-14 09:29:07 -08:00
package.json feat(ngcc): automatically clean outdated ngcc artifacts (#35079) 2020-01-31 17:02:44 -08:00
tsconfig-build.json build: reference zone.js from source directly instead of npm. (#33046) 2019-11-06 00:48:34 +00:00
tsconfig.json perf(ivy): ngcc - only find dependencies when targeting a single entry-point (#30525) 2019-07-09 09:40:46 -07:00