Chromium Code Reviews| Index: pkg/observe/lib/observe.dart |
| diff --git a/pkg/observe/lib/observe.dart b/pkg/observe/lib/observe.dart |
| index a1a49774cc5605e97e609c98cc1bb06a89f9ad09..29d868e25b98542a275f8d863201bfa849a3d67f 100644 |
| --- a/pkg/observe/lib/observe.dart |
| +++ b/pkg/observe/lib/observe.dart |
| @@ -43,8 +43,8 @@ |
| * |
| * class Monster extends Unit with ChangeNotifierMixin { |
| * int _health = 100; |
| - * get health => _health; |
| - * set health(val) { |
| + * @reflectable get health => _health; |
| + * @reflectable set health(val) { |
| * _health = notifyPropertyChange(#health, _health, val); |
| * } |
| * |
| @@ -67,6 +67,11 @@ |
| * print('done!'); |
| * } |
| * |
| + * *Note*: it is good practice to keep `@reflectable` annotation on |
| + * getters/setters so they are accessible via reflection. This will preserve |
| + * them from tree-shaking. You can also put this annotation on the class and it |
| + * preserve all of its members for reflection. |
| + * |
| * [Tools](https://www.dartlang.org/polymer-dart/) exist to convert the first |
| * form into the second form automatically, to get the best of both worlds. |
| */ |
| @@ -74,6 +79,13 @@ library observe; |
| import 'dart:async'; |
| import 'dart:collection'; |
| + |
| +// Note: ObservableProperty is in this list only for the unusual use case of |
| +// dart2js without deploy tool. The deploy tool (see "transformer.dart") will |
| +// add the @reflectable annotation, which makes it work with Polymer's |
| +// @published. |
| +@MirrorsUsed(metaTargets: const [Reflectable, ObservableProperty], |
| + override: 'observe') |
|
Siggi Cherem (dart-lang)
2013/10/15 21:52:18
do you need the override here? (I thought without
Jennifer Messerly
2013/10/15 22:03:29
if overrides are null the annotation is ignored:
h
Siggi Cherem (dart-lang)
2013/10/15 22:06:45
:-( --- then either the code or the documentation
|
| import 'dart:mirrors'; |
| // Note: this is an internal library so we can import it from tests. |
| @@ -87,6 +99,7 @@ part 'src/change_notifier.dart'; |
| part 'src/change_record.dart'; |
| part 'src/compound_binding.dart'; |
| part 'src/list_path_observer.dart'; |
| +part 'src/metadata.dart'; |
| part 'src/observable.dart'; |
| part 'src/observable_box.dart'; |
| part 'src/observable_list.dart'; |