| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart.core; | 5 part of dart.core; |
| 6 | 6 |
| 7 // TODO(jacobr): move these annotations to a different package. E.g. dart:js |
| 8 |
| 9 class JsName { |
| 10 /// The JavaScript name. |
| 11 /// Used for classes and libraries. |
| 12 /// Note that this could be an expression, e.g. `lib.TypeName` in JS, but it |
| 13 /// should be kept simple, as it will be generated directly into the code. |
| 14 final String name; |
| 15 const JsName({this.name}); |
| 16 } |
| 17 |
| 18 class JsPeerInterface { |
| 19 /// The JavaScript type that we should match the API of. |
| 20 /// Used for classes where Dart subclasses should be callable from JavaScript |
| 21 /// matching the JavaScript calling conventions. |
| 22 final String name; |
| 23 const JsPeerInterface({this.name}); |
| 24 } |
| 25 |
| 26 /// A Dart interface may only be implemented by a native JavaScript object |
| 27 /// if it is marked with this annotation. |
| 28 class SupportJsExtensionMethod { |
| 29 const SupportJsExtensionMethod(); |
| 30 } |
| 31 |
| 7 /** | 32 /** |
| 8 * The annotation `@Deprecated('expires when')` marks a feature as deprecated. | 33 * The annotation `@Deprecated('expires when')` marks a feature as deprecated. |
| 9 * | 34 * |
| 10 * The annotation `@deprecated` is a shorthand for deprecating until | 35 * The annotation `@deprecated` is a shorthand for deprecating until |
| 11 * an unspecified "next release". | 36 * an unspecified "next release". |
| 12 * | 37 * |
| 13 * The intent of the `@Deprecated` annotation is to inform users of a feature | 38 * The intent of the `@Deprecated` annotation is to inform users of a feature |
| 14 * that they should change their code, even if it is currently still working | 39 * that they should change their code, even if it is currently still working |
| 15 * correctly. | 40 * correctly. |
| 16 * | 41 * |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 * | 158 * |
| 134 * Tools that understand `@proxy` should tell the user if a class using `@proxy` | 159 * Tools that understand `@proxy` should tell the user if a class using `@proxy` |
| 135 * does not override the `noSuchMethod` declared on [Object]. | 160 * does not override the `noSuchMethod` declared on [Object]. |
| 136 * | 161 * |
| 137 * The intent of the `@proxy` notation is to create objects that implement a | 162 * The intent of the `@proxy` notation is to create objects that implement a |
| 138 * type (or multiple types) that are not known at compile time. If the types | 163 * type (or multiple types) that are not known at compile time. If the types |
| 139 * are known at compile time, a class can be written that implements these | 164 * are known at compile time, a class can be written that implements these |
| 140 * types. | 165 * types. |
| 141 */ | 166 */ |
| 142 const Object proxy = const _Proxy(); | 167 const Object proxy = const _Proxy(); |
| OLD | NEW |