Chromium Code Reviews| 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..d6c67538b3b8b1cc2eec3f7bf6dbaaf4729c97ca 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 infrom the compiler that unmangled |
|
ngeoffray
2013/06/12 19:38:42
infrom -> inform
ahe
2013/06/14 12:00:22
Done.
|
| +/// 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) { |