mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
For two-way-bindings that use the banana-in-a-box syntax, the compiler synthesizes an event assignment expression from the primary expression. It is valid for the primary expression to be terminated by the non-null operator, however naive string substitution is used for the synthesized expression, such that the `!` would immediately precede the `=` token, resulting in the valid `!=` operator token. The expression would still parse correctly but it doesn't implement the proper semantics, resulting in incorrect runtime behavior. Changing the expression substitution to force a space between the primary expression and the assignment avoids this mistake, but it uncovers a new issue. The grammar does not allow for the LHS of an assignment to be the non-null operator, so the synthesized expression would fail to parse. To alleviate this, the synthesized expression is parsed with a special parser flag to allow for this syntax. Fixes #36551 PR Close #37809 |
||
|---|---|---|
| .. | ||
| util | ||
| view | ||
| BUILD.bazel | ||
| r3_ast_absolute_span_spec.ts | ||
| r3_ast_spans_spec.ts | ||
| r3_template_transform_spec.ts | ||
| README.md | ||
| style_parser_spec.ts | ||
Tests in this directory are excluded from running in the browser and only run in node.