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

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

Issue 2288453002: Make source map paths relative (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Fix comment Created 4 years, 3 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 | « lib/src/compiler/code_generator.dart ('k') | test/codegen_expected/map_keys.js » ('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) 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
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
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 }
OLDNEW
« no previous file with comments | « lib/src/compiler/code_generator.dart ('k') | test/codegen_expected/map_keys.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698