| 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 |