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

Unified Diff: tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart

Issue 2690083002: Add MultiSourceInformationStrategy (Closed)
Patch Set: Cleanup. Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/compiler/dart2js/sourcemaps/multi_source_info_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart
diff --git a/tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart b/tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart
index c98dfff45c5d51b18d5db09aea6908dcb56fd221..85a19e012f2870d040838453e251dde945bd087c 100644
--- a/tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart
+++ b/tests/compiler/dart2js/sourcemaps/sourcemap_helper.dart
@@ -119,6 +119,22 @@ class RecordingPrintingContext extends LenientPrintingContext {
}
/// A [SourceMapper] that records the source locations on each node.
+class RecordingSourceMapperProvider implements SourceMapperProvider {
+ final SourceMapperProvider sourceMapperProvider;
+ final _LocationRecorder nodeToSourceLocationsMap;
+
+ RecordingSourceMapperProvider(
+ this.sourceMapperProvider, this.nodeToSourceLocationsMap);
+
+ @override
+ SourceMapper createSourceMapper(String name) {
+ return new RecordingSourceMapper(
+ sourceMapperProvider.createSourceMapper(name),
+ nodeToSourceLocationsMap);
+ }
+}
+
+/// A [SourceMapper] that records the source locations on each node.
class RecordingSourceMapper implements SourceMapper {
final SourceMapper sourceMapper;
final _LocationRecorder nodeToSourceLocationsMap;
@@ -188,13 +204,16 @@ class RecordingSourceInformationStrategy
}
@override
- SourceInformationProcessor createProcessor(SourceMapper sourceMapper) {
+ SourceInformationProcessor createProcessor(
+ SourceMapperProvider provider, SourceInformationReader reader) {
LocationMap nodeToSourceLocationsMap = new _LocationRecorder();
CodePositionRecorder codePositions = new CodePositionRecorder();
return new RecordingSourceInformationProcessor(
this,
strategy.createProcessor(
- new RecordingSourceMapper(sourceMapper, nodeToSourceLocationsMap)),
+ new RecordingSourceMapperProvider(
+ provider, nodeToSourceLocationsMap),
+ reader),
codePositions,
nodeToSourceLocationsMap);
}
@@ -332,7 +351,9 @@ class SourceMapProcessor {
CodePositionRecorder codePositions = subProcess.codePositions;
CodePointComputer visitor =
new CodePointComputer(sourceFileManager, code, nodeMap);
- new JavaScriptTracer(codePositions, [visitor]).apply(node);
+ new JavaScriptTracer(
+ codePositions, const SourceInformationReader(), [visitor])
+ .apply(node);
List<CodePoint> codePoints = visitor.codePoints;
elementSourceMapInfos[element] = new SourceMapInfo(
element, code, node, codePoints, codePositions, nodeMap);
@@ -350,7 +371,9 @@ class SourceMapProcessor {
codePositions = process.codePositions;
CodePointComputer visitor =
new CodePointComputer(sourceFileManager, code, nodeMap);
- new JavaScriptTracer(codePositions, [visitor]).apply(node);
+ new JavaScriptTracer(
+ codePositions, const SourceInformationReader(), [visitor])
+ .apply(node);
List<CodePoint> codePoints = visitor.codePoints;
mainSourceMapInfo = new SourceMapInfo(
null, code, node, codePoints, codePositions, nodeMap);
« no previous file with comments | « tests/compiler/dart2js/sourcemaps/multi_source_info_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698