Misko Hevery
9db13be4c7
feat: change template micro-syntax to new syntax
...
Old syntax:
- ng-repeat: #item in items;
- ng-repeat: #item; in: items;
- <template let-ng-repeat=“item” [in]=items>
New syntax:
- ng-repeat: var item in items;
- ng-repeat: var item; in items
- <template ng-repeat var-item [in]=items>
Notice that the var is now a standalone binding
rather then an argument to ng-repeat. This will
make the var bindings consistent with the rest of
the system.
Closes #482
2015-01-30 11:56:54 -08:00
vsavkin
db0f0c462b
perf(change_detection): use object pools not to create unnecessary garbage
2015-01-28 20:08:58 -08:00
vsavkin
af41fa9ac4
feat(change_detection): modify change detectors to recompute pure functions only when their args change
2015-01-27 16:52:33 -08:00
vsavkin
2793d47c67
feat(change_detection): change proto change detectors to coalesce records
2015-01-27 16:42:55 -08:00
vsavkin
850cf0fef4
feat(change_detection): implement a change detector generator
2015-01-27 16:18:15 -08:00
Kevin Moore
a02e7b5067
Remove unused fields
2015-01-26 17:32:56 -08:00
Victor Berchet
4df1825dc2
fix(Interpolation): switch to new AST API
2015-01-23 10:12:13 +01:00
Misko Hevery
3b34ef43b1
perf(CD): Special cased interpolation in AST, Parser, and CD
2015-01-22 16:31:58 -08:00
Victor Berchet
b734d56b83
fix(cd): report all changes on first cd run
...
- null values would not have been reported for Dart
- undefined values would not have been reported for JS
Closes #454
2015-01-22 16:15:17 -08:00
Misko Hevery
829c28f3ee
docs: initial version of the documentation
2015-01-23 00:03:21 +00:00
Victor Berchet
85a714f022
style(cd): add types
2015-01-22 11:08:10 +01:00
vsavkin
9957c1338e
feat(change_detection): reimplement change detection
2015-01-21 14:21:14 -08:00
Victor Berchet
156f3d99e0
feat(parser): make method calls aware of ContextWithVariableBindings
2015-01-21 09:58:01 +01:00
Misko Hevery
2e1feec257
perf: use === instead of == for faster checks.
2015-01-12 15:16:24 -08:00
vsavkin
6bb3b81465
cleanup: remove toBool
...
Since we decided to use the semantics of the host language, toBool is no longer needed.
2015-01-08 09:52:09 -08:00
Stephen Adams
1320175646
perf(change detection): minimized amount of code in protective try-catch
2015-01-07 13:12:43 -08:00
vsavkin
739f624cc8
refactor(change_detection): add change_detection library file
2014-12-29 15:20:42 -08:00
vsavkin
d642c6afb5
feat(change_detector): wrap exceptions into ChangeDetectionError
...
ChangeDetectionError references the original error and the location where the error happened
2014-12-18 13:38:33 -08:00
vsavkin
3d534928b5
refactor(parser): align expression language with host language
...
Remove "enhancements" to the language from the parser, so the expression language mimics the host language.
2014-12-18 10:57:34 -08:00
Victor Berchet
86fb564818
fix(ChangeDispatcher): update the onRecordChange signature
2014-12-18 10:28:17 +01:00
vsavkin
1d03c2af5d
feat(change_detector): add a way to inspect records and record ranges
2014-12-17 15:43:36 -08:00
vsavkin
d5fcac4d7a
feat(compiler): pass compilation unit to the parser
2014-12-12 18:52:53 -08:00
Victor Berchet
59d6d604b4
fix(analyzer): fix a warning about an unused variable
2014-12-11 00:31:31 +01:00
vsavkin
8acf9fb609
feat(change_detection): ensure that expression do not change after they have been checked
2014-12-08 18:51:19 -08:00
Victor Berchet
68da0012cc
perf(Change Detection): remove the usage of getters/setters
...
- Firefox is 2.4x faster (90 vs 221ms)
- Chrome is 24% slower (15.5 vs 12.5ms)
Chrome is still 5.8x faster than Firefox
2014-12-08 21:59:59 +01:00
Victor Berchet
2c4a2f5158
perf(Change Detection): Track the range & group on changes only
...
1.4x speed improvement with Firefox
There is no need to track the range & group for all the records but only
for the records that have changed.
2014-12-08 21:59:59 +01:00
Victor Berchet
ee36063fae
style: misc minor changes
2014-12-08 21:59:59 +01:00
Victor Berchet
c362f33fe4
style(Change Detection): rename WatchGroupDispatcher to ChangeDispatcher
2014-12-08 21:59:59 +01:00
vsavkin
c3dc373ec4
refactor(change_detector): moves enableRecord/disableRecord into the Record class
2014-12-08 11:06:56 -08:00
vsavkin
7f941eb936
fix(change_detector): adding new ranges when disabling the current enabled record
2014-12-08 11:06:56 -08:00
Victor Berchet
ceb9ee92bb
fix(Change Detection): fix merge error
2014-12-05 12:20:00 +01:00
Rado Kirov
174613067c
feat(views): adds (de)hydration of views and template vars.
...
Dehydrated views are views that are structurally fixed, but their
directive instances and viewports are purged.
Support for local bindings is added to the view.
2014-12-04 22:40:51 -08:00
Victor Berchet
5c531f718e
perf(RecordRange): optimize disable()
...
There could be no lastEnabledChildRecord when there is no
firstEnabledChildRecord
- saves time by skipping findLastEnabledRecord() when the result is know
to be null,
- saves a test as isPresent(lastEnabledChildRecord) ==
isPresent(firstEnabledChildRecord)
2014-12-04 19:52:43 +01:00
vsavkin
65242fbd6d
perf(change_detection): add baseline to change detection benchmark
2014-12-03 18:09:21 -08:00
vsavkin
847cefcb7b
feat(change_detector): notify directives on property changes
2014-12-03 14:33:52 -08:00
Rado Kirov
5bdefee6c9
fix(record-range): fixes bug when disabling empty ranges.
2014-12-03 12:04:06 -08:00
Victor Berchet
0f3134acd4
perf(ProtoRecordRange): re-use a ProtoRecordCreator
2014-12-03 12:10:07 +01:00
Victor Berchet
f8c070c5e4
perf(ProtoRecord): remove the unused prev field
2014-12-03 12:10:07 +01:00
Victor Berchet
bf71b94bde
feat(Change Detector): Add support for collection content watch
2014-12-03 10:37:13 +01:00
Victor Berchet
2d2f44949d
perf(Change Detection): Remove a useless test
...
Only "implicit receiver" records get their context updated (since #239 )
2014-12-03 10:14:07 +01:00
Victor Berchet
7cb93fd59e
feat(Change Detection): Add support for keyed access
2014-12-02 16:15:13 +01:00
Tobias Bosch
0758165fb5
fix(compiler): allow identifiers with `-` in the template bindings as keys.
2014-12-01 16:39:36 -08:00
Victor Berchet
0703ee526c
fix(Dart1.8): fix analyzer warnings
2014-12-01 21:17:16 +01:00
vsavkin
1863d50978
feat(parser): adds support for variable bindings
2014-11-26 14:03:05 -08:00
vsavkin
a3d9f0fead
fix(parser): handle empty strings
2014-11-26 12:59:11 -08:00
vsavkin
9a28fa8590
refactor(change_detection): make RecordRange responsible for removing iself
2014-11-25 14:33:19 -08:00
vsavkin
2b53a2f353
fix(ChangeDetector): fix issues with handling empty ranges
2014-11-25 14:28:02 -08:00
vsavkin
bfd3c2d5a9
fix(reflection): update pubspec.yaml to add a missing dependency on reflection
2014-11-24 18:03:26 -08:00
vsavkin
6e8175a816
feat(Reflection): extract reflection capabilities into a separate module
2014-11-24 16:53:12 -08:00
Misko Hevery
044625a098
chore: Make field declarations explicit
...
This used to be valid code:
```
class Foo {
constructor() {
this.bar = ‘string’;
}
}
```
This will now fail since ‘bar’ is not explicitly
defined as a field. We now have to write:
```
class Foo {
bar:string; // << REQUIRED
constructor() {
this.bar = ‘string’;
}
}
```
2014-11-24 16:35:39 -08:00