Index: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart |
index 3dddaee07d2da3b3baad962b7192419cc0cd225d..24f70f29ff2c397322fcc6cd82f0b9b81b5a92bc 100644 |
--- a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart |
+++ b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart |
@@ -273,6 +273,14 @@ class JavaScriptBackend extends Backend { |
/// dart:mirrors has been loaded. |
FunctionElement preserveMetadataMarker; |
+ /// Holds the method "preserveUris" in js_mirrors when |
+ /// dart:mirrors has been loaded. |
+ FunctionElement preserveUrisMarker; |
+ |
+ /// Holds the method "preserveLibraryNames" in js_mirrors when |
+ /// dart:mirrors has been loaded. |
+ FunctionElement preserveLibraryNamesMarker; |
+ |
/// Holds the method "requiresPreamble" in _js_helper. |
FunctionElement requiresPreambleMarker; |
@@ -286,6 +294,12 @@ class JavaScriptBackend extends Backend { |
/// program, this variable will stil be false. |
bool hasRetainedMetadata = false; |
+ /// True if a call to preserveUris has been seen. |
+ bool mustRetainUris = false; |
+ |
+ /// True if a call to preserveLibraryNames has been seen. |
+ bool mustRetainLibraryNames = false; |
+ |
/// True if a call to preserveNames has been seen. |
bool mustPreserveNames = false; |
@@ -1451,6 +1465,10 @@ class JavaScriptBackend extends Backend { |
mustPreserveNames = true; |
} else if (element == preserveMetadataMarker) { |
mustRetainMetadata = true; |
+ } else if (element == preserveUrisMarker) { |
+ mustRetainUris = true; |
+ } else if (element == preserveLibraryNamesMarker) { |
+ mustRetainLibraryNames = true; |
} else if (element == getIsolateAffinityTagMarker) { |
needToInitializeIsolateAffinityTag = true; |
} else if (element.isDeferredLoaderGetter) { |
@@ -1611,6 +1629,8 @@ class JavaScriptBackend extends Backend { |
} else if (uri == DART_JS_MIRRORS) { |
disableTreeShakingMarker = find(library, 'disableTreeShaking'); |
preserveMetadataMarker = find(library, 'preserveMetadata'); |
+ preserveUrisMarker = find(library, 'preserveUris'); |
+ preserveLibraryNamesMarker = find(library, 'preserveLibraryNames'); |
} else if (uri == DART_JS_NAMES) { |
preserveNamesMarker = find(library, 'preserveNames'); |
} else if (uri == DART_HTML) { |