OLD | NEW |
---|---|
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 fasta.kernel_target; | 5 library fasta.kernel_target; |
6 | 6 |
7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
8 | 8 |
9 import 'dart:io' show File, IOSink; | 9 import 'dart:io' show File, IOSink; |
10 | 10 |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
365 library.build(loader.coreLibrary); | 365 library.build(loader.coreLibrary); |
366 return link(<Library>[library.library]); | 366 return link(<Library>[library.library]); |
367 } | 367 } |
368 | 368 |
369 /// Creates a program by combining [libraries] with the libraries of | 369 /// Creates a program by combining [libraries] with the libraries of |
370 /// `dillTarget.loader.program`. | 370 /// `dillTarget.loader.program`. |
371 Program link(List<Library> libraries) { | 371 Program link(List<Library> libraries) { |
372 Map<String, Source> uriToSource = | 372 Map<String, Source> uriToSource = |
373 new Map<String, Source>.from(this.uriToSource); | 373 new Map<String, Source>.from(this.uriToSource); |
374 | 374 |
375 final Program binary = dillTarget.loader.program; | 375 libraries.addAll(dillTarget.loader.libraries); |
376 if (binary != null) { | |
377 libraries.addAll(binary.libraries); | |
378 uriToSource.addAll(binary.uriToSource); | |
379 } | |
380 | 376 |
381 // TODO(ahe): Remove this line. Kernel seems to generate a default line map | 377 // TODO(ahe): Remove this line. Kernel seems to generate a default line map |
382 // that used when there's no fileUri on an element. Instead, ensure all | 378 // that used when there's no fileUri on an element. Instead, ensure all |
383 // elements have a fileUri. | 379 // elements have a fileUri. |
384 uriToSource[""] = new Source(<int>[0], const <int>[]); | 380 uriToSource[""] = new Source(<int>[0], const <int>[]); |
385 Program program = new Program(libraries, uriToSource); | 381 Program program = new Program( |
382 nameRoot: dillTarget.nameRoot, | |
Siggi Cherem (dart-lang)
2017/05/12 16:27:57
I think I don't have the full picture yet.
I'm cu
scheglov
2017/05/12 17:15:16
Done.
| |
383 libraries: libraries, | |
384 uriToSource: uriToSource); | |
386 if (loader.first != null) { | 385 if (loader.first != null) { |
387 Builder builder = loader.first.lookup("main", -1, null); | 386 Builder builder = loader.first.lookup("main", -1, null); |
388 if (builder is KernelProcedureBuilder) { | 387 if (builder is KernelProcedureBuilder) { |
389 program.mainMethod = builder.procedure; | 388 program.mainMethod = builder.procedure; |
390 } | 389 } |
391 } | 390 } |
392 if (errors.isEmpty || dillTarget.isLoaded) { | 391 if (errors.isEmpty || dillTarget.isLoaded) { |
393 runLinkTransformations(program); | 392 runLinkTransformations(program); |
394 } | 393 } |
395 ticker.logMs("Linked program"); | 394 ticker.logMs("Linked program"); |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
718 } | 717 } |
719 for (Constructor constructor in superclass.constructors) { | 718 for (Constructor constructor in superclass.constructors) { |
720 if (constructor.name.name.isEmpty) { | 719 if (constructor.name.name.isEmpty) { |
721 return constructor.function.requiredParameterCount == 0 | 720 return constructor.function.requiredParameterCount == 0 |
722 ? constructor | 721 ? constructor |
723 : null; | 722 : null; |
724 } | 723 } |
725 } | 724 } |
726 return null; | 725 return null; |
727 } | 726 } |
OLD | NEW |