OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 library _foreign_helper; | 5 library _foreign_helper; |
6 | 6 |
7 import 'dart:_js_embedded_names' show JsGetName, JsBuiltin; | 7 import 'dart:_js_embedded_names' show JsGetName, JsBuiltin; |
8 | 8 |
9 /** | 9 /** |
10 * Emits a JavaScript code fragment parameterized by arguments. | 10 * Emits a JavaScript code fragment parameterized by arguments. |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 | 191 |
192 /** | 192 /** |
193 * Returns the interceptor for class [type]. The interceptor is the type's | 193 * Returns the interceptor for class [type]. The interceptor is the type's |
194 * constructor's `prototype` property. [type] will typically be the class, not | 194 * constructor's `prototype` property. [type] will typically be the class, not |
195 * an interface, e.g. `JS_INTERCEPTOR_CONSTANT(JSInt)`, not | 195 * an interface, e.g. `JS_INTERCEPTOR_CONSTANT(JSInt)`, not |
196 * `JS_INTERCEPTOR_CONSTANT(int)`. | 196 * `JS_INTERCEPTOR_CONSTANT(int)`. |
197 */ | 197 */ |
198 JS_INTERCEPTOR_CONSTANT(Type type) {} | 198 JS_INTERCEPTOR_CONSTANT(Type type) {} |
199 | 199 |
200 /** | 200 /** |
201 * Returns the prefix used for generated type argument substitutions on classes. | |
202 */ | |
203 String JS_OPERATOR_AS_PREFIX() {} | |
204 | |
205 /** | |
206 * Returns the field name used for determining if an object or its | |
207 * interceptor has JavaScript indexing behavior. | |
208 */ | |
209 String JS_IS_INDEXABLE_FIELD_NAME() {} | |
210 | |
211 /** | |
212 * Returns the object corresponding to Namer.CURRENT_ISOLATE. | 201 * Returns the object corresponding to Namer.CURRENT_ISOLATE. |
213 */ | 202 */ |
214 JS_CURRENT_ISOLATE() {} | 203 JS_CURRENT_ISOLATE() {} |
215 | 204 |
216 /// Returns the name used for generated function types on classes and methods. | |
217 String JS_SIGNATURE_NAME() {} | |
218 | |
219 /// Returns the name used to tag typedefs. | |
220 String JS_TYPEDEF_TAG() {} | |
221 | |
222 /** | |
223 * Returns the name used to tag void return in function type representations | |
224 * in JavaScript. | |
225 */ | |
226 String JS_FUNCTION_TYPE_VOID_RETURN_TAG() {} | |
227 | |
228 /** | |
229 * Returns the name used to tag return types in function type representations | |
230 * in JavaScript. | |
231 */ | |
232 String JS_FUNCTION_TYPE_RETURN_TYPE_TAG() {} | |
233 | |
234 /** | |
235 * Returns the name used to tag required parameters in function type | |
236 * representations in JavaScript. | |
237 */ | |
238 String JS_FUNCTION_TYPE_REQUIRED_PARAMETERS_TAG() {} | |
239 | |
240 /** | |
241 * Returns the name used to tag optional parameters in function type | |
242 * representations in JavaScript. | |
243 */ | |
244 String JS_FUNCTION_TYPE_OPTIONAL_PARAMETERS_TAG() {} | |
245 | |
246 /** | |
247 * Returns the name used to tag named parameters in function type | |
248 * representations in JavaScript. | |
249 */ | |
250 String JS_FUNCTION_TYPE_NAMED_PARAMETERS_TAG() {} | |
251 | |
252 /// Returns the JS name for [name] from the Namer. | 205 /// Returns the JS name for [name] from the Namer. |
253 String JS_GET_NAME(JsGetName name) {} | 206 String JS_GET_NAME(JsGetName name) {} |
254 | 207 |
255 /// Reads an embedded global. | 208 /// Reads an embedded global. |
256 /// | 209 /// |
257 /// The [name] should be a constant defined in the `_embedded_names` library. | 210 /// The [name] should be a constant defined in the `_embedded_names` library. |
258 JS_EMBEDDED_GLOBAL(String typeDescription, String name) {} | 211 JS_EMBEDDED_GLOBAL(String typeDescription, String name) {} |
259 | 212 |
260 /// Instructs the compiler to execute the [builtinName] action at the call-site. | 213 /// Instructs the compiler to execute the [builtinName] action at the call-site. |
261 /// | 214 /// |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 } | 255 } |
303 | 256 |
304 /** | 257 /** |
305 * JavaScript string concatenation. Inputs must be Strings. Corresponds to the | 258 * JavaScript string concatenation. Inputs must be Strings. Corresponds to the |
306 * HStringConcat SSA instruction and may be constant-folded. | 259 * HStringConcat SSA instruction and may be constant-folded. |
307 */ | 260 */ |
308 String JS_STRING_CONCAT(String a, String b) { | 261 String JS_STRING_CONCAT(String a, String b) { |
309 // This body is unused, only here for type analysis. | 262 // This body is unused, only here for type analysis. |
310 return JS('String', '# + #', a, b); | 263 return JS('String', '# + #', a, b); |
311 } | 264 } |
OLD | NEW |