Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: pkg/compiler/lib/src/deferred_load.dart

Issue 2824823004: Remove Compiler and JavaScriptBackend from program_builder and collector. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | pkg/compiler/lib/src/js_backend/backend.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 library deferred_load; 5 library deferred_load;
6 6
7 import 'common/tasks.dart' show CompilerTask; 7 import 'common/tasks.dart' show CompilerTask;
8 import 'common.dart'; 8 import 'common.dart';
9 import 'compiler.dart' show Compiler; 9 import 'compiler.dart' show Compiler;
10 import 'constants/expressions.dart' show ConstantExpression; 10 import 'constants/expressions.dart' show ConstantExpression;
(...skipping 909 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 /// Where 920 /// Where
921 /// 921 ///
922 /// - <library uri> is the relative uri of the library making a deferred 922 /// - <library uri> is the relative uri of the library making a deferred
923 /// import. 923 /// import.
924 /// - <library name> is the name of the library, and "<unnamed>" if it is 924 /// - <library name> is the name of the library, and "<unnamed>" if it is
925 /// unnamed. 925 /// unnamed.
926 /// - <prefix> is the `as` prefix used for a given deferred import. 926 /// - <prefix> is the `as` prefix used for a given deferred import.
927 /// - <list of files> is a list of the filenames the must be loaded when that 927 /// - <list of files> is a list of the filenames the must be loaded when that
928 /// import is loaded. 928 /// import is loaded.
929 Map<String, Map<String, dynamic>> computeDeferredMap() { 929 Map<String, Map<String, dynamic>> computeDeferredMap() {
930 JavaScriptBackend backend = compiler.backend;
931 Map<String, Map<String, dynamic>> mapping = 930 Map<String, Map<String, dynamic>> mapping =
932 new Map<String, Map<String, dynamic>>(); 931 new Map<String, Map<String, dynamic>>();
933 _deferredImportDescriptions.keys.forEach((_DeferredImport import) { 932 _deferredImportDescriptions.keys.forEach((_DeferredImport import) {
934 List<OutputUnit> outputUnits = hunksToLoad[importDeferName[import]]; 933 List<OutputUnit> outputUnits = hunksToLoad[importDeferName[import]];
935 ImportDescription description = _deferredImportDescriptions[import]; 934 ImportDescription description = _deferredImportDescriptions[import];
936 Map<String, dynamic> libraryMap = mapping.putIfAbsent( 935 Map<String, dynamic> libraryMap = mapping.putIfAbsent(
937 description.importingUri, 936 description.importingUri,
938 () => <String, dynamic>{ 937 () => <String, dynamic>{
939 "name": description.importingLibraryName, 938 "name": description.importingLibraryName,
940 "imports": <String, List<String>>{} 939 "imports": <String, List<String>>{}
941 }); 940 });
942 941
943 libraryMap["imports"][importDeferName[import]] = 942 libraryMap["imports"][importDeferName[import]] =
944 outputUnits.map((OutputUnit outputUnit) { 943 outputUnits.map((OutputUnit outputUnit) {
945 return backend.deferredPartFileName(outputUnit.name); 944 return deferredPartFileName(outputUnit.name);
946 }).toList(); 945 }).toList();
947 }); 946 });
948 return mapping; 947 return mapping;
949 } 948 }
950 949
950 /// Returns the filename for the output-unit named [name].
951 ///
952 /// The filename is of the form "<main output file>_<name>.part.js".
953 /// If [addExtension] is false, the ".part.js" suffix is left out.
954 String deferredPartFileName(String name, {bool addExtension: true}) {
955 assert(name != "");
956 String outPath = compiler.options.outputUri != null
957 ? compiler.options.outputUri.path
958 : "out";
959 String outName = outPath.substring(outPath.lastIndexOf('/') + 1);
960 String extension = addExtension ? ".part.js" : "";
961 return "${outName}_$name$extension";
962 }
963
951 /// Creates a textual representation of the output unit content. 964 /// Creates a textual representation of the output unit content.
952 String dump() { 965 String dump() {
953 Map<OutputUnit, List<String>> elementMap = <OutputUnit, List<String>>{}; 966 Map<OutputUnit, List<String>> elementMap = <OutputUnit, List<String>>{};
954 Map<OutputUnit, List<String>> constantMap = <OutputUnit, List<String>>{}; 967 Map<OutputUnit, List<String>> constantMap = <OutputUnit, List<String>>{};
955 _elementToOutputUnit.forEach((Element element, OutputUnit output) { 968 _elementToOutputUnit.forEach((Element element, OutputUnit output) {
956 elementMap.putIfAbsent(output, () => <String>[]).add('$element'); 969 elementMap.putIfAbsent(output, () => <String>[]).add('$element');
957 }); 970 });
958 _constantToOutputUnit.forEach((ConstantValue value, OutputUnit output) { 971 _constantToOutputUnit.forEach((ConstantValue value, OutputUnit output) {
959 constantMap 972 constantMap
960 .putIfAbsent(output, () => <String>[]) 973 .putIfAbsent(output, () => <String>[])
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 1074
1062 bool operator ==(other) { 1075 bool operator ==(other) {
1063 if (other is! _DeclaredDeferredImport) return false; 1076 if (other is! _DeclaredDeferredImport) return false;
1064 return declaration == other.declaration; 1077 return declaration == other.declaration;
1065 } 1078 }
1066 1079
1067 int get hashCode => declaration.hashCode * 17; 1080 int get hashCode => declaration.hashCode * 17;
1068 1081
1069 String toString() => '$declaration'; 1082 String toString() => '$declaration';
1070 } 1083 }
OLDNEW
« no previous file with comments | « no previous file | pkg/compiler/lib/src/js_backend/backend.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698