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

Unified Diff: dart/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart

Issue 15861005: Implement ClassMirror.owner and LibraryMirror.uri. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 7 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: 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]);
}
})''';

Powered by Google App Engine
This is Rietveld 408576698