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 | |
32 /** | 7 /** |
33 * The annotation `@Deprecated('expires when')` marks a feature as deprecated. | 8 * The annotation `@Deprecated('expires when')` marks a feature as deprecated. |
34 * | 9 * |
35 * The annotation `@deprecated` is a shorthand for deprecating until | 10 * The annotation `@deprecated` is a shorthand for deprecating until |
36 * an unspecified "next release". | 11 * an unspecified "next release". |
37 * | 12 * |
38 * The intent of the `@Deprecated` annotation is to inform users of a feature | 13 * The intent of the `@Deprecated` annotation is to inform users of a feature |
39 * that they should change their code, even if it is currently still working | 14 * that they should change their code, even if it is currently still working |
40 * correctly. | 15 * correctly. |
41 * | 16 * |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 * | 133 * |
159 * Tools that understand `@proxy` should tell the user if a class using `@proxy` | 134 * Tools that understand `@proxy` should tell the user if a class using `@proxy` |
160 * does not override the `noSuchMethod` declared on [Object]. | 135 * does not override the `noSuchMethod` declared on [Object]. |
161 * | 136 * |
162 * The intent of the `@proxy` notation is to create objects that implement a | 137 * The intent of the `@proxy` notation is to create objects that implement a |
163 * type (or multiple types) that are not known at compile time. If the types | 138 * type (or multiple types) that are not known at compile time. If the types |
164 * are known at compile time, a class can be written that implements these | 139 * are known at compile time, a class can be written that implements these |
165 * types. | 140 * types. |
166 */ | 141 */ |
167 const Object proxy = const _Proxy(); | 142 const Object proxy = const _Proxy(); |
OLD | NEW |