| 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; | 5 library fasta; |
| 6 | 6 |
| 7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
| 8 | 8 |
| 9 import 'dart:convert' show JSON; | 9 import 'dart:convert' show JSON; |
| 10 | 10 |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 KernelTarget createKernelTarget( | 112 KernelTarget createKernelTarget( |
| 113 DillTarget dillTarget, TranslateUri uriTranslator, bool strongMode) { | 113 DillTarget dillTarget, TranslateUri uriTranslator, bool strongMode) { |
| 114 return new KernelTarget( | 114 return new KernelTarget( |
| 115 dillTarget, uriTranslator, strongMode, c.uriToSource); | 115 dillTarget, uriTranslator, strongMode, c.uriToSource); |
| 116 } | 116 } |
| 117 | 117 |
| 118 Future<KernelTarget> buildOutline([Uri output]) async { | 118 Future<KernelTarget> buildOutline([Uri output]) async { |
| 119 TranslateUri uriTranslator = | 119 TranslateUri uriTranslator = |
| 120 await TranslateUri.parse(c.options.sdk, c.options.packages); | 120 await TranslateUri.parse(c.options.sdk, c.options.packages); |
| 121 ticker.logMs("Read packages file"); | 121 ticker.logMs("Read packages file"); |
| 122 DillTarget dillTarget = new DillTarget(ticker, uriTranslator); | 122 DillTarget dillTarget = |
| 123 new DillTarget(ticker, uriTranslator, c.options.strongMode); |
| 123 KernelTarget kernelTarget = | 124 KernelTarget kernelTarget = |
| 124 createKernelTarget(dillTarget, uriTranslator, c.options.strongMode); | 125 createKernelTarget(dillTarget, uriTranslator, c.options.strongMode); |
| 125 if (c.options.strongMode) { | 126 if (c.options.strongMode) { |
| 126 print("Note: strong mode support is preliminary and may not work."); | 127 print("Note: strong mode support is preliminary and may not work."); |
| 127 } | 128 } |
| 128 Uri platform = c.options.platform; | 129 Uri platform = c.options.platform; |
| 129 if (platform != null) { | 130 if (platform != null) { |
| 130 dillTarget.read(platform); | 131 dillTarget.read(platform); |
| 131 } | 132 } |
| 132 String argument = c.options.arguments.first; | 133 String argument = c.options.arguments.first; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 return new CompilationResult.error( | 168 return new CompilationResult.error( |
| 168 formatUnexpected(patchedSdk, -1, "Patched sdk directory not found.")); | 169 formatUnexpected(patchedSdk, -1, "Patched sdk directory not found.")); |
| 169 } | 170 } |
| 170 | 171 |
| 171 Target target = getTarget("vm", new TargetFlags(strongMode: false)); | 172 Target target = getTarget("vm", new TargetFlags(strongMode: false)); |
| 172 | 173 |
| 173 Program program; | 174 Program program; |
| 174 try { | 175 try { |
| 175 TranslateUri uriTranslator = await TranslateUri.parse(null, packages); | 176 TranslateUri uriTranslator = await TranslateUri.parse(null, packages); |
| 176 final Ticker ticker = new Ticker(isVerbose: verbose); | 177 final Ticker ticker = new Ticker(isVerbose: verbose); |
| 177 final DillTarget dillTarget = new DillTarget(ticker, uriTranslator); | 178 final DillTarget dillTarget = |
| 179 new DillTarget(ticker, uriTranslator, strongMode); |
| 178 dillTarget.read(patchedSdk.resolve('platform.dill')); | 180 dillTarget.read(patchedSdk.resolve('platform.dill')); |
| 179 final KernelTarget kernelTarget = | 181 final KernelTarget kernelTarget = |
| 180 new KernelTarget(dillTarget, uriTranslator, strongMode); | 182 new KernelTarget(dillTarget, uriTranslator, strongMode); |
| 181 kernelTarget.read(fileName); | 183 kernelTarget.read(fileName); |
| 182 await dillTarget.writeOutline(null); | 184 await dillTarget.writeOutline(null); |
| 183 program = await kernelTarget.writeOutline(null); | 185 program = await kernelTarget.writeOutline(null); |
| 184 program = await kernelTarget.writeProgram(null); | 186 program = await kernelTarget.writeProgram(null); |
| 185 if (kernelTarget.errors.isNotEmpty) { | 187 if (kernelTarget.errors.isNotEmpty) { |
| 186 return new CompilationResult.errors(kernelTarget.errors | 188 return new CompilationResult.errors(kernelTarget.errors |
| 187 .map((err) => err.toString()) | 189 .map((err) => err.toString()) |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 await CompilerCommandLine.withGlobalOptions("", [""], | 231 await CompilerCommandLine.withGlobalOptions("", [""], |
| 230 (CompilerContext c) async { | 232 (CompilerContext c) async { |
| 231 c.options.options["--packages"] = packages; | 233 c.options.options["--packages"] = packages; |
| 232 if (verbose) { | 234 if (verbose) { |
| 233 c.options.options["--verbose"] = true; | 235 c.options.options["--verbose"] = true; |
| 234 } | 236 } |
| 235 | 237 |
| 236 TranslateUri uriTranslator = | 238 TranslateUri uriTranslator = |
| 237 await TranslateUri.parse(c.options.sdk, c.options.packages); | 239 await TranslateUri.parse(c.options.sdk, c.options.packages); |
| 238 ticker.logMs("Read packages file"); | 240 ticker.logMs("Read packages file"); |
| 239 DillTarget dillTarget = new DillTarget(ticker, uriTranslator) | 241 bool strongMode = false; |
| 242 DillTarget dillTarget = new DillTarget(ticker, uriTranslator, strongMode) |
| 240 ..read(platform); | 243 ..read(platform); |
| 241 KernelTarget kernelTarget = | 244 KernelTarget kernelTarget = |
| 242 new KernelTarget(dillTarget, uriTranslator, false, c.uriToSource); | 245 new KernelTarget(dillTarget, uriTranslator, strongMode, c.uriToSource); |
| 243 | 246 |
| 244 kernelTarget.read(script); | 247 kernelTarget.read(script); |
| 245 await dillTarget.writeOutline(null); | 248 await dillTarget.writeOutline(null); |
| 246 await kernelTarget.loader.buildOutlines(); | 249 await kernelTarget.loader.buildOutlines(); |
| 247 await kernelTarget.writeDepsFile(output, depsFile, | 250 await kernelTarget.writeDepsFile(output, depsFile, |
| 248 extraDependencies: extraDependencies); | 251 extraDependencies: extraDependencies); |
| 249 }); | 252 }); |
| 250 } | 253 } |
| 251 | 254 |
| 252 // TODO(ahe): https://github.com/dart-lang/sdk/issues/28316 | 255 // TODO(ahe): https://github.com/dart-lang/sdk/issues/28316 |
| 253 class ByteSink implements Sink<List<int>> { | 256 class ByteSink implements Sink<List<int>> { |
| 254 final BytesBuilder builder = new BytesBuilder(); | 257 final BytesBuilder builder = new BytesBuilder(); |
| 255 | 258 |
| 256 void add(List<int> data) { | 259 void add(List<int> data) { |
| 257 builder.add(data); | 260 builder.add(data); |
| 258 } | 261 } |
| 259 | 262 |
| 260 void close() { | 263 void close() { |
| 261 // Nothing to do. | 264 // Nothing to do. |
| 262 } | 265 } |
| 263 } | 266 } |
| OLD | NEW |