Index: dart/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart |
diff --git a/dart/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart b/dart/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart |
index 54ded9ccb8f91461f6e0e48d135941013ed13e2d..90a1be7b77ad724711477898eeea9f33cf520387 100644 |
--- a/dart/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart |
+++ b/dart/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart |
@@ -3034,8 +3034,18 @@ if (typeof document !== "undefined" && document.readyState !== "complete") { |
List<CodeBuffer> buffers = libraryBuffers[library]; |
var buffer = buffers[0]; |
if (buffer != null) { |
+ var uri = library.canonicalUri; |
+ if (uri.scheme == 'file' && compiler.sourceMapUri != null) { |
+ // TODO(ahe): It is a hack to use compiler.sourceMapUri |
+ // here. It should be relative to the main JavaScript |
+ // output file. |
+ uri = relativize( |
+ compiler.sourceMapUri, library.canonicalUri, false); |
+ } |
mainBuffer |
- ..write('["${library.getLibraryOrScriptName()}",$_{$n') |
+ ..write('["${library.getLibraryOrScriptName()}",') |
+ ..write('"${uri}",') |
+ ..write('$_{$n') |
..addBuffer(buffer) |
..write('}],$n'); |
} |
@@ -3227,7 +3237,8 @@ const String REFLECTION_DATA_PARSER = r''' |
for (var i = 0; i < length; i++) { |
var data = reflectionData[i]; |
var name = data[0]; |
- var descriptor = data[1]; |
+ var uri = data[1]; |
+ var descriptor = data[2]; |
var classes = []; |
var functions = []; |
for (var property in descriptor) { |
@@ -3242,7 +3253,6 @@ const String REFLECTION_DATA_PARSER = r''' |
classes.push(element[""]); |
} |
} |
- var uri = ".../library" + i + ".dart"; |
libraries.push([name, uri, classes, functions]); |
} |
})'''; |