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

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: Fix problem in deferred code 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..4dc3294464e1af05241adb17131b85b7640c6d67 100644
--- a/dart/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart
+++ b/dart/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart
@@ -3033,16 +3033,28 @@ if (typeof document !== "undefined" && document.readyState !== "complete") {
for (LibraryElement library in sortedLibraries) {
List<CodeBuffer> buffers = libraryBuffers[library];
var buffer = buffers[0];
+ 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);
+ }
if (buffer != null) {
mainBuffer
- ..write('["${library.getLibraryOrScriptName()}",$_{$n')
+ ..write('["${library.getLibraryOrScriptName()}",$_')
+ ..write('"${uri}",$_')
+ ..write('{$n')
..addBuffer(buffer)
..write('}],$n');
}
buffer = buffers[1];
if (buffer != null) {
deferredBuffer
- ..write('["${library.getLibraryOrScriptName()}",$_{$n')
+ ..write('["${library.getLibraryOrScriptName()}",$_')
+ ..write('"${uri}",$_')
+ ..write('{$n')
..addBuffer(buffer)
..write('}],$n');
}
@@ -3227,7 +3239,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 +3255,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