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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 let name = getName(symbol); | 60 let name = getName(symbol); |
61 let field = _dload(this.reflectee, name); | 61 let field = _dload(this.reflectee, name); |
62 return new JsInstanceMirror._(field); | 62 return new JsInstanceMirror._(field); |
63 } | 63 } |
64 setField(symbol, value) { | 64 setField(symbol, value) { |
65 let name = getName(symbol); | 65 let name = getName(symbol); |
66 _dput(this.reflectee, name, value); | 66 _dput(this.reflectee, name, value); |
67 return new JsInstanceMirror._(value); | 67 return new JsInstanceMirror._(value); |
68 } | 68 } |
69 invoke(symbol, args, namedArgs) { | 69 invoke(symbol, args, namedArgs) { |
70 if (namedArgs === void 0) | 70 if (namedArgs === void 0) namedArgs = null; |
71 namedArgs = null; | |
72 let name = getName(symbol); | 71 let name = getName(symbol); |
73 if (namedArgs != null) { | 72 if (namedArgs != null) { |
74 args = core.List.from(args); | 73 args = core.List.from(args); |
75 args[dartx.add](this[_toJsMap](namedArgs)); | 74 args[dartx.add](this[_toJsMap](namedArgs)); |
76 } | 75 } |
77 let result = _dsend(this.reflectee, name, args); | 76 let result = _dsend(this.reflectee, name, args); |
78 return new JsInstanceMirror._(result); | 77 return new JsInstanceMirror._(result); |
79 } | 78 } |
80 [_toJsMap](map) { | 79 [_toJsMap](map) { |
81 let obj = {}; | 80 let obj = {}; |
(...skipping 29 matching lines...) Expand all Loading... |
111 this[_cls] = cls; | 110 this[_cls] = cls; |
112 this.simpleName = core.Symbol.new(cls.name); | 111 this.simpleName = core.Symbol.new(cls.name); |
113 this[_metadata$] = null; | 112 this[_metadata$] = null; |
114 this[_declarations] = null; | 113 this[_declarations] = null; |
115 let fn = this[_cls][dart.metadata]; | 114 let fn = this[_cls][dart.metadata]; |
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)); | 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)); |
117 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new(); | 116 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new(); |
118 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_
cls])); | 117 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_
cls])); |
119 } | 118 } |
120 newInstance(constructorName, args, namedArgs) { | 119 newInstance(constructorName, args, namedArgs) { |
121 if (namedArgs === void 0) | 120 if (namedArgs === void 0) namedArgs = null; |
122 namedArgs = null; | |
123 dart.assert(getName(constructorName) == ""); | 121 dart.assert(getName(constructorName) == ""); |
124 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty)); | 122 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty)); |
125 let instance = new this[_cls](...args); | 123 let instance = new this[_cls](...args); |
126 return new JsInstanceMirror._(instance); | 124 return new JsInstanceMirror._(instance); |
127 } | 125 } |
128 get superinterfaces() { | 126 get superinterfaces() { |
129 let interfaceThunk = this[_cls][dart.implements]; | 127 let interfaceThunk = this[_cls][dart.implements]; |
130 if (interfaceThunk == null) { | 128 if (interfaceThunk == null) { |
131 return dart.list([], mirrors.ClassMirror); | 129 return dart.list([], mirrors.ClassMirror); |
132 } else { | 130 } else { |
133 let interfaces = dart.as(dart.dcall(interfaceThunk), core.List$(core.Typ
e)); | 131 let interfaces = dart.as(dart.dcall(interfaceThunk), core.List$(core.Typ
e)); |
134 return interfaces[dartx.map](dart.fn(t => new JsClassMirror._(dart.as(t,
core.Type)), JsClassMirror, [dart.dynamic]))[dartx.toList](); | 132 return interfaces[dartx.map](dart.fn(t => new JsClassMirror._(dart.as(t,
core.Type)), JsClassMirror, [dart.dynamic]))[dartx.toList](); |
135 } | 133 } |
136 } | 134 } |
137 getField(fieldName) { | 135 getField(fieldName) { |
138 return dart.throw(new core.UnimplementedError("ClassMirror.getField unimpl
emented")); | 136 return dart.throw(new core.UnimplementedError("ClassMirror.getField unimpl
emented")); |
139 } | 137 } |
140 invoke(memberName, positionalArguments, namedArguments) { | 138 invoke(memberName, positionalArguments, namedArguments) { |
141 if (namedArguments === void 0) | 139 if (namedArguments === void 0) namedArguments = null; |
142 namedArguments = null; | |
143 return dart.throw(new core.UnimplementedError("ClassMirror.invoke unimplem
ented")); | 140 return dart.throw(new core.UnimplementedError("ClassMirror.invoke unimplem
ented")); |
144 } | 141 } |
145 isAssignableTo(other) { | 142 isAssignableTo(other) { |
146 return dart.throw(new core.UnimplementedError("ClassMirror.isAssignable un
implemented")); | 143 return dart.throw(new core.UnimplementedError("ClassMirror.isAssignable un
implemented")); |
147 } | 144 } |
148 isSubclassOf(other) { | 145 isSubclassOf(other) { |
149 return dart.throw(new core.UnimplementedError("ClassMirror.isSubclassOf un
implemented")); | 146 return dart.throw(new core.UnimplementedError("ClassMirror.isSubclassOf un
implemented")); |
150 } | 147 } |
151 isSubtypeOf(other) { | 148 isSubtypeOf(other) { |
152 return dart.throw(new core.UnimplementedError("ClassMirror.isSubtypeOf uni
mplemented")); | 149 return dart.throw(new core.UnimplementedError("ClassMirror.isSubtypeOf uni
mplemented")); |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 exports.getName = getName; | 439 exports.getName = getName; |
443 exports.getSymbol = getSymbol; | 440 exports.getSymbol = getSymbol; |
444 exports.reflect = reflect; | 441 exports.reflect = reflect; |
445 exports.reflectType = reflectType; | 442 exports.reflectType = reflectType; |
446 exports.JsInstanceMirror = JsInstanceMirror; | 443 exports.JsInstanceMirror = JsInstanceMirror; |
447 exports.JsClassMirror = JsClassMirror; | 444 exports.JsClassMirror = JsClassMirror; |
448 exports.JsTypeMirror = JsTypeMirror; | 445 exports.JsTypeMirror = JsTypeMirror; |
449 exports.JsParameterMirror = JsParameterMirror; | 446 exports.JsParameterMirror = JsParameterMirror; |
450 exports.JsMethodMirror = JsMethodMirror; | 447 exports.JsMethodMirror = JsMethodMirror; |
451 }); | 448 }); |
OLD | NEW |