| 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('mirrors.dart2js'); | 5 #library('mirrors.dart2js'); |
| 6 | 6 |
| 7 #import('dart:io'); | 7 #import('dart:io'); |
| 8 #import('dart:uri'); | 8 #import('dart:uri'); |
| 9 | 9 |
| 10 #import('../../../../../lib/compiler/compiler.dart', prefix: 'diagnostics'); | 10 #import('../../../../../lib/compiler/compiler.dart', prefix: 'diagnostics'); |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 log('Resolving...'); | 244 log('Resolving...'); |
| 245 phase = Compiler.PHASE_RESOLVING; | 245 phase = Compiler.PHASE_RESOLVING; |
| 246 backend.enqueueHelpers(enqueuer.resolution); | 246 backend.enqueueHelpers(enqueuer.resolution); |
| 247 processQueueList(enqueuer.resolution, elementList); | 247 processQueueList(enqueuer.resolution, elementList); |
| 248 log('Resolved ${enqueuer.resolution.resolvedElements.length} elements.'); | 248 log('Resolved ${enqueuer.resolution.resolvedElements.length} elements.'); |
| 249 } | 249 } |
| 250 | 250 |
| 251 void processQueueList(Enqueuer world, List<LibraryElement> elements) { | 251 void processQueueList(Enqueuer world, List<LibraryElement> elements) { |
| 252 backend.processNativeClasses(world, libraries.getValues()); | 252 backend.processNativeClasses(world, libraries.getValues()); |
| 253 for (var library in elements) { | 253 for (var library in elements) { |
| 254 library.localMembers.forEach((element) { | 254 library.forEachLocalMember((element) { |
| 255 world.addToWorkList(element); | 255 world.addToWorkList(element); |
| 256 }); | 256 }); |
| 257 } | 257 } |
| 258 progress.reset(); | 258 progress.reset(); |
| 259 world.forEach((WorkItem work) { | 259 world.forEach((WorkItem work) { |
| 260 withCurrentElement(work.element, () => work.run(this, world)); | 260 withCurrentElement(work.element, () => work.run(this, world)); |
| 261 }); | 261 }); |
| 262 } | 262 } |
| 263 | 263 |
| 264 String codegen(WorkItem work, Enqueuer world) { | 264 String codegen(WorkItem work, Enqueuer world) { |
| (...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 var span = system.compiler.spanFromNode(node, script.uri); | 697 var span = system.compiler.spanFromNode(node, script.uri); |
| 698 return new Dart2JsLocation(script, span); | 698 return new Dart2JsLocation(script, span); |
| 699 } | 699 } |
| 700 } | 700 } |
| 701 return super.location; | 701 return super.location; |
| 702 } | 702 } |
| 703 | 703 |
| 704 void _ensureMembers() { | 704 void _ensureMembers() { |
| 705 if (_members == null) { | 705 if (_members == null) { |
| 706 _members = <String, Dart2JsMemberMirror>{}; | 706 _members = <String, Dart2JsMemberMirror>{}; |
| 707 _class.localMembers.forEach((e) { | 707 _class.forEachMember((_, e) { |
| 708 for (var member in _convertElementMemberToMemberMirrors(this, e)) { | 708 for (var member in _convertElementMemberToMemberMirrors(this, e)) { |
| 709 _members[member.canonicalName] = member; | 709 _members[member.canonicalName] = member; |
| 710 } | 710 } |
| 711 }); | 711 }); |
| 712 } | 712 } |
| 713 } | 713 } |
| 714 | 714 |
| 715 Map<Object, MemberMirror> get declaredMembers { | 715 Map<Object, MemberMirror> get declaredMembers { |
| 716 _ensureMembers(); | 716 _ensureMembers(); |
| 717 return new ImmutableMapWrapper<Object, MemberMirror>(_members); | 717 return new ImmutableMapWrapper<Object, MemberMirror>(_members); |
| (...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1332 bool get isSetter => _kind == Dart2JsMethodKind.SETTER; | 1332 bool get isSetter => _kind == Dart2JsMethodKind.SETTER; |
| 1333 | 1333 |
| 1334 bool get isOperator => _kind == Dart2JsMethodKind.OPERATOR; | 1334 bool get isOperator => _kind == Dart2JsMethodKind.OPERATOR; |
| 1335 | 1335 |
| 1336 String get operatorName => _operatorName; | 1336 String get operatorName => _operatorName; |
| 1337 | 1337 |
| 1338 Location get location { | 1338 Location get location { |
| 1339 var node = _function.parseNode(_diagnosticListener); | 1339 var node = _function.parseNode(_diagnosticListener); |
| 1340 if (node !== null) { | 1340 if (node !== null) { |
| 1341 var script = _function.getCompilationUnit().script; | 1341 var script = _function.getCompilationUnit().script; |
| 1342 if (_function.isPatched) { | |
| 1343 // TODO(ager): This should not be necessary when patch | |
| 1344 // support has been reworked. | |
| 1345 script = _function.patch.getCompilationUnit().script; | |
| 1346 } | |
| 1347 var span = system.compiler.spanFromNode(node, script.uri); | 1342 var span = system.compiler.spanFromNode(node, script.uri); |
| 1348 return new Dart2JsLocation(script, span); | 1343 return new Dart2JsLocation(script, span); |
| 1349 } | 1344 } |
| 1350 return super.location; | 1345 return super.location; |
| 1351 } | 1346 } |
| 1352 | 1347 |
| 1353 } | 1348 } |
| 1354 | 1349 |
| 1355 class Dart2JsFieldMirror extends Dart2JsElementMirror | 1350 class Dart2JsFieldMirror extends Dart2JsElementMirror |
| 1356 implements Dart2JsMemberMirror, FieldMirror { | 1351 implements Dart2JsMemberMirror, FieldMirror { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1395 if (node !== null) { | 1390 if (node !== null) { |
| 1396 var span = system.compiler.spanFromNode(node, script.uri); | 1391 var span = system.compiler.spanFromNode(node, script.uri); |
| 1397 return new Dart2JsLocation(script, span); | 1392 return new Dart2JsLocation(script, span); |
| 1398 } else { | 1393 } else { |
| 1399 var span = system.compiler.spanFromElement(_variable); | 1394 var span = system.compiler.spanFromElement(_variable); |
| 1400 return new Dart2JsLocation(script, span); | 1395 return new Dart2JsLocation(script, span); |
| 1401 } | 1396 } |
| 1402 } | 1397 } |
| 1403 } | 1398 } |
| 1404 | 1399 |
| OLD | NEW |