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

Unified Diff: lib/compiler/implementation/source_map_builder.dart

Issue 10696194: Introduce CodeBuffer as StringBuffer replacement in compiler. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: . Created 8 years, 5 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
Index: lib/compiler/implementation/source_map_builder.dart
diff --git a/lib/compiler/implementation/source_map_builder.dart b/lib/compiler/implementation/source_map_builder.dart
index 7fde5536cad3ee77836aeffd223012980f50ff26..6761f0b0a95403b554e98fd2f937219a1abefc7a 100644
--- a/lib/compiler/implementation/source_map_builder.dart
+++ b/lib/compiler/implementation/source_map_builder.dart
@@ -7,7 +7,6 @@
#import('dart:json');
#import('source_file.dart');
-#import('ssa/ssa.dart');
class SourceMapBuilder {
static final int VLQ_BASE_SHIFT = 5;
@@ -17,7 +16,7 @@ class SourceMapBuilder {
static final String BASE64_DIGITS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn'
'opqrstuvwxyz0123456789+/';
- List<_Block> blocks;
+ List<_Entry> entries;
Map<String, int> sourceUrlMap;
List<String> sourceUrlList;
@@ -33,7 +32,7 @@ class SourceMapBuilder {
bool firstEntryInLine;
SourceMapBuilder() {
- blocks = new List<_Block>();
+ entries = new List<_Entry>();
sourceUrlMap = new Map<String, int>();
sourceUrlList = new List<String>();
@@ -49,10 +48,9 @@ class SourceMapBuilder {
firstEntryInLine = true;
}
- void addCodeBlock(List<SourceMappingEntry> sourceMappings, int offset) {
- if (sourceMappings !== null) {
- blocks.add(new _Block(sourceMappings, offset));
- }
+ void addMapping(SourceFile sourceFile, int sourceOffset, String sourceName,
+ int targetOffset) {
+ entries.add(new _Entry(sourceFile, sourceOffset, sourceName, targetOffset));
}
String build(SourceFile targetFile) {
@@ -60,11 +58,7 @@ class SourceMapBuilder {
buffer.add('{\n');
buffer.add(' "version": 3,\n');
buffer.add(' "mappings": "');
- blocks.forEach((_Block block) {
- block.sourceMapings.forEach((SourceMappingEntry entry) {
- writeEntry(entry, targetFile, block.offset, buffer);
- });
- });
+ entries.forEach((_Entry entry) => writeEntry(entry, targetFile, buffer));
buffer.add('",\n');
buffer.add(' "sources": ');
JSON.printOn(sourceUrlList, buffer);
@@ -75,16 +69,13 @@ class SourceMapBuilder {
return buffer.toString();
}
- void writeEntry(SourceMappingEntry entry,
- SourceFile targetFile,
- int targetOffset,
- StringBuffer output) {
+ void writeEntry(_Entry entry, SourceFile targetFile, StringBuffer output) {
if (entry.sourceFile === null) {
return;
}
- int totalTargetOffset = targetOffset + entry.targetOffset;
- int targetLine = targetFile.getLine(totalTargetOffset);
- int targetColumn = targetFile.getColumn(targetLine, totalTargetOffset);
+
+ int targetLine = targetFile.getLine(entry.targetOffset);
+ int targetColumn = targetFile.getColumn(targetLine, entry.targetOffset);
String sourceUrl = entry.sourceFile.filename;
int sourceLine = entry.sourceFile.getLine(entry.sourceOffset);
int sourceColumn = entry.sourceFile.getColumn(sourceLine,
@@ -157,20 +148,11 @@ class SourceMapBuilder {
}
}
-class _Block {
- List<SourceMappingEntry> sourceMapings;
- int offset;
- _Block(this.sourceMapings, this.offset);
-}
-
-class SourceMappingEntry {
+class _Entry {
SourceFile sourceFile;
int sourceOffset;
- int targetOffset;
String sourceName;
-
- SourceMappingEntry(this.sourceFile,
- this.sourceOffset,
- this.targetOffset,
- [this.sourceName]);
+ int targetOffset;
+ _Entry(this.sourceFile, this.sourceOffset, this.sourceName,
+ this.targetOffset);
}

Powered by Google App Engine
This is Rietveld 408576698