| 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 import 'dart:collection' show HashSet, Queue; |    5 import 'dart:collection' show HashSet, Queue; | 
|    6 import 'dart:convert' show JSON; |    6 import 'dart:convert' show JSON; | 
|    7 import 'dart:io' show File; |    7 import 'dart:io' show File; | 
|    8 import 'package:analyzer/dart/element/element.dart' show LibraryElement; |    8 import 'package:analyzer/dart/element/element.dart' show LibraryElement; | 
|    9 import 'package:analyzer/analyzer.dart' |    9 import 'package:analyzer/analyzer.dart' | 
|   10     show AnalysisError, CompilationUnit, ErrorSeverity; |   10     show AnalysisError, CompilationUnit, ErrorSeverity; | 
| (...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  356       printer = sourceMapContext; |  356       printer = sourceMapContext; | 
|  357     } else { |  357     } else { | 
|  358       printer = new JS.SimpleJavaScriptPrintingContext(); |  358       printer = new JS.SimpleJavaScriptPrintingContext(); | 
|  359     } |  359     } | 
|  360  |  360  | 
|  361     var tree = transformModuleFormat(format, moduleTree); |  361     var tree = transformModuleFormat(format, moduleTree); | 
|  362     tree.accept( |  362     tree.accept( | 
|  363         new JS.Printer(opts, printer, localNamer: new JS.TemporaryNamer(tree))); |  363         new JS.Printer(opts, printer, localNamer: new JS.TemporaryNamer(tree))); | 
|  364  |  364  | 
|  365     if (options.sourceMap && options.sourceMapComment) { |  365     if (options.sourceMap && options.sourceMapComment) { | 
|  366       printer.emit('\n//# sourceMappingURL=$mapUrl\n'); |  366       var relativeMapUrl = path | 
 |  367           .toUri(path.relative(path.fromUri(mapUrl), from: path.dirname(jsUrl))) | 
 |  368           .toString(); | 
 |  369       assert(path.dirname(jsUrl) == path.dirname(mapUrl)); | 
 |  370       printer.emit('\n//# sourceMappingURL=$relativeMapUrl\n'); | 
|  367     } |  371     } | 
|  368  |  372  | 
|  369     Map builtMap; |  373     Map builtMap; | 
|  370     if (sourceMap != null) { |  374     if (sourceMap != null) { | 
|  371       builtMap = placeSourceMap(sourceMap.build(jsUrl), mapUrl); |  375       builtMap = placeSourceMap(sourceMap.build(jsUrl), mapUrl); | 
|  372     } |  376     } | 
|  373     return new JSModuleCode(printer.getText(), builtMap); |  377     return new JSModuleCode(printer.getText(), builtMap); | 
|  374   } |  378   } | 
|  375  |  379  | 
|  376   /// Similar to [getCode] but immediately writes the resulting files. |  380   /// Similar to [getCode] but immediately writes the resulting files. | 
| (...skipping 29 matching lines...) Expand all  Loading... | 
|  406  |  410  | 
|  407 /// Adjusts the source paths in [sourceMap] to be relative to [sourceMapPath], |  411 /// Adjusts the source paths in [sourceMap] to be relative to [sourceMapPath], | 
|  408 /// and returns the new map. |  412 /// and returns the new map. | 
|  409 // TODO(jmesserly): find a new home for this. |  413 // TODO(jmesserly): find a new home for this. | 
|  410 Map placeSourceMap(Map sourceMap, String sourceMapPath) { |  414 Map placeSourceMap(Map sourceMap, String sourceMapPath) { | 
|  411   var dir = path.dirname(sourceMapPath); |  415   var dir = path.dirname(sourceMapPath); | 
|  412  |  416  | 
|  413   var map = new Map.from(sourceMap); |  417   var map = new Map.from(sourceMap); | 
|  414   List list = new List.from(map['sources']); |  418   List list = new List.from(map['sources']); | 
|  415   map['sources'] = list; |  419   map['sources'] = list; | 
 |  420   String relative(String uri) => | 
 |  421       path.toUri(path.relative(path.fromUri(uri), from: dir)).toString(); | 
|  416   for (int i = 0; i < list.length; i++) { |  422   for (int i = 0; i < list.length; i++) { | 
|  417     list[i] = |  423     list[i] = relative(list[i]); | 
|  418         path.toUri(path.relative(path.fromUri(list[i]), from: dir)).toString(); |  | 
|  419   } |  424   } | 
 |  425   map['file'] = relative(map['file']); | 
|  420   return map; |  426   return map; | 
|  421 } |  427 } | 
| OLD | NEW |