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