OLD | NEW |
1 dart_library.library('dart/_js_mirrors', null, /* Imports */[ | 1 dart_library.library('dart/_js_mirrors', null, /* Imports */[ |
2 'dart/_runtime', | 2 'dart/_runtime', |
3 'dart/_internal', | 3 'dart/_internal', |
4 'dart/core', | 4 'dart/core', |
5 'dart/mirrors' | 5 'dart/mirrors' |
6 ], /* Lazy imports */[ | 6 ], /* Lazy imports */[ |
7 ], function(exports, dart, _internal, core, mirrors) { | 7 ], function(exports, dart, _internal, core, mirrors) { |
8 'use strict'; | 8 'use strict'; |
9 let dartx = dart.dartx; | 9 let dartx = dart.dartx; |
10 function getName(symbol) { | 10 function getName(symbol) { |
(...skipping 11 matching lines...) Expand all Loading... |
22 }); | 22 }); |
23 function reflect(reflectee) { | 23 function reflect(reflectee) { |
24 return new JsInstanceMirror._(reflectee); | 24 return new JsInstanceMirror._(reflectee); |
25 } | 25 } |
26 dart.fn(reflect, mirrors.InstanceMirror, [dart.dynamic]); | 26 dart.fn(reflect, mirrors.InstanceMirror, [dart.dynamic]); |
27 function reflectType(key) { | 27 function reflectType(key) { |
28 return new JsClassMirror._(key); | 28 return new JsClassMirror._(key); |
29 } | 29 } |
30 dart.fn(reflectType, mirrors.TypeMirror, [core.Type]); | 30 dart.fn(reflectType, mirrors.TypeMirror, [core.Type]); |
31 const _dart = dart; | 31 const _dart = dart; |
32 const _metadata = _dart.metadata; | |
33 function _dload(obj, name) { | 32 function _dload(obj, name) { |
34 return _dart.dload(obj, name); | 33 return _dart.dload(obj, name); |
35 } | 34 } |
36 dart.fn(_dload, dart.dynamic, [dart.dynamic, core.String]); | 35 dart.fn(_dload, dart.dynamic, [dart.dynamic, core.String]); |
37 function _dput(obj, name, val) { | 36 function _dput(obj, name, val) { |
38 _dart.dput(obj, name, val); | 37 _dart.dput(obj, name, val); |
39 } | 38 } |
40 dart.fn(_dput, dart.void, [dart.dynamic, core.String, dart.dynamic]); | 39 dart.fn(_dput, dart.void, [dart.dynamic, core.String, dart.dynamic]); |
41 function _dsend(obj, name, args) { | 40 function _dsend(obj, name, args) { |
42 return _dart.dsend(obj, name, ...args); | 41 return _dart.dsend(obj, name, ...args); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 dart.setSignature(JsInstanceMirror, { | 88 dart.setSignature(JsInstanceMirror, { |
90 constructors: () => ({_: [JsInstanceMirror, [core.Object]]}), | 89 constructors: () => ({_: [JsInstanceMirror, [core.Object]]}), |
91 methods: () => ({ | 90 methods: () => ({ |
92 delegate: [dart.dynamic, [core.Invocation]], | 91 delegate: [dart.dynamic, [core.Invocation]], |
93 getField: [mirrors.InstanceMirror, [core.Symbol]], | 92 getField: [mirrors.InstanceMirror, [core.Symbol]], |
94 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]], | 93 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]], |
95 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core
.Symbol, dart.dynamic)]], | 94 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core
.Symbol, dart.dynamic)]], |
96 [_toJsMap]: [dart.dynamic, [core.Map$(core.Symbol, dart.dynamic)]] | 95 [_toJsMap]: [dart.dynamic, [core.Map$(core.Symbol, dart.dynamic)]] |
97 }) | 96 }) |
98 }); | 97 }); |
99 const _metadata$ = Symbol('_metadata'); | 98 const _metadata = Symbol('_metadata'); |
100 const _declarations = Symbol('_declarations'); | 99 const _declarations = Symbol('_declarations'); |
101 const _cls = Symbol('_cls'); | 100 const _cls = Symbol('_cls'); |
102 class JsClassMirror extends core.Object { | 101 class JsClassMirror extends core.Object { |
103 get metadata() { | 102 get metadata() { |
104 return this[_metadata$]; | 103 return this[_metadata]; |
105 } | 104 } |
106 get declarations() { | 105 get declarations() { |
107 return this[_declarations]; | 106 return this[_declarations]; |
108 } | 107 } |
109 _(cls) { | 108 _(cls) { |
110 this[_cls] = cls; | 109 this[_cls] = cls; |
111 this.simpleName = core.Symbol.new(cls.name); | 110 this.simpleName = core.Symbol.new(cls.name); |
112 this[_metadata$] = null; | 111 this[_metadata] = null; |
113 this[_declarations] = null; | 112 this[_declarations] = null; |
114 let fn = this[_cls][dart.metadata]; | 113 let fn = this[_cls][dart.metadata]; |
115 this[_metadata$] = fn == null ? dart.list([], mirrors.InstanceMirror) : co
re.List$(mirrors.InstanceMirror).from(dart.as(dart.dsend(dart.dcall(fn), 'map',
dart.fn(i => new JsInstanceMirror._(i), JsInstanceMirror, [dart.dynamic])), core
.Iterable)); | 114 this[_metadata] = fn == null ? dart.list([], mirrors.InstanceMirror) : cor
e.List$(mirrors.InstanceMirror).from(dart.as(dart.dsend(dart.dcall(fn), 'map', d
art.fn(i => new JsInstanceMirror._(i), JsInstanceMirror, [dart.dynamic])), core.
Iterable)); |
116 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new(); | 115 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new(); |
117 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_
cls])); | 116 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_
cls])); |
118 } | 117 } |
119 newInstance(constructorName, args, namedArgs) { | 118 newInstance(constructorName, args, namedArgs) { |
120 if (namedArgs === void 0) namedArgs = null; | 119 if (namedArgs === void 0) namedArgs = null; |
121 dart.assert(getName(constructorName) == ""); | 120 dart.assert(getName(constructorName) == ""); |
122 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty)); | 121 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty)); |
123 let instance = new this[_cls](...args); | 122 let instance = new this[_cls](...args); |
124 return new JsInstanceMirror._(instance); | 123 return new JsInstanceMirror._(instance); |
125 } | 124 } |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 exports.getName = getName; | 438 exports.getName = getName; |
440 exports.getSymbol = getSymbol; | 439 exports.getSymbol = getSymbol; |
441 exports.reflect = reflect; | 440 exports.reflect = reflect; |
442 exports.reflectType = reflectType; | 441 exports.reflectType = reflectType; |
443 exports.JsInstanceMirror = JsInstanceMirror; | 442 exports.JsInstanceMirror = JsInstanceMirror; |
444 exports.JsClassMirror = JsClassMirror; | 443 exports.JsClassMirror = JsClassMirror; |
445 exports.JsTypeMirror = JsTypeMirror; | 444 exports.JsTypeMirror = JsTypeMirror; |
446 exports.JsParameterMirror = JsParameterMirror; | 445 exports.JsParameterMirror = JsParameterMirror; |
447 exports.JsMethodMirror = JsMethodMirror; | 446 exports.JsMethodMirror = JsMethodMirror; |
448 }); | 447 }); |
OLD | NEW |