Chromium Code Reviews| 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 dart2js.serialization_helper; | 5 library dart2js.serialization_helper; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 | 9 |
| 10 import 'package:compiler/src/commandline_options.dart'; | 10 import 'package:compiler/src/commandline_options.dart'; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 74 int first = start ?? 0; | 74 int first = start ?? 0; |
| 75 int last = end ?? tests.length - 1; | 75 int last = end ?? tests.length - 1; |
| 76 for (int index = first; index <= last; index++) { | 76 for (int index = first; index <= last; index++) { |
| 77 Test test = TESTS[index]; | 77 Test test = TESTS[index]; |
| 78 await f(index, test); | 78 await f(index, test); |
| 79 } | 79 } |
| 80 } | 80 } |
| 81 } | 81 } |
| 82 | 82 |
| 83 | 83 |
| 84 Future<String> serializeDartCore( | 84 Future<SerializedData> serializeDartCore( |
| 85 {Arguments arguments: const Arguments()}) async { | 85 {Arguments arguments: const Arguments()}) async { |
| 86 Uri uri = Uri.parse('memory:${arguments.serializedDataFileName}'); | |
| 86 print('------------------------------------------------------------------'); | 87 print('------------------------------------------------------------------'); |
| 87 print('serialize dart:core'); | 88 print('serialize dart:core'); |
| 88 print('------------------------------------------------------------------'); | 89 print('------------------------------------------------------------------'); |
| 89 String serializedData; | 90 SerializedData serializedData; |
| 90 if (arguments.loadSerializedData) { | 91 if (arguments.loadSerializedData) { |
| 91 File file = new File(arguments.serializedDataFileName); | 92 File file = new File(arguments.serializedDataFileName); |
| 92 if (file.existsSync()) { | 93 if (file.existsSync()) { |
| 93 print('Loading data from $file'); | 94 print('Loading data from $file'); |
| 94 serializedData = file.readAsStringSync(); | 95 serializedData = new SerializedData(uri, file.readAsStringSync()); |
| 95 } | 96 } |
| 96 } | 97 } |
| 97 if (serializedData == null) { | 98 if (serializedData == null) { |
| 98 Compiler compiler = compilerFor( | 99 Compiler compiler = compilerFor( |
| 99 options: [Flags.analyzeAll]); | 100 options: [Flags.analyzeAll]); |
| 100 compiler.serialization.supportSerialization = true; | 101 compiler.serialization.supportSerialization = true; |
| 101 await compiler.run(Uris.dart_core); | 102 await compiler.run(Uris.dart_core); |
| 102 BufferedEventSink sink = new BufferedEventSink(); | 103 BufferedEventSink sink = new BufferedEventSink(); |
| 103 compiler.serialization.serializeToSink( | 104 compiler.serialization.serializeToSink( |
| 104 sink, compiler.libraryLoader.libraries); | 105 sink, compiler.libraryLoader.libraries); |
| 105 serializedData = sink.text; | 106 serializedData = new SerializedData(uri, sink.text); |
| 106 if (arguments.saveSerializedData) { | 107 if (arguments.saveSerializedData) { |
| 107 File file = new File(arguments.serializedDataFileName); | 108 File file = new File(arguments.serializedDataFileName); |
| 108 print('Saving data to $file'); | 109 print('Saving data to $file'); |
| 109 file.writeAsStringSync(serializedData); | 110 file.writeAsStringSync(serializedData.data); |
| 110 } | 111 } |
| 111 } | 112 } |
| 112 return serializedData; | 113 return serializedData; |
| 113 } | 114 } |
| 115 | |
| 116 class SerializedData { | |
| 117 final Uri uri; | |
| 118 final String data; | |
| 119 | |
| 120 SerializedData(this.uri, this.data); | |
| 121 | |
| 122 Map<String, String> toMemorySourceFiles([Map<String, String> input]) { | |
| 123 Map<String, String> sourceFiles = <String, String>{}; | |
| 124 if (input != null) { | |
| 125 sourceFiles.addAll(input); | |
| 126 } | |
| 127 expandMemorySourceFiles(sourceFiles); | |
| 128 return sourceFiles; | |
| 129 } | |
| 130 | |
| 131 void expandMemorySourceFiles(Map<String, String> sourceFiles) { | |
|
Siggi Cherem (dart-lang)
2016/05/24 18:08:15
are these expand methods used anywhere else? if no
Johnni Winther
2016/05/25 07:54:46
They are used in library_test.
| |
| 132 if (uri.scheme == 'memory') { | |
| 133 sourceFiles[uri.path] = data; | |
| 134 } | |
| 135 } | |
| 136 | |
| 137 List<Uri> toUris([List<Uri> input]) { | |
| 138 List<Uri> uris = <Uri>[]; | |
| 139 if (input != null) { | |
| 140 uris.addAll(input); | |
| 141 } | |
| 142 expandUris(uris); | |
| 143 return uris; | |
| 144 } | |
| 145 | |
| 146 void expandUris(List<Uri> uris) { | |
| 147 uris.add(uri); | |
| 148 } | |
| 149 } | |
| OLD | NEW |