| 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 library sourcemap.helper; | 5 library sourcemap.helper; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 import 'package:compiler/compiler_new.dart'; | 9 import 'package:compiler/compiler_new.dart'; |
| 10 import 'package:compiler/src/apiimpl.dart' as api; | 10 import 'package:compiler/src/apiimpl.dart' as api; |
| 11 import 'package:compiler/src/commandline_options.dart'; | 11 import 'package:compiler/src/commandline_options.dart'; |
| 12 import 'package:compiler/src/null_compiler_output.dart' show NullSink; | 12 import 'package:compiler/src/null_compiler_output.dart' show NullSink; |
| 13 import 'package:compiler/src/elements/elements.dart'; | 13 import 'package:compiler/src/elements/elements.dart'; |
| 14 import 'package:compiler/src/helpers/helpers.dart'; | 14 import 'package:compiler/src/helpers/helpers.dart'; |
| 15 import 'package:compiler/src/filenames.dart'; | 15 import 'package:compiler/src/filenames.dart'; |
| 16 import 'package:compiler/src/io/code_output.dart'; | 16 import 'package:compiler/src/io/code_output.dart'; |
| 17 import 'package:compiler/src/io/source_file.dart'; | 17 import 'package:compiler/src/io/source_file.dart'; |
| 18 import 'package:compiler/src/io/source_information.dart'; | 18 import 'package:compiler/src/io/source_information.dart'; |
| 19 import 'package:compiler/src/io/position_information.dart'; | 19 import 'package:compiler/src/io/position_information.dart'; |
| 20 import 'package:compiler/src/js/js.dart' as js; | 20 import 'package:compiler/src/js/js.dart' as js; |
| 21 import 'package:compiler/src/js/js_debug.dart'; | 21 import 'package:compiler/src/js/js_debug.dart'; |
| 22 import 'package:compiler/src/js/js_source_mapping.dart'; | 22 import 'package:compiler/src/js/js_source_mapping.dart'; |
| 23 import 'package:compiler/src/js_backend/js_backend.dart'; | 23 import 'package:compiler/src/js_backend/js_backend.dart'; |
| 24 import 'package:compiler/src/source_file_provider.dart'; | 24 import 'package:compiler/src/source_file_provider.dart'; |
| 25 import 'package:kernel/ast.dart' show Location; |
| 25 import '../memory_compiler.dart'; | 26 import '../memory_compiler.dart'; |
| 26 import '../output_collector.dart'; | 27 import '../output_collector.dart'; |
| 27 | 28 |
| 28 class SourceFileSink implements OutputSink { | 29 class SourceFileSink implements OutputSink { |
| 29 final String filename; | 30 final String filename; |
| 30 StringBuffer sb = new StringBuffer(); | 31 StringBuffer sb = new StringBuffer(); |
| 31 SourceFile sourceFile; | 32 SourceFile sourceFile; |
| 32 | 33 |
| 33 SourceFileSink(this.filename); | 34 SourceFileSink(this.filename); |
| 34 | 35 |
| (...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 493 register(kind, node); | 494 register(kind, node); |
| 494 } | 495 } |
| 495 | 496 |
| 496 void register(StepKind kind, js.Node node, {bool expectInfo: true}) { | 497 void register(StepKind kind, js.Node node, {bool expectInfo: true}) { |
| 497 String dartCodeFromSourceLocation(SourceLocation sourceLocation) { | 498 String dartCodeFromSourceLocation(SourceLocation sourceLocation) { |
| 498 SourceFile sourceFile = | 499 SourceFile sourceFile = |
| 499 sourceFileManager.getSourceFile(sourceLocation.sourceUri); | 500 sourceFileManager.getSourceFile(sourceLocation.sourceUri); |
| 500 if (sourceFile == null) { | 501 if (sourceFile == null) { |
| 501 return sourceLocation.shortText; | 502 return sourceLocation.shortText; |
| 502 } | 503 } |
| 503 return sourceFile | 504 return sourceFile.kernelSource |
| 504 .getLineText(sourceLocation.line) | 505 .getTextLine(sourceLocation.line + 1) |
| 505 .substring(sourceLocation.column) | 506 .substring(sourceLocation.column) |
| 506 .trim(); | 507 .trim(); |
| 507 } | 508 } |
| 508 | 509 |
| 509 void addLocation(SourceLocation sourceLocation, String jsCode) { | 510 void addLocation(SourceLocation sourceLocation, String jsCode) { |
| 510 if (sourceLocation == null) { | 511 if (sourceLocation == null) { |
| 511 if (expectInfo) { | 512 if (expectInfo) { |
| 512 SourceInformation sourceInformation = node.sourceInformation; | 513 SourceInformation sourceInformation = node.sourceInformation; |
| 513 SourceLocation sourceLocation; | 514 SourceLocation sourceLocation; |
| 514 String dartCode; | 515 String dartCode; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 569 absoluteUri = base.resolveUri(uri); | 570 absoluteUri = base.resolveUri(uri); |
| 570 } else { | 571 } else { |
| 571 absoluteUri = base.resolve(uri); | 572 absoluteUri = base.resolve(uri); |
| 572 } | 573 } |
| 573 return sourceFiles.putIfAbsent(absoluteUri, () { | 574 return sourceFiles.putIfAbsent(absoluteUri, () { |
| 574 String text = new File.fromUri(absoluteUri).readAsStringSync(); | 575 String text = new File.fromUri(absoluteUri).readAsStringSync(); |
| 575 return new StringSourceFile.fromUri(absoluteUri, text); | 576 return new StringSourceFile.fromUri(absoluteUri, text); |
| 576 }); | 577 }); |
| 577 } | 578 } |
| 578 } | 579 } |
| OLD | NEW |