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 'dart:collection' show Queue; | 5 import 'dart:collection' show Queue; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
8 import '../common/backend_api.dart' show ForeignResolver; | 8 import '../common/backend_api.dart' show ForeignResolver; |
9 import '../common/registry.dart' show Registry; | 9 import '../common/registry.dart' show Registry; |
10 import '../common/resolution.dart' show Resolution; | 10 import '../common/resolution.dart' show Resolution; |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 ConstantValue value = | 311 ConstantValue value = |
312 compiler.constants.getConstantValue(annotation.constant); | 312 compiler.constants.getConstantValue(annotation.constant); |
313 if (!value.isConstructedObject) continue; | 313 if (!value.isConstructedObject) continue; |
314 ConstructedConstantValue constructedObject = value; | 314 ConstructedConstantValue constructedObject = value; |
315 if (constructedObject.type.element != annotationClass) continue; | 315 if (constructedObject.type.element != annotationClass) continue; |
316 | 316 |
317 Iterable<ConstantValue> fields = constructedObject.fields.values; | 317 Iterable<ConstantValue> fields = constructedObject.fields.values; |
318 // TODO(sra): Better validation of the constant. | 318 // TODO(sra): Better validation of the constant. |
319 if (fields.length != 1 || fields.single is! StringConstantValue) { | 319 if (fields.length != 1 || fields.single is! StringConstantValue) { |
320 reporter.internalError( | 320 reporter.internalError( |
321 annotation, 'Annotations needs one string: ${annotation}'); | 321 annotation, 'Annotations needs one string: ${annotation.node}'); |
322 } | 322 } |
323 StringConstantValue specStringConstant = fields.single; | 323 StringConstantValue specStringConstant = fields.single; |
324 String specString = specStringConstant.toDartString().slowToString(); | 324 String specString = specStringConstant.toDartString().slowToString(); |
325 if (name == null) { | 325 if (name == null) { |
326 name = specString; | 326 name = specString; |
327 } else { | 327 } else { |
328 reporter.internalError( | 328 reporter.internalError( |
329 annotation, 'Too many JSName annotations: ${annotation}'); | 329 annotation, 'Too many JSName annotations: ${annotation.node}'); |
330 } | 330 } |
331 } | 331 } |
332 return name; | 332 return name; |
333 } | 333 } |
334 | 334 |
335 enqueueClass(ClassElement classElement, cause) { | 335 enqueueClass(ClassElement classElement, cause) { |
336 assert(unusedClasses.contains(classElement)); | 336 assert(unusedClasses.contains(classElement)); |
337 unusedClasses.remove(classElement); | 337 unusedClasses.remove(classElement); |
338 pendingClasses.add(classElement); | 338 pendingClasses.add(classElement); |
339 queue.add(() { | 339 queue.add(() { |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
672 List<Element> directSubtypes = | 672 List<Element> directSubtypes = |
673 emitter.directSubtypes.putIfAbsent(superclass, () => <ClassElement>[]); | 673 emitter.directSubtypes.putIfAbsent(superclass, () => <ClassElement>[]); |
674 directSubtypes.add(cls); | 674 directSubtypes.add(cls); |
675 } | 675 } |
676 | 676 |
677 void logSummary(log(message)) { | 677 void logSummary(log(message)) { |
678 log('Compiled ${registeredClasses.length} native classes, ' | 678 log('Compiled ${registeredClasses.length} native classes, ' |
679 '${unusedClasses.length} native classes omitted.'); | 679 '${unusedClasses.length} native classes omitted.'); |
680 } | 680 } |
681 } | 681 } |
OLD | NEW |