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 10 matching lines...) Expand all Loading... |
21 } | 21 } |
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 dart.defineLazyProperties(exports, { | 31 const _dart = dart; |
32 get _dart() { | 32 const _metadata = _dart.metadata; |
33 return dart; | |
34 }, | |
35 get _metadata() { | |
36 return exports._dart.metadata; | |
37 } | |
38 }); | |
39 function _dload(obj, name) { | 33 function _dload(obj, name) { |
40 return exports._dart.dload(obj, name); | 34 return _dart.dload(obj, name); |
41 } | 35 } |
42 dart.fn(_dload, dart.dynamic, [dart.dynamic, core.String]); | 36 dart.fn(_dload, dart.dynamic, [dart.dynamic, core.String]); |
43 function _dput(obj, name, val) { | 37 function _dput(obj, name, val) { |
44 exports._dart.dput(obj, name, val); | 38 _dart.dput(obj, name, val); |
45 } | 39 } |
46 dart.fn(_dput, dart.void, [dart.dynamic, core.String, dart.dynamic]); | 40 dart.fn(_dput, dart.void, [dart.dynamic, core.String, dart.dynamic]); |
47 function _dsend(obj, name, args) { | 41 function _dsend(obj, name, args) { |
48 return exports._dart.dsend(obj, name, ...args); | 42 return _dart.dsend(obj, name, ...args); |
49 } | 43 } |
50 dart.fn(_dsend, dart.dynamic, [dart.dynamic, core.String, core.List]); | 44 dart.fn(_dsend, dart.dynamic, [dart.dynamic, core.String, core.List]); |
51 const _toJsMap = Symbol('_toJsMap'); | 45 const _toJsMap = Symbol('_toJsMap'); |
52 class JsInstanceMirror extends core.Object { | 46 class JsInstanceMirror extends core.Object { |
53 _(reflectee) { | 47 _(reflectee) { |
54 this.reflectee = reflectee; | 48 this.reflectee = reflectee; |
55 } | 49 } |
56 get type() { | 50 get type() { |
57 return dart.throw(new core.UnimplementedError("ClassMirror.type unimplemen
ted")); | 51 return dart.throw(new core.UnimplementedError("ClassMirror.type unimplemen
ted")); |
58 } | 52 } |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 dart.setSignature(JsInstanceMirror, { | 90 dart.setSignature(JsInstanceMirror, { |
97 constructors: () => ({_: [JsInstanceMirror, [core.Object]]}), | 91 constructors: () => ({_: [JsInstanceMirror, [core.Object]]}), |
98 methods: () => ({ | 92 methods: () => ({ |
99 delegate: [dart.dynamic, [core.Invocation]], | 93 delegate: [dart.dynamic, [core.Invocation]], |
100 getField: [mirrors.InstanceMirror, [core.Symbol]], | 94 getField: [mirrors.InstanceMirror, [core.Symbol]], |
101 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]], | 95 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]], |
102 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core
.Symbol, dart.dynamic)]], | 96 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core
.Symbol, dart.dynamic)]], |
103 [_toJsMap]: [dart.dynamic, [core.Map$(core.Symbol, dart.dynamic)]] | 97 [_toJsMap]: [dart.dynamic, [core.Map$(core.Symbol, dart.dynamic)]] |
104 }) | 98 }) |
105 }); | 99 }); |
106 const _metadata = Symbol('_metadata'); | 100 const _metadata$ = Symbol('_metadata'); |
107 const _declarations = Symbol('_declarations'); | 101 const _declarations = Symbol('_declarations'); |
108 const _cls = Symbol('_cls'); | 102 const _cls = Symbol('_cls'); |
109 class JsClassMirror extends core.Object { | 103 class JsClassMirror extends core.Object { |
110 get metadata() { | 104 get metadata() { |
111 return this[_metadata]; | 105 return this[_metadata$]; |
112 } | 106 } |
113 get declarations() { | 107 get declarations() { |
114 return this[_declarations]; | 108 return this[_declarations]; |
115 } | 109 } |
116 _(cls) { | 110 _(cls) { |
117 this[_cls] = cls; | 111 this[_cls] = cls; |
118 this.simpleName = core.Symbol.new(cls.name); | 112 this.simpleName = core.Symbol.new(cls.name); |
119 this[_metadata] = null; | 113 this[_metadata$] = null; |
120 this[_declarations] = null; | 114 this[_declarations] = null; |
121 let fn = this[_cls][dart.metadata]; | 115 let fn = this[_cls][dart.metadata]; |
122 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[_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)); |
123 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new(); | 117 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new(); |
124 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_
cls])); | 118 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_
cls])); |
125 } | 119 } |
126 newInstance(constructorName, args, namedArgs) { | 120 newInstance(constructorName, args, namedArgs) { |
127 if (namedArgs === void 0) | 121 if (namedArgs === void 0) |
128 namedArgs = null; | 122 namedArgs = null; |
129 dart.assert(getName(constructorName) == ""); | 123 dart.assert(getName(constructorName) == ""); |
130 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty)); | 124 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty)); |
131 let instance = new this[_cls](...args); | 125 let instance = new this[_cls](...args); |
132 return new JsInstanceMirror._(instance); | 126 return new JsInstanceMirror._(instance); |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 constructors: () => ({_: [JsParameterMirror, [core.String, core.Type, core.L
ist]]}) | 331 constructors: () => ({_: [JsParameterMirror, [core.String, core.Type, core.L
ist]]}) |
338 }); | 332 }); |
339 const _method = Symbol('_method'); | 333 const _method = Symbol('_method'); |
340 const _params = Symbol('_params'); | 334 const _params = Symbol('_params'); |
341 const _createParameterMirrorList = Symbol('_createParameterMirrorList'); | 335 const _createParameterMirrorList = Symbol('_createParameterMirrorList'); |
342 class JsMethodMirror extends core.Object { | 336 class JsMethodMirror extends core.Object { |
343 _(cls, method) { | 337 _(cls, method) { |
344 this[_method] = method; | 338 this[_method] = method; |
345 this[_name] = getName(cls.simpleName); | 339 this[_name] = getName(cls.simpleName); |
346 this[_params] = null; | 340 this[_params] = null; |
347 let ftype = exports._dart.classGetConstructorType(cls[_cls]); | 341 let ftype = _dart.classGetConstructorType(cls[_cls]); |
348 this[_params] = this[_createParameterMirrorList](ftype); | 342 this[_params] = this[_createParameterMirrorList](ftype); |
349 } | 343 } |
350 get constructorName() { | 344 get constructorName() { |
351 return core.Symbol.new(''); | 345 return core.Symbol.new(''); |
352 } | 346 } |
353 get parameters() { | 347 get parameters() { |
354 return this[_params]; | 348 return this[_params]; |
355 } | 349 } |
356 [_createParameterMirrorList](ftype) { | 350 [_createParameterMirrorList](ftype) { |
357 if (ftype == null) { | 351 if (ftype == null) { |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 exports.getName = getName; | 442 exports.getName = getName; |
449 exports.getSymbol = getSymbol; | 443 exports.getSymbol = getSymbol; |
450 exports.reflect = reflect; | 444 exports.reflect = reflect; |
451 exports.reflectType = reflectType; | 445 exports.reflectType = reflectType; |
452 exports.JsInstanceMirror = JsInstanceMirror; | 446 exports.JsInstanceMirror = JsInstanceMirror; |
453 exports.JsClassMirror = JsClassMirror; | 447 exports.JsClassMirror = JsClassMirror; |
454 exports.JsTypeMirror = JsTypeMirror; | 448 exports.JsTypeMirror = JsTypeMirror; |
455 exports.JsParameterMirror = JsParameterMirror; | 449 exports.JsParameterMirror = JsParameterMirror; |
456 exports.JsMethodMirror = JsMethodMirror; | 450 exports.JsMethodMirror = JsMethodMirror; |
457 }); | 451 }); |
OLD | NEW |