angular-cn/packages/compiler-cli/test/compliance
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
..
BUILD.bazel test: handle bootstrap templated_args in jasmine_node_test defaults.bzl (#34736) 2020-01-15 14:58:07 -05:00
README.md build: migrate references and scripts that set to build with ivy via compile=aot to use config=ivy (#33983) 2019-11-26 16:38:40 -05:00
mock_compile.ts refactor(compiler): i18n - render legacy i18n message ids (#34135) 2019-12-03 10:15:53 -08:00
mock_compiler_spec.ts test(compiler-cli): compliance tests not always reporting test failure (#30597) 2019-05-22 16:22:52 -07:00
r3_compiler_compliance_spec.ts fix(ivy): incorrectly generating shared pure function between null and object literal (#35481) 2020-02-20 15:23:58 -08:00
r3_view_compiler_binding_spec.ts perf(ivy): remove unused event argument in listener instructions (#35097) 2020-02-20 15:22:13 -08:00
r3_view_compiler_di_spec.ts fix(ivy): handle overloaded constructors in ngtsc (#34590) 2020-01-14 15:17:09 -08:00
r3_view_compiler_directives_spec.ts perf(ivy): remove unused event argument in listener instructions (#35097) 2020-02-20 15:22:13 -08:00
r3_view_compiler_i18n_spec.ts perf(ivy): remove unused event argument in listener instructions (#35097) 2020-02-20 15:22:13 -08:00
r3_view_compiler_input_outputs_spec.ts refactor(ivy): remove ngBaseDef (#33264) 2019-10-25 13:11:34 -07:00
r3_view_compiler_listener_spec.ts perf(ivy): remove unused event argument in listener instructions (#35097) 2020-02-20 15:22:13 -08:00
r3_view_compiler_providers_spec.ts refactor(core): rename ngFactoryDef to ɵfac (#33116) 2019-10-14 20:27:25 +00:00
r3_view_compiler_spec.ts perf(ivy): chain multiple property instructions (#31078) 2019-06-19 15:42:37 -07:00
r3_view_compiler_styling_spec.ts perf(ivy): remove unused event argument in listener instructions (#35097) 2020-02-20 15:22:13 -08:00
r3_view_compiler_template_spec.ts perf(ivy): remove unused event argument in listener instructions (#35097) 2020-02-20 15:22:13 -08:00

README.md

Tests in this directory should be run with:

yarn bazel test --config=ivy  packages/compiler-cli/test/compliance:compliance