OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 import 'package:front_end/src/fasta/scanner.dart' show StringToken, Token; | 5 import 'package:front_end/src/fasta/scanner.dart' show StringToken, Token; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
8 import '../common/backend_api.dart'; | 8 import '../common/backend_api.dart'; |
9 import '../compiler.dart' show Compiler; | 9 import '../compiler.dart' show Compiler; |
10 import '../constants/values.dart'; | 10 import '../constants/values.dart'; |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 /// that identifier to the @Native name of the enclosing class | 150 /// that identifier to the @Native name of the enclosing class |
151 /// 2. If [element] has a @JSName annotation that is not an identifier, | 151 /// 2. If [element] has a @JSName annotation that is not an identifier, |
152 /// use the declared @JSName as the expression | 152 /// use the declared @JSName as the expression |
153 /// 3. If [element] does not have a @JSName annotation, qualify the name of | 153 /// 3. If [element] does not have a @JSName annotation, qualify the name of |
154 /// the method with the @Native name of the enclosing class. | 154 /// the method with the @Native name of the enclosing class. |
155 void _setNativeNameForStaticMethod(MethodElement element) { | 155 void _setNativeNameForStaticMethod(MethodElement element) { |
156 String name = _findJsNameFromAnnotation(element); | 156 String name = _findJsNameFromAnnotation(element); |
157 if (name == null) name = element.name; | 157 if (name == null) name = element.name; |
158 if (_isIdentifier(name)) { | 158 if (_isIdentifier(name)) { |
159 List<String> nativeNames = | 159 List<String> nativeNames = |
160 _nativeDataBuilder.getNativeTagsOfClassRaw(element.enclosingClass); | 160 _nativeClassData.getNativeTagsOfClass(element.enclosingClass); |
161 if (nativeNames.length != 1) { | 161 if (nativeNames.length != 1) { |
162 _reporter.internalError( | 162 _reporter.internalError( |
163 element, | 163 element, |
164 'Unable to determine a native name for the enclosing class, ' | 164 'Unable to determine a native name for the enclosing class, ' |
165 'options: $nativeNames'); | 165 'options: $nativeNames'); |
166 } | 166 } |
167 _nativeDataBuilder.setNativeMemberName( | 167 _nativeDataBuilder.setNativeMemberName( |
168 element, '${nativeNames[0]}.$name'); | 168 element, '${nativeNames[0]}.$name'); |
169 } else { | 169 } else { |
170 _nativeDataBuilder.setNativeMemberName(element, name); | 170 _nativeDataBuilder.setNativeMemberName(element, name); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
320 JavaScriptBackend backend = compiler.backend; | 320 JavaScriptBackend backend = compiler.backend; |
321 ResolutionDartType type = constant.getType(compiler.commonElements); | 321 ResolutionDartType type = constant.getType(compiler.commonElements); |
322 if (type.element != backend.helpers.jsAnnotationClass) { | 322 if (type.element != backend.helpers.jsAnnotationClass) { |
323 compiler.reporter | 323 compiler.reporter |
324 .internalError(annotation, 'Invalid @JS(...) annotation.'); | 324 .internalError(annotation, 'Invalid @JS(...) annotation.'); |
325 } | 325 } |
326 } | 326 } |
327 | 327 |
328 bool get defaultResult => false; | 328 bool get defaultResult => false; |
329 } | 329 } |
OLD | NEW |