OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /// Analysis to determine how to generate code for typed JavaScript interop. | 5 /// Analysis to determine how to generate code for typed JavaScript interop. |
6 library compiler.src.js_backend.js_interop_analysis; | 6 library compiler.src.js_backend.js_interop_analysis; |
7 | 7 |
8 import '../common.dart'; | 8 import '../common.dart'; |
9 import '../constants/values.dart' | 9 import '../constants/values.dart' |
10 show ConstantValue, ConstructedConstantValue, StringConstantValue; | 10 show ConstantValue, ConstructedConstantValue, StringConstantValue; |
11 import '../dart_types.dart' show DartType, DynamicType, FunctionType; | 11 import '../dart_types.dart' show DartType, DynamicType, FunctionType; |
12 import '../diagnostics/messages.dart' show MessageKind; | 12 import '../diagnostics/messages.dart' show MessageKind; |
13 import '../elements/elements.dart' | 13 import '../elements/elements.dart' |
14 show | 14 show |
15 ClassElement, | 15 ClassElement, |
16 Element, | 16 Element, |
17 FieldElement, | 17 FieldElement, |
18 FunctionElement, | 18 FunctionElement, |
19 LibraryElement, | 19 LibraryElement, |
20 ParameterElement, | 20 ParameterElement, |
21 MetadataAnnotation; | 21 MetadataAnnotation; |
22 import '../js/js.dart' as jsAst; | 22 import '../js/js.dart' as jsAst; |
23 import '../js/js.dart' show js; | 23 import '../js/js.dart' show js; |
24 import '../universe/selector.dart' show Selector; | 24 import '../universe/selector.dart' show Selector; |
25 import '../universe/universe.dart' show SelectorConstraints; | 25 import '../universe/world_builder.dart' show SelectorConstraints; |
26 import 'backend_helpers.dart' show BackendHelpers; | 26 import 'backend_helpers.dart' show BackendHelpers; |
27 import 'js_backend.dart' show JavaScriptBackend; | 27 import 'js_backend.dart' show JavaScriptBackend; |
28 | 28 |
29 class JsInteropAnalysis { | 29 class JsInteropAnalysis { |
30 final JavaScriptBackend backend; | 30 final JavaScriptBackend backend; |
31 | 31 |
32 /// The resolved [FieldElement] for `Js.name`. | 32 /// The resolved [FieldElement] for `Js.name`. |
33 FieldElement nameField; | 33 FieldElement nameField; |
34 bool enabledJsInterop = false; | 34 bool enabledJsInterop = false; |
35 | 35 |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 } | 188 } |
189 | 189 |
190 FunctionType buildJsFunctionType() { | 190 FunctionType buildJsFunctionType() { |
191 // TODO(jacobr): consider using codegenWorld.isChecks to determine the | 191 // TODO(jacobr): consider using codegenWorld.isChecks to determine the |
192 // range of positional arguments that need to be supported by JavaScript | 192 // range of positional arguments that need to be supported by JavaScript |
193 // function types. | 193 // function types. |
194 return new FunctionType.synthesized(const DynamicType(), [], | 194 return new FunctionType.synthesized(const DynamicType(), [], |
195 new List<DartType>.filled(16, const DynamicType())); | 195 new List<DartType>.filled(16, const DynamicType())); |
196 } | 196 } |
197 } | 197 } |
OLD | NEW |