| Index: dart/sdk/lib/_internal/lib/js_mirrors.dart
|
| diff --git a/dart/sdk/lib/_internal/lib/js_mirrors.dart b/dart/sdk/lib/_internal/lib/js_mirrors.dart
|
| index a4254b888979a2adf0da9dcb54bffeda998f4e2f..18d6e6da2faeb70162aa0ea301a2eaf2b0bad80a 100644
|
| --- a/dart/sdk/lib/_internal/lib/js_mirrors.dart
|
| +++ b/dart/sdk/lib/_internal/lib/js_mirrors.dart
|
| @@ -19,7 +19,18 @@ import 'dart:_js_helper' show
|
| createInvocationMirror;
|
| import 'dart:_interceptors' show Interceptor;
|
|
|
| -String getName(Symbol symbol) => n(symbol);
|
| +/// No-op method that is called to inform the compiler that
|
| +/// tree-shaking needs to be disabled.
|
| +disableTreeShaking() => preserveNames();
|
| +
|
| +/// No-op method that is called to inform the compiler that unmangled
|
| +/// named must be preserved.
|
| +preserveNames() {}
|
| +
|
| +String getName(Symbol symbol) {
|
| + preserveNames();
|
| + return n(symbol);
|
| +}
|
|
|
| final Map<String, String> mangledNames = JsMirrorSystem.computeMangledNames();
|
|
|
| @@ -42,6 +53,7 @@ class JsMirrorSystem implements MirrorSystem {
|
| }
|
|
|
| static Map<String, List<LibraryMirror>> computeLibrariesByName() {
|
| + disableTreeShaking();
|
| var result = new Map<String, List<LibraryMirror>>();
|
| var jsLibraries = JS('=List|Null', 'init.libraries');
|
| if (jsLibraries == null) return result;
|
| @@ -61,6 +73,7 @@ class JsMirrorSystem implements MirrorSystem {
|
| }
|
|
|
| static Map<String, String> computeMangledNames() {
|
| + disableTreeShaking();
|
| var mangledNames = JS('', 'init.mangledNames');
|
| var keys = extractKeys(mangledNames);
|
| var result = <String, String>{};
|
| @@ -71,6 +84,7 @@ class JsMirrorSystem implements MirrorSystem {
|
| }
|
|
|
| static Map<String, String> computeReflectiveNames() {
|
| + disableTreeShaking();
|
| var result = <String, String>{};
|
| mangledNames.forEach((String mangledName, String reflectiveName) {
|
| result[reflectiveName] = mangledName;
|
| @@ -200,6 +214,7 @@ ClassMirror reflectType(Type key) {
|
| }
|
|
|
| ClassMirror reflectClassByName(Symbol symbol) {
|
| + disableTreeShaking();
|
| String className = n(symbol);
|
| var constructor = Primitives.getConstructor(className);
|
| if (constructor == null) {
|
| @@ -573,6 +588,7 @@ class JsClosureMirror extends JsInstanceMirror implements ClosureMirror {
|
| JsClosureMirror(reflectee) : super(reflectee);
|
|
|
| MethodMirror get function {
|
| + disableTreeShaking();
|
| // TODO(ahe): What about optional parameters (named or not).
|
| var extractCallName = JS('', r'''
|
| function(reflectee) {
|
|
|