Index: third_party/pkg/angular/CHANGELOG.md |
diff --git a/third_party/pkg/angular/CHANGELOG.md b/third_party/pkg/angular/CHANGELOG.md |
index 4562060f7ab5bc33a51bfe5b50b8dfe1f3efbd5a..3e9d0746474a4e44289c827fec73261dc228ec4e 100644 |
--- a/third_party/pkg/angular/CHANGELOG.md |
+++ b/third_party/pkg/angular/CHANGELOG.md |
@@ -1,3 +1,897 @@ |
+<a name="v0.10.0"></a> |
+# v0.10.0 ostemad-teleportation (2014-04-17) |
+ |
+*NOTE:* Contains significant BREAKING CHANGES! |
+ |
+## Bug Fixes |
+ |
+- **DateFilter:** cache DateFormat correctly |
+ ([64cf96f1](https://github.com/angular/angular.dart/commit/64cf96f104f886036b6f25d0bda5d1307f50d1d1), |
+ [#882](https://github.com/angular/angular.dart/issues/882)) |
+- **NgA:** Do not cause a scope digest |
+ ([de21f4de](https://github.com/angular/angular.dart/commit/de21f4de1f39a4745ad088805459848204457e23), |
+ [#810](https://github.com/angular/angular.dart/issues/810)) |
+- **NgControl:** Remove dead code |
+ ([b30ebe0f](https://github.com/angular/angular.dart/commit/b30ebe0fbaef0e7aa39d52a0bc8bf9cc2174386b)) |
+- **angular.core:** re-export required annotations |
+ ([6a9ea37c](https://github.com/angular/angular.dart/commit/6a9ea37cfb444bdfb5e99af42a091c12d949b307)) |
+- **animation:** temporary fix for Animation symbol conflict |
+ ([82b4f3e1](https://github.com/angular/angular.dart/commit/82b4f3e12a6a5b1e079c40c8341467089ab8fdf0)) |
+- **application_factory:** add missing @MirrorsUsed targets |
+ ([b5e835a0](https://github.com/angular/angular.dart/commit/b5e835a0e3b4bfd8b8b44c260bb0466caa75ab93), |
+ [#911](https://github.com/angular/angular.dart/issues/911)) |
+- **bootstrap:** Rename bootstrapping methods |
+ ([155582d1](https://github.com/angular/angular.dart/commit/155582d199e25aa69ff803b228c3c3c0e5b9ac70)) |
+- **change-detection:** When two identical pure functions removed |
+ ([84781ef3](https://github.com/angular/angular.dart/commit/84781ef3377b4cdb92a2cb3b98fb58468e34abc1), |
+ [#787](https://github.com/angular/angular.dart/issues/787), [#788](https://github.com/angular/angular.dart/issues/788)) |
+- **change-detection:** properly watch map['key'] constructs |
+ ([03f0a4c7](https://github.com/angular/angular.dart/commit/03f0a4c72709d74c3b4d5f3fa168189efd7e5b97), |
+ [#824](https://github.com/angular/angular.dart/issues/824)) |
+- **cookies:** Make sure Cookies is injectable. |
+ ([8952cbdd](https://github.com/angular/angular.dart/commit/8952cbdd70f32e8b920942476648b1a8f1473480), |
+ [#856](https://github.com/angular/angular.dart/issues/856)) |
+- **core:** ensure change detection doesn't trigger an infinite loop while not in debug mode |
+ ([6ac105c9](https://github.com/angular/angular.dart/commit/6ac105c9bf662c8717dab811c6c41ded9eed05ea)) |
+- **dirty-checking:** |
+ - handle simultaneous mutations and ref changes |
+ ([28a79bc2](https://github.com/angular/angular.dart/commit/28a79bc21ef3a4a7b0824249bfa31a668275c76e)) |
+ - fix removal of watch record on disconnected group. |
+ ([d22899aa](https://github.com/angular/angular.dart/commit/d22899aa68f4da15673821cb16f04d4f8c7a4dee)) |
+- **doc:** add angular.core.annotation lib to docs |
+ ([ad2e6b0e](https://github.com/angular/angular.dart/commit/ad2e6b0e76357e3aeaee0cd1726247059acc1f49)) |
+- **docs:** reenable broken doc generation |
+ ([e925a143](https://github.com/angular/angular.dart/commit/e925a1430e9de53d710e175703c57aefd4dad700)) |
+- **events:** make ShadowRootEventHandler play nice with static injection |
+ ([d7683218](https://github.com/angular/angular.dart/commit/d76832181706a86dcef1e0c3b60749f82a2e0e27)) |
+- **example:** Adjust MirrorsUsed to make the Todo example work thru dart2js |
+ ([ee4a448b](https://github.com/angular/angular.dart/commit/ee4a448b9defd4c9fda1e86f3c9c37e5465f7e21)) |
+- **export:** Add missing NgController to angualr.dart |
+ ([7475ccc4](https://github.com/angular/angular.dart/commit/7475ccc44cec302a0bd0745e99ec491ff3289427)) |
+- **filters:** |
+ - handle the current locale correctly |
+ ([212b6f79](https://github.com/angular/angular.dart/commit/212b6f79560cc24b4a210c6f44e73a8408690fa9), |
+ [#865](https://github.com/angular/angular.dart/issues/865)) |
+ - pass filters to all evals |
+ ([25dfd32f](https://github.com/angular/angular.dart/commit/25dfd32ff9e1523ee9220769871867111ed93c3b)) |
+- **forms:** change valid_submit and invalid_submit to camelcase |
+ ([e5baa502](https://github.com/angular/angular.dart/commit/e5baa50235aa3ec53f00f87b86dab78ef5882900), |
+ [#793](https://github.com/angular/angular.dart/issues/793)) |
+- **http:** fix header map type for http.call() |
+ ([a6cc826a](https://github.com/angular/angular.dart/commit/a6cc826a1bbe580dd2774b6d53e246a838d3425d)) |
+- **jasmine:** don't swallow exceptions in afterEach |
+ ([ae15983d](https://github.com/angular/angular.dart/commit/ae15983d2134bf0fb1823f427654629f92c295d5)) |
+- **mirror:** added missing mirrors declarations |
+ ([0ebb49f8](https://github.com/angular/angular.dart/commit/0ebb49f84c12ec2c4b11f1cf75d230f601975ebc)) |
+- **mock:** export test_injection from module |
+ ([70546ca5](https://github.com/angular/angular.dart/commit/70546ca50dc5038ba911fcf972af90de492743d4)) |
+- **mustache:** fix regression that fired an initial empty string |
+ ([c71b8cfc](https://github.com/angular/angular.dart/commit/c71b8cfc935d1599b2c1c7cef5a08ff4caee7010), |
+ [#734](https://github.com/angular/angular.dart/issues/734)) |
+- **ng-model:** Do not use valueAsNumber to work around dartbug.com/15788 |
+ ([019209e7](https://github.com/angular/angular.dart/commit/019209e79ce0752351f2b8d74511fa39694d1e93), |
+ [#694](https://github.com/angular/angular.dart/issues/694)) |
+- **ng-repeat:** don't use iterable.length |
+ ([cf2671ab](https://github.com/angular/angular.dart/commit/cf2671ab718d019a0eaa7d7e0483cae196aaa76c)) |
+- **ng-view:** correct infinite loop in RouteProvider injection |
+ ([be902f46](https://github.com/angular/angular.dart/commit/be902f46035b0ea9464eafd12eb4470316ec82fe)) |
+- **ng_mustache:** actually assign to _hasObservers |
+ ([61c953d9](https://github.com/angular/angular.dart/commit/61c953d9be3e2626e159cd08ac585a67f412a37e)) |
+- **parser:** changes parser to throw an error when it encounters an unexpected token |
+ ([7c26ab0d](https://github.com/angular/angular.dart/commit/7c26ab0dbce3b8ebbde26716e9dc1cfda1e38c71), |
+ [#830](https://github.com/angular/angular.dart/issues/830), [#905](https://github.com/angular/angular.dart/issues/905)) |
+- **profiler:** Fix API |
+ ([f032b376](https://github.com/angular/angular.dart/commit/f032b376c77b9b054d4c2b2db7b29cb7f7c71102)) |
+- **scope:** allow watching an empty string |
+ ([bd0d4ffd](https://github.com/angular/angular.dart/commit/bd0d4ffdded131cd3040c6ddda32c46f6553b629)) |
+- **startup:** Avoid creating rarely needed objects |
+ ([29bda806](https://github.com/angular/angular.dart/commit/29bda8061aa5240f5445ac28a310990f4f3b80d0)) |
+- **tagging-compiler:** support top level comments |
+ ([dc75b016](https://github.com/angular/angular.dart/commit/dc75b0166cc93c08bf81fa364c247de3d97ad2c1)) |
+- **test:** fixes for latest unittest lib |
+ ([c8527208](https://github.com/angular/angular.dart/commit/c852720827584065fdc5d48d5dc6d0e23770ebc1), |
+ [#811](https://github.com/angular/angular.dart/issues/811)) |
+- **transformer:** |
+ - Serializing execution of transformers |
+ ([8b06e673](https://github.com/angular/angular.dart/commit/8b06e673d72d0e98d8a99ef159cc4ebc6fbf8c65), |
+ [#889](https://github.com/angular/angular.dart/issues/889)) |
+ - crashes in metadata extraction while in pub serve |
+ ([e35a5e17](https://github.com/angular/angular.dart/commit/e35a5e17e890d739ee546227fef98acbc66c1112), |
+ [#888](https://github.com/angular/angular.dart/issues/888)) |
+ - Transformer needs html5lib 0.9.2 |
+ ([b52323e4](https://github.com/angular/angular.dart/commit/b52323e4e227d9de9a69134912845835733c20f7)) |
+- **transformers:** |
+ - fix accidental breakage due to library rename. Added tests. |
+ ([88593eec](https://github.com/angular/angular.dart/commit/88593eec6499f93765980087fcdf59a242ec9334)) |
+ - fix breakage from commit 3fb218180b17bdc9808e575e3a9aaf9928fef28b |
+ ([5caadbf1](https://github.com/angular/angular.dart/commit/5caadbf10304c46da552f4fa118351a3d2de4571)) |
+- **watch_group:** remove debugging print statement |
+ ([93c7b9af](https://github.com/angular/angular.dart/commit/93c7b9afbec1154e0869cb820210b401129ee4fe)) |
+ |
+ |
+## Features |
+ |
+- **AstParser:** Made the AST parser private to the scope |
+ ([8944f0d9](https://github.com/angular/angular.dart/commit/8944f0d927a402f184160b6bfffdff664fb21ee4)) |
+- **NgAnnotation:** Use `module` parameter to publish types. |
+ ([5ec7e831](https://github.com/angular/angular.dart/commit/5ec7e831052ce1fe5af70dc970941a4a884a9e02), |
+ [#779](https://github.com/angular/angular.dart/issues/779)) |
+- **NgBaseCss:** Add NgBaseCss, which adds css files to all components |
+ ([06fc28a3](https://github.com/angular/angular.dart/commit/06fc28a319b9c0334a977c4a177348c6f6a3d003)) |
+- **Scope:** |
+ - Allow turning emission of scope stats from console. |
+ ([18ecd950](https://github.com/angular/angular.dart/commit/18ecd950cd815677cba35e26eb6069da19d73300), |
+ [#836](https://github.com/angular/angular.dart/issues/836), [#857](https://github.com/angular/angular.dart/issues/857)) |
+ - Mirror Scope methods in ngScope. |
+ ([277f2832](https://github.com/angular/angular.dart/commit/277f283258b7dcdb4994a1c78e6cee862386654d), |
+ [#850](https://github.com/angular/angular.dart/issues/850), [#858](https://github.com/angular/angular.dart/issues/858)) |
+- **deploy:** Move all reflection behind separate import |
+ ([9bf04eba](https://github.com/angular/angular.dart/commit/9bf04eba808f7fc1f4e5285fad7feae360918718)) |
+- **directives:** Add deprecated warning to applyAuthorStyle, resetStyleInheritance |
+ ([779ccb80](https://github.com/angular/angular.dart/commit/779ccb800d6db85100418c3e4a89a6003048bcab), |
+ [#838](https://github.com/angular/angular.dart/issues/838)) |
+- **event_spec:** Add aaddTest to run an event test in an iit |
+ ([a5999863](https://github.com/angular/angular.dart/commit/a5999863f85bf172c75bd8f213d640b55f4a5cb8)) |
+- **expect:** |
+ - toHaveText handles shadow DOM. Deprecates JQuery.textWithShadow |
+ ([0384346d](https://github.com/angular/angular.dart/commit/0384346db3b715f6a67425d81825d2d20caae74f)) |
+ - Move JQuery.text to Expect.toHaveText() and element.text |
+ ([dfe84d8f](https://github.com/angular/angular.dart/commit/dfe84d8f48e97db992d1b70382a2e531b91a1607)) |
+- **http:** Allow overriding of recording URL. |
+ ([6ecf1d54](https://github.com/angular/angular.dart/commit/6ecf1d54a2c294035427fd3f274e1fb8e098f45e), |
+ [#872](https://github.com/angular/angular.dart/issues/872)) |
+- **karma:** Allow Firefox to execute Karma tests |
+ ([4a6234b3](https://github.com/angular/angular.dart/commit/4a6234b350c7c25f7de45fceb19bceb31573cb30)) |
+- **metadata extractor:** Cache the fieldMetadataExtractor for greater performance |
+ ([63c229c7](https://github.com/angular/angular.dart/commit/63c229c7f7dab901e650fb1c8b155d2bc006ca30)) |
+- **ng-model:** support input type=date | datetime and all other date/time variants |
+ ([90e0e076](https://github.com/angular/angular.dart/commit/90e0e0761d2ed59b6a70ba31f9ceb741593bcb26), |
+ [#747](https://github.com/angular/angular.dart/issues/747)) |
+- **ngElement:** add support for attributes |
+ ([581861e5](https://github.com/angular/angular.dart/commit/581861e5f428b2fe43356be012e1fe35b9f7499a)) |
+- **ngRepeat:** make use of the new change detection |
+ ([09871cb2](https://github.com/angular/angular.dart/commit/09871cb29b5345d49929895b2a490360eee69244)) |
+- **parser:** Add support for named arguments. |
+ ([18ceb4df](https://github.com/angular/angular.dart/commit/18ceb4dfa751615cecc73ff38d7bb1744b914c0a), |
+ [#762](https://github.com/angular/angular.dart/issues/762)) |
+- **routing:** allow routing to view html |
+ ([cdc89c43](https://github.com/angular/angular.dart/commit/cdc89c43664c5d451ae92c83dd86922ccefd807c), |
+ [#425](https://github.com/angular/angular.dart/issues/425), [#908](https://github.com/angular/angular.dart/issues/908)) |
+- **selector:** Collect bind- attributes. More tests. Cleanup |
+ ([4707826b](https://github.com/angular/angular.dart/commit/4707826bd1dff114addb16372f58b7cfc19a8ffc)) |
+- **template_cache_generator:** Support custom template path resolution |
+ ([f5bf7eff](https://github.com/angular/angular.dart/commit/f5bf7effaacb9d2423e033a8d7ade122eef6910c), |
+ [#923](https://github.com/angular/angular.dart/issues/923)) |
+- **transformers:** Add angular transformers to pub for no-mirror code generation |
+ ([3fb21818](https://github.com/angular/angular.dart/commit/3fb218180b17bdc9808e575e3a9aaf9928fef28b)) |
+- **travis:** |
+ - Firefox |
+ ([23a3e35f](https://github.com/angular/angular.dart/commit/23a3e35f22489f66692d0559421f33cff0926ab7), |
+ [#801](https://github.com/angular/angular.dart/issues/801)) |
+ - Only submit if all the builds complete |
+ ([633d323d](https://github.com/angular/angular.dart/commit/633d323d672ee67ab2dbbd1dd6711a45aa86b0b5)) |
+- **view factory:** Each css file has its own <style> tag |
+ ([4c81989f](https://github.com/angular/angular.dart/commit/4c81989fb404279c516ef11a5dccf067831732e0)) |
+ |
+ |
+## Performance Improvements |
+ |
+- **DirtyCheckingChangeDetectorGroup:** Disable calls to _assertRecordsOk(). |
+ ([d6b9bb70](https://github.com/angular/angular.dart/commit/d6b9bb708af9b44b59e482d1a8588c29a2a3608f), |
+ [#813](https://github.com/angular/angular.dart/issues/813)) |
+- **compiler:** 45x speedup. Cache the attribute keys. |
+ ([556ef5cf](https://github.com/angular/angular.dart/commit/556ef5cfea30f210e5d56b42a054f46bbfdcf640)) |
+- **element_binder:** use every rather than reduce |
+ ([27e2845d](https://github.com/angular/angular.dart/commit/27e2845d69597f2bfe4da7aa00cc8bc614e8ad19)) |
+ |
+ |
+## Breaking Changes |
+ |
+- **NgAnnotation:** due to [5ec7e831](https://github.com/angular/angular.dart/commit/5ec7e831052ce1fe5af70dc970941a4a884a9e02), |
+ `publishTypes` parameter is removed. |
+ |
+ ``` |
+ @NgDirective( |
+ publishTypes: [FooInt] |
+ ) |
+ class Foo extends FooInt { |
+ } |
+ ``` |
+ |
+ becomes |
+ |
+ ``` |
+ @NgDirective( |
+ module: Foo.module, |
+ visibility: NgDirective.LOCAL_VISIBILITY |
+ ) |
+ class Foo extends FooInt { |
+ module() => new Module() |
+ ..factory(FooInt, |
+ (i) => i.get(Foo), |
+ visibility: NgDirective.LOCAL_VISIBILITY) |
+ } |
+ ``` |
+ |
+ Closes #779 |
+- **bootstrap:** due to [155582d1](https://github.com/angular/angular.dart/commit/155582d199e25aa69ff803b228c3c3c0e5b9ac70), |
+ |
+ - import: |
+ - angular/angular_dynamic.dart -> angular/application_factory.dart |
+ - angular/angular_static.dart -> angular/application_factory_static.dart |
+ |
+ - functions: |
+ - dynamicApplication() -> applicationFactory() |
+ - staticApplication() -> staticApplicationFactory() |
+- **forms:** due to [e5baa502](https://github.com/angular/angular.dart/commit/e5baa50235aa3ec53f00f87b86dab78ef5882900), |
+ All form code that uses control.valid_submit and control.invalid_submit will throw an error. Instead use control.validSubmit |
+ and control.invalidSubmit to checkthe submission validitity on a control. |
+ |
+ Closes #793 |
+- **selector_spec:** due to [c03c538d](https://github.com/angular/angular.dart/commit/c03c538d31f01b7f543a03441fec613c2df2d641), |
+ This relaxs the assumption that directives will be created in the same order everywhere. |
+ For #801 |
+- **nameing:** due to [f055ab6f](https://github.com/angular/angular.dart/commit/f055ab6f7c4fadfdbb6a46d8bc547b304586d95c) |
+ Closes #902 |
+ |
+ BREAKING CHANGE: These are the renames |
+ |
+ - Concepts: |
+ ``` |
+ - Filter -> Formatter |
+ ``` |
+ |
+ - Importing: |
+ ``` |
+ - angular/directive/ng_a.dart -> angular/directive/a_href.dart |
+ - angular/filter/currency.dart -> angular/formatter/currency.dart |
+ - angular/filter/date.dart -> angular/formatter/date.dart |
+ - angular/filter/filter.dart -> angular/formatter/filter.dart |
+ - angular/filter/json.dart -> angular/formatter/json.dart |
+ - angular/filter/limit_to.dart -> angular/formatter/limit_to.dart |
+ - angular/filter/lowercase.dart -> angular/formatter/lowercase.dart |
+ - angular/filter/module.dart -> angular/formatter/module.dart |
+ - angular/filter/number.dart -> angular/formatter/number.dart |
+ - angular/filter/order_by.dart -> angular/formatter/order_by.dart |
+ - angular/filter/stringify.dart -> angular/formatter/stringify.dart |
+ - angular/filter/uppercase.dart -> angular/formatter/uppercase.dart |
+ ``` |
+ |
+ - Types: |
+ ``` |
+ - NgA -> AHref |
+ - NgAttachAware -> AttachAware |
+ - NgDetachAware -> DetachAware |
+ - NgShadowRootAware -> ShadowRootAware |
+ - NgFilter -> Formatter |
+ - NgInjectableService -> Injectable |
+ - AbstractNgAnnotation -> Directive |
+ - AbstractNgFieldAnnotation -> DirectiveAnnotation |
+ - NgComponent -> Component |
+ - NgController -> Controller |
+ - NgDirective -> Decorator |
+ - NgAnimate -> Animate |
+ - NgZone -> VmTurnZone |
+ - NgAnimationModule -> AnimationModule |
+ - NgCoreModule -> CoreModule |
+ - NgCoreDomModule -> CoreDomModule |
+ - NgAnimationDirective -> NgAnimation |
+ - NgAnimationChildrenDirective -> NgAnimationChildren |
+ - FilterMap -> FormatterMap |
+ - NgAttrMustacheDirective -> AttrMustache |
+ - NgTextMustacheDirective -> TextMustache |
+ ``` |
+ |
+ - Constants |
+ ``` |
+ - NgDirective.LOCAL_VISIBILITY -> Directive.LOCAL_VISIBILITY |
+ - NgDirective.CHILDREN_VISIBILITY -> Directive.CHILDREN_VISIBILITY |
+ - NgDirective.DIRECT_CHILDREN_VISIBILITY -> Directive.DIRECT_CHILDREN_VISIBILITY |
+ ``` |
+ |
+<a name="v0.9.10"></a> |
+# v0.9.10 llama-magnetism (2014-03-20) |
+ |
+## Bug Fixes |
+ |
+- **Filter:** Add support for maps |
+ ([b32beecf](https://github.com/angular/angular.dart/commit/b32beecfeeecf40a05320b29e19b1572442542cf)) |
+- **Jasmine:** Execute AfterEach methods |
+ ([71b2855c](https://github.com/angular/angular.dart/commit/71b2855ceab53ec1afa6b1b8950f3d12b58c4b2c)) |
+- **NgModel:** ensure DOM value changes are only applied during scope.domWrite |
+ ([419e9189](https://github.com/angular/angular.dart/commit/419e9189b482fc054146b51a44613ff543efb485)) |
+- **NgModelValidators:** ensure all validators can properly toggle attribute values |
+ ([98143034](https://github.com/angular/angular.dart/commit/98143034287f4a6adfd08f4064e4a751c569b108)) |
+- **NodeAttrs:** lazy init of observer listeners |
+ ([144eb4c7](https://github.com/angular/angular.dart/commit/144eb4c76598a73a251477efc91c1460f5052937)) |
+- **animation:** correct broken build http://dartbug.com/17634 |
+ ([9891f333](https://github.com/angular/angular.dart/commit/9891f3339207e921a0a50cac3d855eb4606b41bb)) |
+- **change_detection:** |
+ - should properly support objects with equality |
+ ([9b480dad](https://github.com/angular/angular.dart/commit/9b480dad5f9eaf86099c6c1760a837d1eb6d6442), |
+ [#735](https://github.com/angular/angular.dart/issues/735), [#670](https://github.com/angular/angular.dart/issues/670)) |
+ - leaking watch records when removing deeply nested watch_groups |
+ ([1ba5befb](https://github.com/angular/angular.dart/commit/1ba5befba3392769752c1d163de7c691234fca15), |
+ [#700](https://github.com/angular/angular.dart/issues/700)) |
+ - don't call reactionFn on deleted scope |
+ ([0aacdc4f](https://github.com/angular/angular.dart/commit/0aacdc4f73b79f874a78783308feea471279db0d)) |
+- **compiler:** Remove the Block/BlockFactory typedefs |
+ ([9b790f49](https://github.com/angular/angular.dart/commit/9b790f490b16c2834177df75f235da8d3347aa64)) |
+- **component:** revert regression of injecting Element/Node into Component |
+ ([d9fc724e](https://github.com/angular/angular.dart/commit/d9fc724e56e99b26192e41eaef46607760f4ac2a)) |
+- **forms:** |
+ - ensure models are validated when validator attributes change |
+ ([0622f3a9](https://github.com/angular/angular.dart/commit/0622f3a969b99b06c5f07da10ceb756b720a3331)) |
+ - consider forms as pristine only when all the inner models are non-dirty |
+ ([4458ce8e](https://github.com/angular/angular.dart/commit/4458ce8e0035f8250cc35ec02906f63ba33c8974)) |
+ - store models instead of controls within the collection of errors |
+ ([2928ae71](https://github.com/angular/angular.dart/commit/2928ae71b694be5e2a47eaa2cdd1d602f8ae26e9)) |
+- **i18n:** properly restore locale after test WARNING |
+ ([f16536ee](https://github.com/angular/angular.dart/commit/f16536eed937bcdb5421ac61059ad40fe58ed2ef)) |
+- **jasmine syntax:** Drop the wrapFn concept and let `_specs.dart` handle the sync wrapper |
+ ([1e971e6b](https://github.com/angular/angular.dart/commit/1e971e6b7c65958bbf9a4779fbac944afaebb278)) |
+- **jquery:** Deprecate renderedText() in favour of JQuery.textWithShadow() |
+ ([364d9ff7](https://github.com/angular/angular.dart/commit/364d9ff712a635cd3b0d86bff9e663105ffce86b)) |
+- **ng-class:** remove previously registered watch |
+ ([8b54f5e6](https://github.com/angular/angular.dart/commit/8b54f5e6c8d99a4b9531edb78ec10e8177e53407), |
+ [#725](https://github.com/angular/angular.dart/issues/725)) |
+- **ng-repeat:** should correctly handle detached state |
+ ([775bbce4](https://github.com/angular/angular.dart/commit/775bbce4060c3828c1cbaeffcb8fc4092f46868b), |
+ [#697](https://github.com/angular/angular.dart/issues/697)) |
+- **ng-style:** watch in RO mode |
+ ([51ee3298](https://github.com/angular/angular.dart/commit/51ee32987464832ddca113528d899ea27f0b6f40), |
+ [#721](https://github.com/angular/angular.dart/issues/721)) |
+- **presubmit:** |
+ - Set new token; correct env variable name |
+ ([53aeb4aa](https://github.com/angular/angular.dart/commit/53aeb4aaea69bcd0ca21e6430b02a50de997f991)) |
+ - use https protocol for push |
+ ([a2845a50](https://github.com/angular/angular.dart/commit/a2845a50e680555f4ef129247d1d2045233a5f0f)) |
+ - correct presubmit authentication |
+ ([8b430d10](https://github.com/angular/angular.dart/commit/8b430d100c6c99267c3459310a762e6e831b4727)) |
+- **scope:** |
+ - allow concurrent fire/add/remove on listeners |
+ ([e6689e37](https://github.com/angular/angular.dart/commit/e6689e37c800682a81d7690c3b05baf732c307c6)) |
+ - should allow removing listener during an event |
+ ([4662d494](https://github.com/angular/angular.dart/commit/4662d49477fdf0b5ef01f8d4f8aed8b87d77ea66), |
+ [#695](https://github.com/angular/angular.dart/issues/695)) |
+ - add scope id for easier debugging. |
+ ([5a368087](https://github.com/angular/angular.dart/commit/5a36808736efae4760c8f9fdc5b291353ca9ec02)) |
+- **tagging compiler:** |
+ - a text child after a directive child |
+ ([81030dde](https://github.com/angular/angular.dart/commit/81030dde483bf0b4bb943f31408733f3238286ee)) |
+ - ancestor injectables |
+ ([81ad184d](https://github.com/angular/angular.dart/commit/81ad184d928625a97e15fd8baf3e6df21cf1efae)) |
+ - Sibling templates |
+ ([167b4909](https://github.com/angular/angular.dart/commit/167b4909fca4c72a903ccc695043f6a13d1a4b98)) |
+ - Transclusions with an existing ElementBinder |
+ ([0e4cb8ed](https://github.com/angular/angular.dart/commit/0e4cb8ed82f98e6a3e9dc2d131394a4d769cb0cc)) |
+ - Empty transclusions |
+ ([b71a5009](https://github.com/angular/angular.dart/commit/b71a50092d6a529e21e06f4080bbe50873eac997)) |
+- **zone:** Avoid silently ignoring uncaught exceptions by default. |
+ ([7bb1944e](https://github.com/angular/angular.dart/commit/7bb1944e3726dea221e6ab33d4bc6f1de6a364c8), |
+ [#710](https://github.com/angular/angular.dart/issues/710)) |
+ |
+## Features |
+ |
+- **NgModel:** introduce parsers and formatters |
+ ([bed9fe15](https://github.com/angular/angular.dart/commit/bed9fe15f8b89b296a9b519268bd3e3c326b6265)) |
+- **Scope:** Improve ScopeStats reporting |
+ ([1954e9e2](https://github.com/angular/angular.dart/commit/1954e9e293203466a50f3931126ebde0335b885d), |
+ [#744](https://github.com/angular/angular.dart/issues/744)) |
+- **compiler:** |
+ - Make the TaggingCompiler the default compiler |
+ ([3ed50b5e](https://github.com/angular/angular.dart/commit/3ed50b5ebdf8013a3f9d354846770c1e9f75497a)) |
+ - Tagging compiler |
+ ([59516afb](https://github.com/angular/angular.dart/commit/59516afb37d1dd33dbdca9e705646dad1afafd1d)) |
+ - Initial TagggingCompiler implementation |
+ ([80163401](https://github.com/angular/angular.dart/commit/80163401e1524c2b5c90a8c0d66b263370a6c402)) |
+ - ViewFactory now takes a list of ElementBinders |
+ ([eb559ad0](https://github.com/angular/angular.dart/commit/eb559ad05ca33e6c985ceed492f20c9b2a88c5b9)) |
+ - Add an ElementBinder class and return it from Selector |
+ ([41bc9a40](https://github.com/angular/angular.dart/commit/41bc9a40a17521285eb7d342a5590c2a7b09be93)) |
+- **core_dom:** introduce NgElement |
+ ([1afa0b61](https://github.com/angular/angular.dart/commit/1afa0b61da45038ea192f34208ffb9e2a6081fd9)) |
+- **doc:** |
+ - Animation library documentation updates and fixes. |
+ ([613030a0](https://github.com/angular/angular.dart/commit/613030a04c584040a09cade196945fde9fa830cc), |
+ [#760](https://github.com/angular/angular.dart/issues/760)) |
+ - Library description for angular.animate |
+ ([0576f278](https://github.com/angular/angular.dart/commit/0576f27841c8842b0d84bfae8c4b202c39833beb)) |
+- **element binder:** |
+ - Make ElementBinder non-recursive and create an external tree |
+ ([811b4607](https://github.com/angular/angular.dart/commit/811b46073af9fe2f7e353ce1b811898c1557bad8)) |
+ - ElementBinder.bind |
+ ([b1a518bd](https://github.com/angular/angular.dart/commit/b1a518bd678ab4a4d53f8915a9e3c34c87c5d3c1)) |
+- **filters:** revert filter being restricted to top level |
+ ([66cda204](https://github.com/angular/angular.dart/commit/66cda2046ea84d29edd7a478509565989834e391)) |
+- **forms:** append valid/invalid CSS classes for each validator on all controls |
+ ([574065f5](https://github.com/angular/angular.dart/commit/574065f5b8183f4b6d9ac7b66a2ae501a21ee2ac)) |
+- **jasmine:** beforeEachModule syntax and injectifying its |
+ ([4019046f](https://github.com/angular/angular.dart/commit/4019046f4b56a629f6db71a6e1caff82b728940a), |
+ [#727](https://github.com/angular/angular.dart/issues/727)) |
+- **jquery:** Add shadowRoot() and use it in templateurl_spec |
+ ([e1745c60](https://github.com/angular/angular.dart/commit/e1745c601a22030b4241a93589cb13a4935049d1)) |
+- **mock zone:** isAsyncQueueEmpty |
+ ([c834837d](https://github.com/angular/angular.dart/commit/c834837dcb5b9220b1570c7f96785d763a7b0968)) |
+- **mustache:** Move unobserved mustache attributes to the flush phase |
+ ([56647a36](https://github.com/angular/angular.dart/commit/56647a36d67fe3b4b28967a78b193e90e0a65152), |
+ [#734](https://github.com/angular/angular.dart/issues/734)) |
+- **selector:** DirectiveSelector is real now: matchElement, matchText |
+ ([eb4422a9](https://github.com/angular/angular.dart/commit/eb4422a9a2d0d0dbdb2fb9d04fdcbcae99b65757)) |
+- **spec:** Ignore ng-binding classes in html() |
+ ([441daf79](https://github.com/angular/angular.dart/commit/441daf79a4e3fca8f42379022f078327d4e69e59)) |
+- **tagging compiler:** |
+ - Create fewer ElementBinder lists |
+ ([7e185219](https://github.com/angular/angular.dart/commit/7e185219a9a477330ea8d2074bd9dad385bedd4b)) |
+ - Support comments |
+ ([6fe02a07](https://github.com/angular/angular.dart/commit/6fe02a07431231a39c6e174327b36533b91f0073)) |
+- **travis:** Seperate Chrome and Dartium into two different jobs. |
+ ([7c5bdb01](https://github.com/angular/angular.dart/commit/7c5bdb01dae7933540679e070ace5dc9fe223cd2)) |
+- **EventHandler** Add support for on-* style events |
+ ([c28e6a02](https://github.com/angular/angular.dart/commit/c28e6a02d7ec3386c856bd6aa79f8ddee2ff09b9)) |
+ |
+<a name="v0.9.9"></a> |
+# v0.9.9 glutinous-waterfall (2014-03-10) |
+ |
+ |
+## Bug Fixes |
+ |
+- **DateFilter:** |
+ - should work on other locale |
+ ([d7e77de9](https://github.com/angular/angular.dart/commit/d7e77de92fd61fabd7842eb0acb4d9236935dd76), |
+ [#604](https://github.com/angular/angular.dart/issues/604)) |
+ - fix a wrong type |
+ ([cec3edad](https://github.com/angular/angular.dart/commit/cec3edad1944a8411882b0a87ea6193c25513392), |
+ [#579](https://github.com/angular/angular.dart/issues/579)) |
+- **Directive:** remove publishAs from NgDirective to avoid confusion. |
+ ([7ee587f6](https://github.com/angular/angular.dart/commit/7ee587f6f959d89cfdd87b0f615510405d693db9), |
+ [#396](https://github.com/angular/angular.dart/issues/396)) |
+- **MetadataExtractor:** ignore typedefs |
+ ([37f1c321](https://github.com/angular/angular.dart/commit/37f1c32118383b250ba2db6f21adf1737beb2b0a), |
+ [#524](https://github.com/angular/angular.dart/issues/524)) |
+- **NgAttachAware:** revert to original behavior and define stronger test |
+ ([500446d1](https://github.com/angular/angular.dart/commit/500446d1f6d548bbc007957017cf7cae74c7f30c)) |
+- **NgAttrMustacheDirective:** support parsing of multiline attribute values |
+ ([a37e1576](https://github.com/angular/angular.dart/commit/a37e15761b5bbad2f32308ccd0f765bd977fb0ca)) |
+- **NgComponent:** |
+ - Handle errors while loading CSS |
+ ([b5aa130f](https://github.com/angular/angular.dart/commit/b5aa130f68c589e2e4a8c6fad1dbd69078608be1), |
+ [#411](https://github.com/angular/angular.dart/issues/411)) |
+ - Drop cssUrls, leaving cssUrl only |
+ ([92ed26fb](https://github.com/angular/angular.dart/commit/92ed26fb1a00a239c164428979a2f53226ae4b2c)) |
+ - attach method was called earlier rathe then later. |
+ ([3c594130](https://github.com/angular/angular.dart/commit/3c594130589f43a6f82374a87bf498f2d5645ab5)) |
+- **NgForm:** |
+ - always return the first matching control when using map notation on a NgForm instance |
+ ([95e66d6b](https://github.com/angular/angular.dart/commit/95e66d6bb28c3075952e31cdbce3c044ed00fc8f)) |
+ - use map notation for controls and dot notation for instance properties |
+ ([0cc1217b](https://github.com/angular/angular.dart/commit/0cc1217b80ceb2b9dd383d0e51e128be40bec9d4)) |
+- **NgModelValidators:** ensure that number input types render invalid when non-numeric characters are present |
+ ([476a8dbf](https://github.com/angular/angular.dart/commit/476a8dbfac40f695a02e49a8e76590135e5867d2)) |
+- **NodeCursor:** Removes nodeList() in favor of current |
+ ([aaae1d60](https://github.com/angular/angular.dart/commit/aaae1d60832b331be62b0fd94c65935ce68b2856), |
+ [#644](https://github.com/angular/angular.dart/issues/644)) |
+- **WatchGroup:** don't call reaction functions on removed WatchGroups |
+ ([a7cabe35](https://github.com/angular/angular.dart/commit/a7cabe35a0a8bd9288d517df3885245242da3676)) |
+- **angular:** export GetterCache from dccd |
+ ([c1655e8c](https://github.com/angular/angular.dart/commit/c1655e8c51b1133da70f04e7630e733557806a9e)) |
+- **binding:** call attach when attribute is not specified |
+ ([1cb8eb9f](https://github.com/angular/angular.dart/commit/1cb8eb9f135c55a75af2a0ada6401e5c8594b03b)) |
+- **block_factory:** |
+ - should not load template or call onShadowRoot when scope is destroyed |
+ ([2e403504](https://github.com/angular/angular.dart/commit/2e403504845f2899dd8b80f424a68eeb1c0e3fe6)) |
+ - should not call attach when scope is destroyed |
+ ([72708e33](https://github.com/angular/angular.dart/commit/72708e3337deb95a579cd8181a688e3e7859ebff)) |
+- **bouncing_balls:** ball number can not go below 0 |
+ ([6de4f810](https://github.com/angular/angular.dart/commit/6de4f810f4bcdaf639739a97816cac8006eb5faf)) |
+- **change-detection:** |
+ - correctly process watch registration inside reaction FN. |
+ ([d6bc9ab8](https://github.com/angular/angular.dart/commit/d6bc9ab871490148f937f0587f2e9d16beca62ee)) |
+ - Fix the handling of NaN & string values for maps |
+ ([156d6386](https://github.com/angular/angular.dart/commit/156d6386f45c4f6c4672432de28b1245da1c1515)) |
+ - Fix for comparing string by value |
+ ([11f1bd87](https://github.com/angular/angular.dart/commit/11f1bd872a474bd2b99f40027003c356abff6e21)) |
+ - reset next/prev on watchGroup.marker |
+ ([4dfa2676](https://github.com/angular/angular.dart/commit/4dfa267698b56017fae4b491b855767f030f3598)) |
+ - delay processing watch registration inside reaction fn. |
+ ([cd4e2e3d](https://github.com/angular/angular.dart/commit/cd4e2e3d2dbab33e31ce1cfc3273e37d55ac9008)) |
+ - remove memory leak, use iterator |
+ ([75fbded7](https://github.com/angular/angular.dart/commit/75fbded7ad2691eb4391c56a595ab488842a85ed)) |
+ - remove memory leak |
+ ([847af41f](https://github.com/angular/angular.dart/commit/847af41fd66d9016e32cf5b3d8f86e91bae7e6d9)) |
+ - corrected adding group to sibling which had children |
+ ([8583d08b](https://github.com/angular/angular.dart/commit/8583d08baf60ed63940b3ff38967877327ccf03d)) |
+- **change-detector:** handle double.NAN for collections (in JS) |
+ ([07f9b240](https://github.com/angular/angular.dart/commit/07f9b240008a143964d29153589c078aa85ddd09)) |
+- **compiler:** |
+ - don't wait indefinitly for non-null value on =>! |
+ ([5451d63d](https://github.com/angular/angular.dart/commit/5451d63d135b271a52af522343e67abfd30d7cb8)) |
+ - ensure parent controllers are exposed within the scope of their children |
+ ([cad8cc4a](https://github.com/angular/angular.dart/commit/cad8cc4a64a223c677f420acb800da89b1d0061c), |
+ [#602](https://github.com/angular/angular.dart/issues/602)) |
+ - support filters in attribute expressions |
+ ([8f020f99](https://github.com/angular/angular.dart/commit/8f020f998e8a4b7d5b595e5c44086fa2628fe8b3), |
+ [#571](https://github.com/angular/angular.dart/issues/571), [#580](https://github.com/angular/angular.dart/issues/580)) |
+- **di:** Upgrade dependency of package di preventing problems with dart sdk 1.1 resolves #408 |
+ ([1f85a8ce](https://github.com/angular/angular.dart/commit/1f85a8cee164d85d6eed43e7604a0190d1542d84), |
+ [#408](https://github.com/angular/angular.dart/issues/408), [#583](https://github.com/angular/angular.dart/issues/583)) |
+- **dirty_checking_change_detector:** correctly truncate collection change record |
+ ([c1937b4e](https://github.com/angular/angular.dart/commit/c1937b4eab87e227d2aa3b126740c93a6c75a353), |
+ [#692](https://github.com/angular/angular.dart/issues/692)) |
+- **doc:** Correct markdown for ElementProbe |
+ ([5783de44](https://github.com/angular/angular.dart/commit/5783de448333cfd0d408c4c9663f1cc7e32a6350)) |
+ - Use a consistent name for the library |
+ ([3f541fa4](https://github.com/angular/angular.dart/commit/3f541fa49a9543e8d3c7a6c416b04934c591bf74)) |
+- **doc-gen:** |
+ - add docviewer flags for generating the new angulardart docs |
+ ([99d9f2ae](https://github.com/angular/angular.dart/commit/99d9f2ae843fbda320f87e505aecb8ba2f2db4ed)) |
+ - dartbug.com/16752 |
+ ([9a1ef31d](https://github.com/angular/angular.dart/commit/9a1ef31d66f151f22b79893e11251a6780605257)) |
+- **dynamic_parser:** Handle reserved words correctly |
+ ([271ecec0](https://github.com/angular/angular.dart/commit/271ecec05e21b1eddb7663dd8297ab4b9ead4d19), |
+ [#614](https://github.com/angular/angular.dart/issues/614)) |
+- **eval access:** Do not crash on null cached value |
+ ([bbcbd3e7](https://github.com/angular/angular.dart/commit/bbcbd3e70f289c1fcc232a38ac89038f83342d3c), |
+ [#424](https://github.com/angular/angular.dart/issues/424)) |
+- **forms:** |
+ - do not reset input fields on valid submission |
+ ([24e9c3dd](https://github.com/angular/angular.dart/commit/24e9c3dd3f1cc46bdb8092f6deac0e4ad8732c1d)) |
+ - ensure fields, fieldsets & forms are marked as dirty when modified |
+ ([ad60d55a](https://github.com/angular/angular.dart/commit/ad60d55a2f8cdd6c7f0a246efdc79a5af85a833e)) |
+ - treat <input> with no type as type="text" |
+ ([8f0a8a7f](https://github.com/angular/angular.dart/commit/8f0a8a7fe87517a65b2c5ed2857c90ea87898a0b)) |
+- **generator:** |
+ - remove invalid sort on elements |
+ ([e2a00abe](https://github.com/angular/angular.dart/commit/e2a00abe371bb2d9d3c1d3c19849e075a32e92e4), |
+ [#554](https://github.com/angular/angular.dart/issues/554)) |
+ - write files in sorted order for predictable tests |
+ ([79b7525a](https://github.com/angular/angular.dart/commit/79b7525a790ce73a50c2874e2f43110fbce61d16)) |
+ - Write URI in sorted order to prevent SHA churn |
+ ([217839ef](https://github.com/angular/angular.dart/commit/217839ef3495506313a226681a6c10a52e71df0f)) |
+- **http_spec:** implement lastModified getter |
+ ([e719e75e](https://github.com/angular/angular.dart/commit/e719e75e15ca01048d1212ec403b8ee5ba3bfa74)) |
+- **introspection:** |
+ - Better error messages and checked mode support |
+ ([9ad2a686](https://github.com/angular/angular.dart/commit/9ad2a686860b21e555587dd2986ca77b969919cc)) |
+ - Export all symbols. And a test. |
+ ([691c4cab](https://github.com/angular/angular.dart/commit/691c4cab02115963fa974e55f5ee8f196c2aef13)) |
+ - warnings |
+ ([70d83c53](https://github.com/angular/angular.dart/commit/70d83c53c350920fc27942a9c3b4c83dff5c10b5), |
+ [#497](https://github.com/angular/angular.dart/issues/497)) |
+- **ng-attr:** remove camel-cased dom attributes |
+ ([b5e45117](https://github.com/angular/angular.dart/commit/b5e45117c17fdd07d5db659815eb49c2dca17b84), |
+ [#567](https://github.com/angular/angular.dart/issues/567)) |
+- **ng-class:** array syntax should not insert nulls |
+ ([b982e326](https://github.com/angular/angular.dart/commit/b982e326cd7d3fbd4e53fbe7b65ba9adc0f5cf64), |
+ [#513](https://github.com/angular/angular.dart/issues/513)) |
+- **ng-event:** don't double digest |
+ ([c38989a4](https://github.com/angular/angular.dart/commit/c38989a4496e47813d77e3d0cc4868691af7e166)) |
+- **ng-pluralize:** use ${..} to interpolate |
+ ([a630487d](https://github.com/angular/angular.dart/commit/a630487d302e396a920e02c8db5d256a81d3dd1a), |
+ [#572](https://github.com/angular/angular.dart/issues/572)) |
+- **ng-value:** Add ng-value support for checked/radio/option |
+ ([8fc2c0f4](https://github.com/angular/angular.dart/commit/8fc2c0f49aabc53ee6240ad8063ecf6c9c8b8a1f)) |
+- **ngControl:** unregister control from parent on detach |
+ ([4c9b8044](https://github.com/angular/angular.dart/commit/4c9b804454e3e0f0cb680d9359834692fc9ec304), |
+ [#684](https://github.com/angular/angular.dart/issues/684)) |
+- **ngModel:** |
+ - ensure checkboxes and radio buttons are flagged as dirty when changed |
+ ([5766a6a1](https://github.com/angular/angular.dart/commit/5766a6a173dc1d65b9293fd5bd0bcbc21b0791ec), |
+ [#569](https://github.com/angular/angular.dart/issues/569), [#585](https://github.com/angular/angular.dart/issues/585)) |
+ - process input type=number according to convention, using valueAsNumber |
+ ([cf0160b8](https://github.com/angular/angular.dart/commit/cf0160b8c316a39ac9d0fcce843c6f764429a1d4), |
+ [#574](https://github.com/angular/angular.dart/issues/574), [#577](https://github.com/angular/angular.dart/issues/577)) |
+ - ensure validation occurs when the model value changes upon digest |
+ ([f34e0b31](https://github.com/angular/angular.dart/commit/f34e0b31a6f2f42457a6d1a1b5b5aaa7e2ef86fe)) |
+ - evaluate user input using onInput instead of onKeyDown |
+ ([64442974](https://github.com/angular/angular.dart/commit/64442974157211b49bad6f28182a15aedd652efd)) |
+- **ngShow:** Add/remove ng-hide class instead of ng-show class |
+ ([0b88d2e8](https://github.com/angular/angular.dart/commit/0b88d2e8102db8b89f38b00c277b9023b260285e), |
+ [#521](https://github.com/angular/angular.dart/issues/521)) |
+- **package.json:** add repo, licenses and switch to devDependencies |
+ ([d099db59](https://github.com/angular/angular.dart/commit/d099db5944e2287fbf97a13b1aa73f8082652e09), |
+ [#544](https://github.com/angular/angular.dart/issues/544), [#545](https://github.com/angular/angular.dart/issues/545)) |
+- **parser:** |
+ - disallow filters in a chain and inside expressions |
+ ([5bcea649](https://github.com/angular/angular.dart/commit/5bcea6492f6d0fd39ba316fa3b241c50bb94de8d)) |
+ - Correctly distinguish NoSuchMethodError |
+ ([bde52abe](https://github.com/angular/angular.dart/commit/bde52abebd026d0226b90bd84380a24d7a8eab4e)) |
+- **parser, scope:** Allow nulls in binary operations. |
+ ([59811752](https://github.com/angular/angular.dart/commit/59811752f57a87fe8f6a6313fd8764f4d45b4c5c), |
+ [#646](https://github.com/angular/angular.dart/issues/646)) |
+- **parser_generator:** use parser getter/setter generator instead |
+ ([42c8d8c8](https://github.com/angular/angular.dart/commit/42c8d8c89087932c1be19965b6b649075919287d)) |
+- **readme:** Read the Travis badge |
+ ([6fe5692b](https://github.com/angular/angular.dart/commit/6fe5692b58e71c86f2001659b9f8f78016d74ebf)) |
+- **routing:** correctly scope routing to ng-app |
+ ([3ab250a7](https://github.com/angular/angular.dart/commit/3ab250a706c84542c9e618d9e98eea81d99a5d22)) |
+- **scope:** |
+ - fix null comparisons |
+ ([fb0fe0e3](https://github.com/angular/angular.dart/commit/fb0fe0e3f8adb24312646ee9bd01502be605ae7e), |
+ [#646](https://github.com/angular/angular.dart/issues/646)) |
+ - incorrect stage message |
+ ([2169a950](https://github.com/angular/angular.dart/commit/2169a950404bf8c68a9f2d239580a27caf1d9779)) |
+ - correctly setup NgZone onError handler with ExceptionHandler |
+ ([e8bc580c](https://github.com/angular/angular.dart/commit/e8bc580cfb2d3995fd113916894b26e98d07b8d6)) |
+ - return null to supress an analyzer error |
+ ([fad457e9](https://github.com/angular/angular.dart/commit/fad457e96f2c6ee17e6ce3c14a499e230e630ca5), |
+ [#594](https://github.com/angular/angular.dart/issues/594)) |
+ - correctly handle canceled listeners bookkeeping |
+ ([259ac5b1](https://github.com/angular/angular.dart/commit/259ac5b147652522a92b40a12298891dd491c9a7)) |
+ - should not trigger assertions on fork |
+ ([484f03dc](https://github.com/angular/angular.dart/commit/484f03dcce7bdc20a101d795d85eee58484d02c9)) |
+ - skip scopes without event on broadcast |
+ ([ae22a6f3](https://github.com/angular/angular.dart/commit/ae22a6f3f82e321a923a64a573b000485a3fd70e)) |
+ - createChild now requires context |
+ ([6722e1a4](https://github.com/angular/angular.dart/commit/6722e1a45bb65a86211c2eb3cef2a264bc7e871e)) |
+ - improve error msg on unstable model |
+ ([c9bf23a0](https://github.com/angular/angular.dart/commit/c9bf23a095cc1863b7075fa7bd2fd6bb6fbc9d38)) |
+ - allow sending emit/broadcast when no on() |
+ ([d9dfe0f8](https://github.com/angular/angular.dart/commit/d9dfe0f830f2df3fb1e811d6891c684f5080ee7c)) |
+ - Use Iterable instead of List |
+ ([951fa178](https://github.com/angular/angular.dart/commit/951fa1783afa65f410a2b82249850eed458ed294), |
+ [#565](https://github.com/angular/angular.dart/issues/565)) |
+ - use correct filters when digesting scope tree |
+ ([95f6503f](https://github.com/angular/angular.dart/commit/95f6503f1390159eeedfe6d14ea60ec0d70b9381)) |
+- **select:** Corrected NPE if select multiple nested in ng-if |
+ ([6228692b](https://github.com/angular/angular.dart/commit/6228692bbf0cc269999cb3cb77374bb815120a4b), |
+ [#428](https://github.com/angular/angular.dart/issues/428)) |
+- **selector:** Allow two directives with the same selector |
+ ([467b935e](https://github.com/angular/angular.dart/commit/467b935ee93a87913cfc8a025973ffd00e31bf2d), |
+ [#471](https://github.com/angular/angular.dart/issues/471), [#481](https://github.com/angular/angular.dart/issues/481)) |
+- **template_cache_generator:** support traversal of partial files |
+ ([f918d4dd](https://github.com/angular/angular.dart/commit/f918d4dd9ac7c777b0197a700fd6af58103e4129), |
+ [#662](https://github.com/angular/angular.dart/issues/662)) |
+- **watch_group:** prevent removed watches from firing |
+ ([a558a26f](https://github.com/angular/angular.dart/commit/a558a26ffdafddec986f4fafab5bbe55ef6b0b48)) |
+ |
+ |
+## Features |
+ |
+- **Animation:** Animation for AngularDart. |
+ ([5a36e773](https://github.com/angular/angular.dart/commit/5a36e773482bce7b4a797613516a56d1b628035b), |
+ [#635](https://github.com/angular/angular.dart/issues/635)) |
+ - introduce ng-animate and ng-animate-children. |
+ ([88d2af6f](https://github.com/angular/angular.dart/commit/88d2af6f81b11518cf359b85066a0f0677140b16), |
+ [#661](https://github.com/angular/angular.dart/issues/661)) |
+- **NgForm:** provide access to non-uniquely named control instances via form.controls |
+ ([6099c037](https://github.com/angular/angular.dart/commit/6099c0373f3b59bbeea8c1dfd585bbb6a50a1833), |
+ [#642](https://github.com/angular/angular.dart/issues/642)) |
+- **NgModelValidator:** |
+ - perform number validations on range input elements |
+ ([710cd5b0](https://github.com/angular/angular.dart/commit/710cd5b0ff0a7b2dfe71536e3455523d3c939b5f), |
+ [#682](https://github.com/angular/angular.dart/issues/682)) |
+ - provide support for min and max validations on number input fields |
+ ([7dc55fbf](https://github.com/angular/angular.dart/commit/7dc55fbff47b99eb5e64cd63192a7a3e7b8eae88)) |
+- **Scope:** Brand new scope implementation which takes advantage of the new change detection |
+ ([390aea5e](https://github.com/angular/angular.dart/commit/390aea5ee4318855584911afb2ce4a2b86fc718c)) |
+- **block:** |
+ - Kill block events. |
+ ([27308e9e](https://github.com/angular/angular.dart/commit/27308e9e334477370a3417535af92540bfa3d24f), |
+ [#659](https://github.com/angular/angular.dart/issues/659)) |
+ - Chain ElementProbe parents; add to shadowRoot |
+ ([b77534e4](https://github.com/angular/angular.dart/commit/b77534e4cc8ed1996bfd1d5cc27f07e81748fb95), |
+ [#625](https://github.com/angular/angular.dart/issues/625), [#630](https://github.com/angular/angular.dart/issues/630)) |
+- **blockhole:** Change blockhole to have the insert / remove / move methods. |
+ ([c1e70ce8](https://github.com/angular/angular.dart/commit/c1e70ce8e0c8c510f0dee4de043e78f61c3e9c3d), |
+ [#689](https://github.com/angular/angular.dart/issues/689)) |
+- **change-detection:** Initial implementation of new change-detection algorithm. |
+ ([d0b2dd95](https://github.com/angular/angular.dart/commit/d0b2dd957b02215671f9b2b8d8f30c05879ad8c5)) |
+- **doc:** Documentation generation for NgAnimateModule. |
+ ([a029ac5e](https://github.com/angular/angular.dart/commit/a029ac5edf7e1226dc2a04fc4d55e41bceb26d36)) |
+- **doc-gen:** Use new docviewer for generating docs |
+ ([67fcafff](https://github.com/angular/angular.dart/commit/67fcafff85d3ff1c32b610e247aa672d6eb91496)) |
+- **forms:** |
+ - use the ng-form attribute as the name of the inner form |
+ ([8b989b6d](https://github.com/angular/angular.dart/commit/8b989b6d5866eea45a3e867e3b3a56ac114ff59e), |
+ [#681](https://github.com/angular/angular.dart/issues/681)) |
+ - introduce the control.hasError helper method |
+ ([7b75af44](https://github.com/angular/angular.dart/commit/7b75af44bc4a998c83bd0a5a0339984e74766f55)) |
+ - expose getters for submitted, valid_submit and invalid_submit |
+ ([9daaa0fc](https://github.com/angular/angular.dart/commit/9daaa0fcd5898ead0a62e577001dd2568eb17dfb), |
+ [#601](https://github.com/angular/angular.dart/issues/601)) |
+ - provide support for touch and untouched control flags |
+ ([634c62b1](https://github.com/angular/angular.dart/commit/634c62b1d9d77e3d3413934b068c312afa637b43), |
+ [#591](https://github.com/angular/angular.dart/issues/591)) |
+ - generate ng-submit-valid / ng-submit-invalid CSS classes upon form submission |
+ ([4bf9447c](https://github.com/angular/angular.dart/commit/4bf9447cc64650d6c73b66c844fb5396b4a2ae27)) |
+ - provide support for reseting forms, fieldsets and models |
+ ([c75202d5](https://github.com/angular/angular.dart/commit/c75202d5d7ecabd01366f2198e0c0c3b5c087e59)) |
+ - add a test for input type="search" |
+ ([87a60d1f](https://github.com/angular/angular.dart/commit/87a60d1f43b8a4f4e7e31ca179e9de8cd2d94ce9)) |
+- **ngModel:** |
+ - Treat the values of number and range inputs as numbers |
+ ([e703bd1b](https://github.com/angular/angular.dart/commit/e703bd1bc75f4d6420afad0bbb975b3e23672ff8), |
+ [#527](https://github.com/angular/angular.dart/issues/527)) |
+ - support the input[type="search"] field |
+ ([ff736d92](https://github.com/angular/angular.dart/commit/ff736d92a16bc06b848d0be4282dbf8f80b831c5), |
+ [#466](https://github.com/angular/angular.dart/issues/466)) |
+- **ngRepeat:** add track by support |
+ ([07566457](https://github.com/angular/angular.dart/commit/07566457720c1fc9631808432a2cb39c2edeccb8), |
+ [#277](https://github.com/angular/angular.dart/issues/277), [#507](https://github.com/angular/angular.dart/issues/507)) |
+- **routing:** new DSL and deferred module loading |
+ ([3db9ddd3](https://github.com/angular/angular.dart/commit/3db9ddd3d2ab9aa97dfe2d0bdd5631190f6c6a56)) |
+- **sanitization:** make NodeValidator injectable |
+ ([47ab48ad](https://github.com/angular/angular.dart/commit/47ab48adf5cbcba6e7a2c8607b1ce1be29014a83), |
+ [#490](https://github.com/angular/angular.dart/issues/490), [#498](https://github.com/angular/angular.dart/issues/498)) |
+- **scope:** |
+ - add scope digest stat collection |
+ ([c066923d](https://github.com/angular/angular.dart/commit/c066923d8be4198e0692b22c83b11aee81fed3ee), |
+ [#609](https://github.com/angular/angular.dart/issues/609)) |
+ - add internal streams consistency checks |
+ ([65213c30](https://github.com/angular/angular.dart/commit/65213c30e2e34ed39577f0785f3c80a297829c43)) |
+ - Experimental: Watch once, watch not null expressions |
+ ([84762b10](https://github.com/angular/angular.dart/commit/84762b1028ef7e334519a5b322adf768dacd00c9)) |
+ - Allow expressions on non-scope context |
+ ([e4dfb469](https://github.com/angular/angular.dart/commit/e4dfb469c5e322ad9b90bad0ec40ce54626a24c0)) |
+- **scope2:** Basic implementation of Scope v2 |
+ ([3bde820e](https://github.com/angular/angular.dart/commit/3bde820e6cf0819d02434afb41479552487323e7)) |
+- **scripts:** robust authors.sh |
+ ([ffe43c6c](https://github.com/angular/angular.dart/commit/ffe43c6cceafcdd8c6ced170e99bbd7b50ec40fb), |
+ [#586](https://github.com/angular/angular.dart/issues/586)) |
+- **zone:** Allow escaping of auto-digest mechanism. |
+ ([2df2660d](https://github.com/angular/angular.dart/commit/2df2660d876ee3cc60047eb806704edc99c41dbf), |
+ [#557](https://github.com/angular/angular.dart/issues/557)) |
+ |
+ |
+## Performance Improvements |
+ |
+- **change-detection:** optimize DirtyCheckingChangeDetector.collectChanges() |
+ ([4453e3e8](https://github.com/angular/angular.dart/commit/4453e3e8a5602e6095cecc899d8a32594ea48b4e), |
+ [#693](https://github.com/angular/angular.dart/issues/693)) |
+- **scope:** |
+ - optim createChild() which always append at the end |
+ ([78f0c826](https://github.com/angular/angular.dart/commit/78f0c82680123f146b4e430db46bb2f59b214be1), |
+ [#626](https://github.com/angular/angular.dart/issues/626)) |
+ - misc optimizations |
+ ([7f36a8e1](https://github.com/angular/angular.dart/commit/7f36a8e1557cd55e7379b1750fd4029e7eddd91b), |
+ [#610](https://github.com/angular/angular.dart/issues/610)) |
+ |
+ |
+## BREAKING CHANGES |
+ |
+0.9.9 contains a major overhaul to the change-detection algorithm which is used behind the scenes |
+during scope digests. As a result, much of the scope API has changed to facilitate this new feature. |
+ |
+The biggest change is how scope properties are assigned on the scope. With earlier versions of |
+AngularDart, the scope object itself was treated like a map and any property accessed using square |
+brackets would either set or get the associated value. With 0.9.9 this will not produce the same |
+effect. Instead all scope property getter and setter operations are to be facilitated within the |
+scope.context member. So in other words, all the scope property reading and writing that was done |
+in earlier versions is now done the same way, but on the `scope.context` member. |
+ |
+```dart |
+// < 0.9.9 |
+scope['prop'] = 'value'; //set |
+scope['prop']; //get |
+ |
+// >= 0.9.9 |
+scope.context['prop'] = 'value'; //set |
+scope.context['prop']; //get |
+``` |
+ |
+### Breaking Changes to the Scope API |
+ |
+#### 1. scope.$watch() is now scope.watch() |
+```dart |
+//old code |
+scope.$watch('a.b.c', () {}); |
+ |
+//new code (no more $ prefixing) |
+scope.watch('a.b.c', (value, previous) {}); |
+``` |
+ |
+#### 2. scope context changes |
+```dart |
+//old code |
+scope.$watch(() => o.foo; () {}); |
+ |
+//new code (notice the context property) |
+scope.watch('foo', (value, _) {}, context: o); |
+``` |
+ |
+#### 3. watch de-registration |
+```dart |
+//old code |
+var stopWatch = scope.$watch(...); |
+stopWatch(); |
+ |
+//new code |
+Watch watch = scope.watch(...); |
+watch.remove(); |
+``` |
+ |
+#### 4. Replace scope-level digests |
+```dart |
+//old code |
+scope.$digest(); |
+ |
+//new code |
+scope.rootScope.apply(); |
+ |
+//Digest is now split between digest/flush so we need apply to call them both. |
+``` |
+ |
+#### 5. Changes to scope event listeners |
+```dart |
+//old code |
+scope.$on('foo', (e, data) {}); |
+ |
+//new code |
+scope.on('foo').listen((e) {var data = e.data;}); |
+ |
+ |
+//old code |
+scope.$on('foo', (e, a, b, c) {}); |
+ |
+//new code |
+scope.on('foo').listen((e) {MyEvent data = e.data;}); |
+ |
+ |
+//old code |
+scope.$emit('foo', [a]); |
+ |
+//new code |
+scope.emit('foo', a); |
+ |
+ |
+//old code |
+scope.$emit('foo', [a, b ,c]); |
+ |
+//new code |
+scope.emit('foo', new MyEvent(a, b, c)); |
+``` |
+ |
+#### 6. Creating new scopes |
+```dart |
+//old code |
+scope.$new(); |
+ |
+//new code |
+scope.createChild(new PrototypeMap(scope.context))); |
+ |
+//We have plans to allow any object to be the context. |
+//The PrototypeMap is a way to maintain consistent behavior. |
+``` |
+ |
+#### 7. EvalAsync |
+```dart |
+//old code |
+scope.$evalAsync(() => null); |
+ |
+//new code |
+scope.runAsync(() => null); |
+ |
+ |
+//old code |
+scope.$evalAsync( |
+ () => null, |
+ outsideDigest: true); |
+ |
+//new code |
+scope.domRead(() => null); |
+``` |
+ |
+#### 8. scope.$$verifyDigestWillRun() has been removed |
+There is currently no replacement. We feel that we have the zone under control and there is no need for this method any more. |
+ |
+#### 9. scope.$disabled has been removed |
+There is currently no replacement. |
+ |
+#### 10. Watching collections |
+```dart |
+//old code |
+scope.$watchSet(['ctrl.foo', 'ctrl.bar'], (values) {...}); |
+ |
+//new code |
+scope.watch('[ctrl.foo, ctrl.bar]', (vars, _) { |
+ var ctrlFoo = vars[0]; |
+ var ctrlBar = vars[1]; |
+}); |
+``` |
+ |
+ |
+ |
<a name="v0.9.8"></a> |
# v0.9.8 cozy-porcupine (2014-02-19) |
@@ -113,7 +1007,7 @@ |
([79b7525a](https://github.com/angular/angular.dart/commit/79b7525a790ce73a50c2874e2f43110fbce61d16)) |
- Write URI in sorted order to prevent SHA churn |
([217839ef](https://github.com/angular/angular.dart/commit/217839ef3495506313a226681a6c10a52e71df0f)) |
-- **input:** treat <input> with no type as type="text" |
+- **input:** treat `<input>` with no type as type="text" |
([8f0a8a7f](https://github.com/angular/angular.dart/commit/8f0a8a7fe87517a65b2c5ed2857c90ea87898a0b)) |
- **ng-class:** array syntax should not insert nulls |
([b982e326](https://github.com/angular/angular.dart/commit/b982e326cd7d3fbd4e53fbe7b65ba9adc0f5cf64), |