| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /// Command line tool to run the checker on a Dart program. | 5 /// Command line tool to run the checker on a Dart program. |
| 6 library dev_compiler.src.compiler; | 6 library dev_compiler.src.compiler; |
| 7 | 7 |
| 8 import 'dart:async'; | 8 import 'dart:async'; |
| 9 import 'dart:collection'; | 9 import 'dart:collection'; |
| 10 import 'dart:math' as math; | 10 import 'dart:math' as math; |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 } | 121 } |
| 122 | 122 |
| 123 if (failureInLib) { | 123 if (failureInLib) { |
| 124 _failure = true; | 124 _failure = true; |
| 125 if (!options.codegenOptions.forceCompile) return; | 125 if (!options.codegenOptions.forceCompile) return; |
| 126 } | 126 } |
| 127 | 127 |
| 128 if (_jsGen != null) { | 128 if (_jsGen != null) { |
| 129 var unit = units.first; | 129 var unit = units.first; |
| 130 var parts = units.skip(1).toList(); | 130 var parts = units.skip(1).toList(); |
| 131 | |
| 132 // TODO(jmesserly): this hack is to avoid compiling the same compilation | |
| 133 // unit to JS twice. We mutate the AST, so it's not safe to run more than | |
| 134 // once on the same unit. | |
| 135 if (unit.getProperty(_propertyName) == true) return; | |
| 136 unit.setProperty(_propertyName, true); | |
| 137 | |
| 138 _jsGen.generateLibrary(new LibraryUnit(unit, parts)); | 131 _jsGen.generateLibrary(new LibraryUnit(unit, parts)); |
| 139 } | 132 } |
| 140 } | 133 } |
| 141 | 134 |
| 142 static const String _propertyName = 'dev_compiler.BatchCompiler.isCompiled'; | |
| 143 | |
| 144 void compileHtml(Source source) { | 135 void compileHtml(Source source) { |
| 145 // TODO(jmesserly): reuse DartScriptsTask instead of copy/paste. | 136 // TODO(jmesserly): reuse DartScriptsTask instead of copy/paste. |
| 146 var contents = context.getContents(source); | 137 var contents = context.getContents(source); |
| 147 var document = html.parse(contents.data, generateSpans: true); | 138 var document = html.parse(contents.data, generateSpans: true); |
| 148 var scripts = document.querySelectorAll('script[type="application/dart"]'); | 139 var scripts = document.querySelectorAll('script[type="application/dart"]'); |
| 149 | 140 |
| 150 var loadedLibs = new LinkedHashSet<Uri>(); | 141 var loadedLibs = new LinkedHashSet<Uri>(); |
| 151 | 142 |
| 152 for (var script in scripts) { | 143 for (var script in scripts) { |
| 153 Source scriptSource = null; | 144 Source scriptSource = null; |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 '_rtti.js', | 385 '_rtti.js', |
| 395 '_classes.js', | 386 '_classes.js', |
| 396 '_operations.js', | 387 '_operations.js', |
| 397 'dart_runtime.js', | 388 'dart_runtime.js', |
| 398 ]; | 389 ]; |
| 399 files.addAll(corelibOrder.map((l) => l.replaceAll('.', '/') + '.js')); | 390 files.addAll(corelibOrder.map((l) => l.replaceAll('.', '/') + '.js')); |
| 400 return files; | 391 return files; |
| 401 }(); | 392 }(); |
| 402 | 393 |
| 403 final _log = new Logger('dev_compiler.src.compiler'); | 394 final _log = new Logger('dev_compiler.src.compiler'); |
| OLD | NEW |