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

Unified Diff: dart/sdk/lib/_internal/lib/js_mirrors.dart

Issue 16851002: Implement minified MirrorSystem.getName. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Add test Created 7 years, 6 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
« no previous file with comments | « dart/sdk/lib/_internal/lib/js_helper.dart ('k') | dart/sdk/lib/_internal/lib/js_names.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 38bf1e297011513c49e210976a406cc2c54665e4..fd1dd30ad3060dafc01647dde627d9482d3d9630 100644
--- a/dart/sdk/lib/_internal/lib/js_mirrors.dart
+++ b/dart/sdk/lib/_internal/lib/js_mirrors.dart
@@ -16,33 +16,19 @@ import 'dart:_js_helper' show
Null,
Primitives,
RuntimeError,
- createInvocationMirror;
+ createUnmangledInvocationMirror;
import 'dart:_interceptors' show Interceptor;
+import 'dart:_js_names';
/// 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();
-
-final Map<String, String> reflectiveNames =
- JsMirrorSystem.computeReflectiveNames();
-
-final Map<String, String> mangledGlobalNames =
- JsMirrorSystem.computeMangledGlobalNames();
-
-final Map<String, String> reflectiveGlobalNames =
- JsMirrorSystem.computeReflectiveGlobalNames();
-
class JsMirrorSystem implements MirrorSystem {
TypeMirror get dynamicType => _dynamicType;
TypeMirror get voidType => _voidType;
@@ -77,46 +63,6 @@ class JsMirrorSystem implements MirrorSystem {
}
return result;
}
-
- static Map<String, String> computeMangledNames() {
- disableTreeShaking();
- var mangledNames = JS('', 'init.mangledNames');
- var keys = extractKeys(mangledNames);
- var result = <String, String>{};
- for (String key in keys) {
- result[key] = JS('String', '#[#]', mangledNames, key);
- }
- return result;
- }
-
- static Map<String, String> computeReflectiveNames() {
- disableTreeShaking();
- var result = <String, String>{};
- mangledNames.forEach((String mangledName, String reflectiveName) {
- result[reflectiveName] = mangledName;
- });
- return result;
- }
-
- static Map<String, String> computeMangledGlobalNames() {
- disableTreeShaking();
- var mangledGlobalNames = JS('', 'init.mangledGlobalNames');
- var keys = extractKeys(mangledGlobalNames);
- var result = <String, String>{};
- for (String key in keys) {
- result[key] = JS('String', '#[#]', mangledGlobalNames, key);
- }
- return result;
- }
-
- static Map<String, String> computeReflectiveGlobalNames() {
- disableTreeShaking();
- var result = <String, String>{};
- mangledGlobalNames.forEach((String mangledName, String reflectiveName) {
- result[reflectiveName] = mangledName;
- });
- return result;
- }
}
abstract class JsMirror {
@@ -353,10 +299,11 @@ class JsInstanceMirror extends JsObjectMirror implements InstanceMirror {
int type,
String mangledName,
List arguments) {
+ disableTreeShaking();
// TODO(ahe): Get the argument names.
List<String> argumentNames = [];
- Invocation invocation = createInvocationMirror(
- n(name), mangledName, type, arguments, argumentNames);
+ Invocation invocation = createUnmangledInvocationMirror(
+ name, mangledName, type, arguments, argumentNames);
return reflect(delegate(invocation));
}
@@ -775,14 +722,3 @@ List extractMetadata(victim) {
return (metadataFunction == null)
? const [] : JS('', '#()', metadataFunction);
}
-
-List extractKeys(victim) {
- return JS('List', '''
-(function(victim, hasOwnProperty) {
- var result = [];
- for (var key in victim) {
- if (hasOwnProperty.call(victim, key)) result.push(key);
- }
- return result;
-})(#, Object.prototype.hasOwnProperty)''', victim);
-}
« no previous file with comments | « dart/sdk/lib/_internal/lib/js_helper.dart ('k') | dart/sdk/lib/_internal/lib/js_names.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698