14 Commits

Author SHA1 Message Date
Keen Yee Liau
bef14cf424 refactor(compiler): rename _ParseAST.optionalCharacter TemplateBinding.expression ()
This commit renames
1. _ParseAST.optionalCharacter -> consumeOptionalCharacter
2. TemplateBinding.expression -> value

PR Close 
2020-03-06 12:39:49 -05:00
Keen Yee Liau
716d50aa21 refactor(compiler): Break up parseTemplateBindings() for microsyntax ()
This commit is purely a refactoring of the logic in
`parseTemplateBindings` method for parsing the microsyntax expression.
This is done to enable the introduction of `keySpan` and `valueSpan` in
subsequent PR.

For a detailed explanation of this work and the subsequent work items,
please see https://docs.google.com/document/d/1mEVF2pSSMSnOloqOPQTYNiAJO0XQxA1H0BZyESASOrE/edit?usp=sharing

PR Close 
2020-03-05 16:04:41 -05:00
Ayaz Hafiz
f65db20c6d feat(ivy): record absolute position of template expressions ()
Currently, template expressions and statements have their location
recorded relative to the HTML element they are in, with no handle to
absolute location in a source file except for a line/column location.
However, the line/column location is also not entirely accurate, as it
points an entire semantic expression, and not necessarily the start of
an expression recorded by the expression parser.

To support record of the source code expressions originate from, add a
new `sourceSpan` field to `ASTWithSource` that records the absolute byte
offset of an expression within a source code.

Implement part 2 of [refactoring template parsing for
stability](https://hackmd.io/@X3ECPVy-RCuVfba-pnvIpw/BkDUxaW84/%2FMA1oxh6jRXqSmZBcLfYdyw?type=book).

PR Close 
2019-07-22 09:48:35 -07:00
Victor Berchet
46674d5fac test(ivy): add html to ivy ast transformer tests ()
PR Close 
2018-05-09 11:49:18 -07:00
Victor Berchet
4662878a1f refactor(compiler): refactor template binding parsing ()
A long time ago Angular used to support both those attribute notations:
- `*attr='binding'`
- `template=`attr: binding`

Because the last notation has been dropped we can refactor the binding parsing.
Source maps will benefit from that as no `attr:` prefix is added artificialy any
more.

PR Close 
2018-04-20 16:07:55 -07:00
Trotyl
72f8abd7b3 fix(compiler): make unary plus operator consistent to JavaScript ()
fixes 

PR Close 
2018-02-13 13:04:30 -08:00
Misko Hevery
3d50fd7cac build: add bazel test rules for remainder of packages ()
PR Close 
2017-12-22 13:10:51 -08:00
Misko Hevery
47e251a80a build: remove main() from specs ()
PR Close 
2017-12-22 13:10:51 -08:00
Victor Berchet
798947efa4 feat(compiler): adds support for quoted object keys in the parser 2017-07-07 16:17:33 -07:00
Chuck Jazdzewski
b9521b568f feat(compiler): support a non-null postfix assert ()
Template expressions can now use a post-fix `!` operator
that asserts the target of the operator is not null. This is
similar to the TypeScript non-null assert operator. Expressions
generated in factories will be generated with the non-null assert
operator.

Closes: 
2017-05-11 10:15:54 -07:00
Miško Hevery
09d9f5fe54 fix(compiler): Update types for TypeScript nullability support 2017-04-10 15:26:33 -06:00
Miško Hevery
c10c060d20 feat(common): support as syntax in template/* bindings ()
* feat(common): support `as` syntax in template/* bindings

Closes 

Showing the new and the equivalent old syntax.
- `*ngIf="exp as var1”`
   => `*ngIf="exp; let var1 = ngIf”`
- `*ngFor="var item of itemsStream |async as items”`
   => `*ngFor="var item of itemsStream |async; let items = ngForOf”`

* feat(common): convert ngIf to use `*ngIf="exp as local“` syntax

* feat(common): convert ngForOf to use `*ngFor=“let i of exp as local“` syntax

* feat(common): expose NgForOfContext and NgIfContext
2017-03-14 20:46:29 -07:00
Jason Aden
8573e36574 build: fix file paths after moving modules/@angular/* to packages/* 2017-03-08 16:29:28 -08:00
Jason Aden
3e51a19983 refactor: move angular source to /packages rather than modules/@angular 2017-03-08 16:29:27 -08:00