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

Side by Side Diff: tests/compiler/dart2js/source_mapping_test.dart

Issue 10911091: Add empty mapping entries for the ranges of generated JavaScript that don't map to any Dart source … (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: . Created 8 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 | Annotate | Revision Log
« no previous file with comments | « lib/compiler/implementation/source_map_builder.dart ('k') | 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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:uri'); 5 #import('dart:uri');
6 6
7 #import("../../../lib/compiler/implementation/leg.dart"); 7 #import("../../../lib/compiler/implementation/leg.dart");
8 #import('../../../lib/compiler/implementation/source_file.dart'); 8 #import('../../../lib/compiler/implementation/source_file.dart');
9 #import("mock_compiler.dart"); 9 #import("mock_compiler.dart");
10 #import('parser_helper.dart'); 10 #import('parser_helper.dart');
11 11
12 List compileAll(SourceFile sourceFile) { 12 CodeBuffer compileAll(SourceFile sourceFile) {
13 MockCompiler compiler = new MockCompiler(); 13 MockCompiler compiler = new MockCompiler();
14 Uri uri = new Uri.fromComponents(sourceFile.filename); 14 Uri uri = new Uri.fromComponents(sourceFile.filename);
15 compiler.sourceFiles[uri.toString()] = sourceFile; 15 compiler.sourceFiles[uri.toString()] = sourceFile;
16 compiler.runCompiler(uri); 16 compiler.runCompiler(uri);
17 return compiler.backend.emitter.sourceMapBuilder.entries; 17 return compiler.backend.emitter.mainBuffer;
18 } 18 }
19 19
20 void testSourceMapLocations(String codeWithMarkers) { 20 void testSourceMapLocations(String codeWithMarkers) {
21 List<int> expectedLocations = new List<int>(); 21 List<int> expectedLocations = new List<int>();
22 for (int i = 0; i < codeWithMarkers.length; ++i) { 22 for (int i = 0; i < codeWithMarkers.length; ++i) {
23 if (codeWithMarkers[i] == '@') { 23 if (codeWithMarkers[i] == '@') {
24 expectedLocations.add(i - expectedLocations.length); 24 expectedLocations.add(i - expectedLocations.length);
25 } 25 }
26 } 26 }
27 String code = codeWithMarkers.replaceAll('@', ''); 27 String code = codeWithMarkers.replaceAll('@', '');
28 28
29 SourceFile sourceFile = new SourceFile('<test script>', code); 29 SourceFile sourceFile = new SourceFile('<test script>', code);
30 List entries = compileAll(sourceFile); 30 CodeBuffer buffer = compileAll(sourceFile);
31
31 Set<int> locations = new Set<int>(); 32 Set<int> locations = new Set<int>();
32 for (var entry in entries) { 33 buffer.forEachSourceLocation((var element, var token, int offset) {
33 if (entry.sourceFile == sourceFile) { 34 if (element != null &&
34 locations.add(entry.sourceOffset); 35 element.getCompilationUnit().script.file == sourceFile) {
36 locations.add(token.charOffset);
35 } 37 }
36 } 38 });
37 39
38 for (int i = 0; i < expectedLocations.length; ++i) { 40 for (int i = 0; i < expectedLocations.length; ++i) {
39 int expectedLocation = expectedLocations[i]; 41 int expectedLocation = expectedLocations[i];
40 if (!locations.contains(expectedLocation)) { 42 if (!locations.contains(expectedLocation)) {
41 int originalLocation = expectedLocation + i; 43 int originalLocation = expectedLocation + i;
42 SourceFile sourceFileWithMarkers = new SourceFile('<test script>', 44 SourceFile sourceFileWithMarkers = new SourceFile('<test script>',
43 codeWithMarkers); 45 codeWithMarkers);
44 String message = sourceFileWithMarkers.getLocationMessage( 46 String message = sourceFileWithMarkers.getLocationMessage(
45 'Missing location', originalLocation, originalLocation + 1, true, 47 'Missing location', originalLocation, originalLocation + 1, true,
46 (s) => s); 48 (s) => s);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 // from problematic location. 99 // from problematic location.
98 testSourceMapLocations(FUNCTIONS_TEST); 100 testSourceMapLocations(FUNCTIONS_TEST);
99 testSourceMapLocations(RETURN_TEST); 101 testSourceMapLocations(RETURN_TEST);
100 testSourceMapLocations(NOT_TEST); 102 testSourceMapLocations(NOT_TEST);
101 testSourceMapLocations(UNARY_TEST); 103 testSourceMapLocations(UNARY_TEST);
102 testSourceMapLocations(BINARY_TEST); 104 testSourceMapLocations(BINARY_TEST);
103 testSourceMapLocations(SEND_TEST); 105 testSourceMapLocations(SEND_TEST);
104 testSourceMapLocations(SEND_SET_TEST); 106 testSourceMapLocations(SEND_SET_TEST);
105 testSourceMapLocations(LOOP_TEST); 107 testSourceMapLocations(LOOP_TEST);
106 } 108 }
OLDNEW
« no previous file with comments | « lib/compiler/implementation/source_map_builder.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698