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

Side by Side Diff: pkg/source_maps/lib/parser.dart

Issue 397693002: Allow updating the `targetUrl` property of SingleMapping. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 /// Contains the top-level function to parse source maps version 3. 5 /// Contains the top-level function to parse source maps version 3.
6 library source_maps.parser; 6 library source_maps.parser;
7 7
8 import 'dart:collection'; 8 import 'dart:collection';
9 import 'dart:convert'; 9 import 'dart:convert';
10 10
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 ..write(_maps[i]) 129 ..write(_maps[i])
130 ..write(')'); 130 ..write(')');
131 } 131 }
132 buff.write(']'); 132 buff.write(']');
133 return buff.toString(); 133 return buff.toString();
134 } 134 }
135 } 135 }
136 136
137 /// A map containing direct source mappings. 137 /// A map containing direct source mappings.
138 class SingleMapping extends Mapping { 138 class SingleMapping extends Mapping {
139 /// Url of the target file.
140 final String targetUrl;
141
142 /// Source urls used in the mapping, indexed by id. 139 /// Source urls used in the mapping, indexed by id.
143 final List<String> urls; 140 final List<String> urls;
144 141
145 /// Source names used in the mapping, indexed by id. 142 /// Source names used in the mapping, indexed by id.
146 final List<String> names; 143 final List<String> names;
147 144
148 /// Entries indicating the beginning of each span. 145 /// Entries indicating the beginning of each span.
149 final List<TargetLineEntry> lines; 146 final List<TargetLineEntry> lines;
150 147
148 /// Url of the target file.
149 String targetUrl;
150
151 /// Source root appended to the start of all entries in [urls]. 151 /// Source root appended to the start of all entries in [urls].
152 String sourceRoot = null; 152 String sourceRoot = null;
Siggi Cherem (dart-lang) 2014/07/15 17:54:56 just realized this - since this is not final, the
tjblasi 2014/07/15 18:00:14 Done.
153 153
154 SingleMapping._internal(this.targetUrl, this.urls, this.names, this.lines); 154 SingleMapping._(this.targetUrl, this.urls, this.names, this.lines);
155 155
156 factory SingleMapping.fromEntries( 156 factory SingleMapping.fromEntries(
157 Iterable<builder.Entry> entries, [String fileUrl]) { 157 Iterable<builder.Entry> entries, [String fileUrl]) {
158 // The entries needs to be sorted by the target offsets. 158 // The entries needs to be sorted by the target offsets.
159 var sourceEntries = new List.from(entries)..sort(); 159 var sourceEntries = new List.from(entries)..sort();
160 var lines = <TargetLineEntry>[]; 160 var lines = <TargetLineEntry>[];
161 161
162 // Indices associated with file urls that will be part of the source map. We 162 // Indices associated with file urls that will be part of the source map. We
163 // use a linked hash-map so that `_urls.keys[_urls[u]] == u` 163 // use a linked hash-map so that `_urls.keys[_urls[u]] == u`
164 var urls = new LinkedHashMap<String, int>(); 164 var urls = new LinkedHashMap<String, int>();
(...skipping 19 matching lines...) Expand all
184 var srcNameId = sourceEntry.identifierName == null ? null : 184 var srcNameId = sourceEntry.identifierName == null ? null :
185 names.putIfAbsent(sourceEntry.identifierName, () => names.length); 185 names.putIfAbsent(sourceEntry.identifierName, () => names.length);
186 targetEntries.add(new TargetEntry( 186 targetEntries.add(new TargetEntry(
187 sourceEntry.target.column, 187 sourceEntry.target.column,
188 urlId, 188 urlId,
189 sourceEntry.source.line, 189 sourceEntry.source.line,
190 sourceEntry.source.column, 190 sourceEntry.source.column,
191 srcNameId)); 191 srcNameId));
192 } 192 }
193 } 193 }
194 return new SingleMapping._internal( 194 return new SingleMapping._(
195 fileUrl, urls.keys.toList(), names.keys.toList(), lines); 195 fileUrl, urls.keys.toList(), names.keys.toList(), lines);
196 } 196 }
197 197
198 SingleMapping.fromJson(Map map) 198 SingleMapping.fromJson(Map map)
199 : targetUrl = map['file'], 199 : targetUrl = map['file'],
200 urls = map['sources'], 200 urls = map['sources'],
201 names = map['names'], 201 names = map['names'],
202 sourceRoot = map['sourceRoot'], 202 sourceRoot = map['sourceRoot'],
203 lines = <TargetLineEntry>[] { 203 lines = <TargetLineEntry>[] {
204 int line = 0; 204 int line = 0;
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 static const _TokenKind EOF = const _TokenKind(isEof: true); 500 static const _TokenKind EOF = const _TokenKind(isEof: true);
501 static const _TokenKind VALUE = const _TokenKind(); 501 static const _TokenKind VALUE = const _TokenKind();
502 final bool isNewLine; 502 final bool isNewLine;
503 final bool isNewSegment; 503 final bool isNewSegment;
504 final bool isEof; 504 final bool isEof;
505 bool get isValue => !isNewLine && !isNewSegment && !isEof; 505 bool get isValue => !isNewLine && !isNewSegment && !isEof;
506 506
507 const _TokenKind( 507 const _TokenKind(
508 {this.isNewLine: false, this.isNewSegment: false, this.isEof: false}); 508 {this.isNewLine: false, this.isNewSegment: false, this.isEof: false});
509 } 509 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698