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

Side by Side Diff: lib/runtime/dart/_js_mirrors.js

Issue 1879373004: Implement modular compilation (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 8 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 unified diff | Download patch
OLDNEW
(Empty)
1 dart_library.library('dart/_js_mirrors', null, /* Imports */[
2 'dart/_runtime',
3 'dart/_internal',
4 'dart/core',
5 'dart/mirrors'
6 ], /* Lazy imports */[
7 ], function(exports, dart, _internal, core, mirrors) {
8 'use strict';
9 let dartx = dart.dartx;
10 function getName(symbol) {
11 return _internal.Symbol.getName(dart.as(symbol, _internal.Symbol));
12 }
13 dart.fn(getName, core.String, [core.Symbol]);
14 function getSymbol(name, library) {
15 return dart.throw(new core.UnimplementedError("MirrorSystem.getSymbol unimpl emented"));
16 }
17 dart.fn(getSymbol, core.Symbol, [dart.dynamic, dart.dynamic]);
18 dart.defineLazyProperties(exports, {
19 get currentJsMirrorSystem() {
20 return dart.throw(new core.UnimplementedError("MirrorSystem.currentJsMirro rSystem unimplemented"));
21 }
22 });
23 function reflect(reflectee) {
24 return new JsInstanceMirror._(reflectee);
25 }
26 dart.fn(reflect, mirrors.InstanceMirror, [dart.dynamic]);
27 function reflectType(key) {
28 return new JsClassMirror._(key);
29 }
30 dart.fn(reflectType, mirrors.TypeMirror, [core.Type]);
31 const _dart = dart;
32 function _dload(obj, name) {
33 return _dart.dload(obj, name);
34 }
35 dart.fn(_dload, dart.dynamic, [dart.dynamic, core.String]);
36 function _dput(obj, name, val) {
37 _dart.dput(obj, name, val);
38 }
39 dart.fn(_dput, dart.void, [dart.dynamic, core.String, dart.dynamic]);
40 function _dsend(obj, name, args) {
41 return _dart.dsend(obj, name, ...args);
42 }
43 dart.fn(_dsend, dart.dynamic, [dart.dynamic, core.String, core.List]);
44 const _toJsMap = Symbol('_toJsMap');
45 class JsInstanceMirror extends core.Object {
46 _(reflectee) {
47 this.reflectee = reflectee;
48 }
49 get type() {
50 return dart.throw(new core.UnimplementedError("ClassMirror.type unimplemen ted"));
51 }
52 get hasReflectee() {
53 return dart.throw(new core.UnimplementedError("ClassMirror.hasReflectee un implemented"));
54 }
55 delegate(invocation) {
56 return dart.throw(new core.UnimplementedError("ClassMirror.delegate unimpl emented"));
57 }
58 getField(symbol) {
59 let name = getName(symbol);
60 let field = _dload(this.reflectee, name);
61 return new JsInstanceMirror._(field);
62 }
63 setField(symbol, value) {
64 let name = getName(symbol);
65 _dput(this.reflectee, name, value);
66 return new JsInstanceMirror._(value);
67 }
68 invoke(symbol, args, namedArgs) {
69 if (namedArgs === void 0) namedArgs = null;
70 let name = getName(symbol);
71 if (namedArgs != null) {
72 args = core.List.from(args);
73 args[dartx.add](this[_toJsMap](namedArgs));
74 }
75 let result = _dsend(this.reflectee, name, args);
76 return new JsInstanceMirror._(result);
77 }
78 [_toJsMap](map) {
79 let obj = {};
80 map[dartx.forEach](dart.fn((key, value) => {
81 obj[getName(key)] = value;
82 }, dart.void, [core.Symbol, dart.dynamic]));
83 return obj;
84 }
85 }
86 JsInstanceMirror[dart.implements] = () => [mirrors.InstanceMirror];
87 dart.defineNamedConstructor(JsInstanceMirror, '_');
88 dart.setSignature(JsInstanceMirror, {
89 constructors: () => ({_: [JsInstanceMirror, [core.Object]]}),
90 methods: () => ({
91 delegate: [dart.dynamic, [core.Invocation]],
92 getField: [mirrors.InstanceMirror, [core.Symbol]],
93 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]],
94 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core .Symbol, dart.dynamic)]],
95 [_toJsMap]: [dart.dynamic, [core.Map$(core.Symbol, dart.dynamic)]]
96 })
97 });
98 const _metadata = Symbol('_metadata');
99 const _declarations = Symbol('_declarations');
100 const _cls = Symbol('_cls');
101 class JsClassMirror extends core.Object {
102 get metadata() {
103 return this[_metadata];
104 }
105 get declarations() {
106 return this[_declarations];
107 }
108 _(cls) {
109 this[_cls] = cls;
110 this.simpleName = core.Symbol.new(cls.name);
111 this[_metadata] = null;
112 this[_declarations] = null;
113 let fn = this[_cls][dart.metadata];
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));
115 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new();
116 this[_declarations][dartx.set](this.simpleName, new JsMethodMirror._(this, this[_cls]));
117 }
118 newInstance(constructorName, args, namedArgs) {
119 if (namedArgs === void 0) namedArgs = null;
120 dart.assert(getName(constructorName) == "");
121 dart.assert(namedArgs == null || dart.notNull(namedArgs[dartx.isEmpty]));
122 let instance = new this[_cls](...args);
123 return new JsInstanceMirror._(instance);
124 }
125 get superinterfaces() {
126 let interfaceThunk = this[_cls][dart.implements];
127 if (interfaceThunk == null) {
128 return dart.list([], mirrors.ClassMirror);
129 } else {
130 let interfaces = dart.as(dart.dcall(interfaceThunk), core.List$(core.Typ e));
131 return interfaces[dartx.map](dart.fn(t => new JsClassMirror._(t), JsClas sMirror, [core.Type]))[dartx.toList]();
132 }
133 }
134 getField(fieldName) {
135 return dart.throw(new core.UnimplementedError("ClassMirror.getField unimpl emented"));
136 }
137 invoke(memberName, positionalArguments, namedArguments) {
138 if (namedArguments === void 0) namedArguments = null;
139 return dart.throw(new core.UnimplementedError("ClassMirror.invoke unimplem ented"));
140 }
141 isAssignableTo(other) {
142 return dart.throw(new core.UnimplementedError("ClassMirror.isAssignable un implemented"));
143 }
144 isSubclassOf(other) {
145 return dart.throw(new core.UnimplementedError("ClassMirror.isSubclassOf un implemented"));
146 }
147 isSubtypeOf(other) {
148 return dart.throw(new core.UnimplementedError("ClassMirror.isSubtypeOf uni mplemented"));
149 }
150 setField(fieldName, value) {
151 return dart.throw(new core.UnimplementedError("ClassMirror.setField unimpl emented"));
152 }
153 get hasReflectedType() {
154 return dart.throw(new core.UnimplementedError("ClassMirror.hasReflectedTyp e unimplemented"));
155 }
156 get instanceMembers() {
157 return dart.throw(new core.UnimplementedError("ClassMirror.instanceMembers unimplemented"));
158 }
159 get isAbstract() {
160 return dart.throw(new core.UnimplementedError("ClassMirror.isAbstract unim plemented"));
161 }
162 get isEnum() {
163 return dart.throw(new core.UnimplementedError("ClassMirror.isEnum unimplem ented"));
164 }
165 get isOriginalDeclaration() {
166 return dart.throw(new core.UnimplementedError("ClassMirror.isOriginalDecla ration unimplemented"));
167 }
168 get isPrivate() {
169 return dart.throw(new core.UnimplementedError("ClassMirror.isPrivate unimp lemented"));
170 }
171 get isTopLevel() {
172 return dart.throw(new core.UnimplementedError("ClassMirror.isTopLevel unim plemented"));
173 }
174 get location() {
175 return dart.throw(new core.UnimplementedError("ClassMirror.location unimpl emented"));
176 }
177 get mixin() {
178 return dart.throw(new core.UnimplementedError("ClassMirror.mixin unimpleme nted"));
179 }
180 get originalDeclaration() {
181 return this;
182 }
183 get owner() {
184 return dart.throw(new core.UnimplementedError("ClassMirror.owner unimpleme nted"));
185 }
186 get qualifiedName() {
187 return dart.throw(new core.UnimplementedError("ClassMirror.qualifiedName u nimplemented"));
188 }
189 get reflectedType() {
190 return this[_cls];
191 }
192 get staticMembers() {
193 return dart.throw(new core.UnimplementedError("ClassMirror.staticMembers u nimplemented"));
194 }
195 get superclass() {
196 if (dart.equals(this[_cls], core.Object)) {
197 return null;
198 } else {
199 return new JsClassMirror._(this[_cls].__proto__);
200 }
201 }
202 get typeArguments() {
203 return dart.throw(new core.UnimplementedError("ClassMirror.typeArguments u nimplemented"));
204 }
205 get typeVariables() {
206 return dart.throw(new core.UnimplementedError("ClassMirror.typeVariables u nimplemented"));
207 }
208 }
209 JsClassMirror[dart.implements] = () => [mirrors.ClassMirror];
210 dart.defineNamedConstructor(JsClassMirror, '_');
211 dart.setSignature(JsClassMirror, {
212 constructors: () => ({_: [JsClassMirror, [core.Type]]}),
213 methods: () => ({
214 newInstance: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$ (core.Symbol, dart.dynamic)]],
215 getField: [mirrors.InstanceMirror, [core.Symbol]],
216 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core .Symbol, dart.dynamic)]],
217 isAssignableTo: [core.bool, [mirrors.TypeMirror]],
218 isSubclassOf: [core.bool, [mirrors.ClassMirror]],
219 isSubtypeOf: [core.bool, [mirrors.TypeMirror]],
220 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]]
221 })
222 });
223 class JsTypeMirror extends core.Object {
224 _(reflectedType) {
225 this.reflectedType = reflectedType;
226 this.hasReflectedType = true;
227 }
228 isAssignableTo(other) {
229 return dart.throw(new core.UnimplementedError("TypeMirror.isAssignable uni mplemented"));
230 }
231 isSubtypeOf(other) {
232 return dart.throw(new core.UnimplementedError("TypeMirror.isSubtypeOf unim plemented"));
233 }
234 get isOriginalDeclaration() {
235 return dart.throw(new core.UnimplementedError("TypeMirror.isOriginalDeclar ation unimplemented"));
236 }
237 get isPrivate() {
238 return dart.throw(new core.UnimplementedError("TypeMirror.isPrivate unimpl emented"));
239 }
240 get isTopLevel() {
241 return dart.throw(new core.UnimplementedError("TypeMirror.isTopLevel unimp lemented"));
242 }
243 get location() {
244 return dart.throw(new core.UnimplementedError("TypeMirror.location unimple mented"));
245 }
246 get metadata() {
247 return dart.throw(new core.UnimplementedError("TypeMirror.metadata unimple mented"));
248 }
249 get originalDeclaration() {
250 return dart.throw(new core.UnimplementedError("TypeMirror.originalDeclarat ion unimplemented"));
251 }
252 get owner() {
253 return dart.throw(new core.UnimplementedError("TypeMirror.owner unimplemen ted"));
254 }
255 get qualifiedName() {
256 return dart.throw(new core.UnimplementedError("TypeMirror.qualifiedName un implemented"));
257 }
258 get simpleName() {
259 return dart.throw(new core.UnimplementedError("TypeMirror.simpleName unimp lemented"));
260 }
261 get typeArguments() {
262 return dart.throw(new core.UnimplementedError("TypeMirror.typeArguments un implemented"));
263 }
264 get typeVariables() {
265 return dart.throw(new core.UnimplementedError("TypeMirror.typeVariables un implemented"));
266 }
267 }
268 JsTypeMirror[dart.implements] = () => [mirrors.TypeMirror];
269 dart.defineNamedConstructor(JsTypeMirror, '_');
270 dart.setSignature(JsTypeMirror, {
271 constructors: () => ({_: [JsTypeMirror, [core.Type]]}),
272 methods: () => ({
273 isAssignableTo: [core.bool, [mirrors.TypeMirror]],
274 isSubtypeOf: [core.bool, [mirrors.TypeMirror]]
275 })
276 });
277 const _name = Symbol('_name');
278 class JsParameterMirror extends core.Object {
279 _(name, t, annotations) {
280 this[_name] = name;
281 this.type = new JsTypeMirror._(t);
282 this.metadata = core.List$(mirrors.InstanceMirror).from(annotations[dartx. map](dart.fn(a => new JsInstanceMirror._(a), JsInstanceMirror, [dart.dynamic]))) ;
283 }
284 get defaultValue() {
285 return dart.throw(new core.UnimplementedError("ParameterMirror.defaultValu es unimplemented"));
286 }
287 get hasDefaultValue() {
288 return dart.throw(new core.UnimplementedError("ParameterMirror.hasDefaultV alue unimplemented"));
289 }
290 get isConst() {
291 return dart.throw(new core.UnimplementedError("ParameterMirror.isConst uni mplemented"));
292 }
293 get isFinal() {
294 return dart.throw(new core.UnimplementedError("ParameterMirror.isFinal uni mplemented"));
295 }
296 get isNamed() {
297 return dart.throw(new core.UnimplementedError("ParameterMirror.isNamed uni mplemented"));
298 }
299 get isOptional() {
300 return dart.throw(new core.UnimplementedError("ParameterMirror.isOptional unimplemented"));
301 }
302 get isPrivate() {
303 return dart.throw(new core.UnimplementedError("ParameterMirror.isPrivate u nimplemented"));
304 }
305 get isStatic() {
306 return dart.throw(new core.UnimplementedError("ParameterMirror.isStatic un implemented"));
307 }
308 get isTopLevel() {
309 return dart.throw(new core.UnimplementedError("ParameterMirror.isTopLevel unimplemented"));
310 }
311 get location() {
312 return dart.throw(new core.UnimplementedError("ParameterMirror.location un implemented"));
313 }
314 get owner() {
315 return dart.throw(new core.UnimplementedError("ParameterMirror.owner unimp lemented"));
316 }
317 get qualifiedName() {
318 return dart.throw(new core.UnimplementedError("ParameterMirror.qualifiedNa me unimplemented"));
319 }
320 get simpleName() {
321 return dart.throw(new core.UnimplementedError("ParameterMirror.simpleName unimplemented"));
322 }
323 }
324 JsParameterMirror[dart.implements] = () => [mirrors.ParameterMirror];
325 dart.defineNamedConstructor(JsParameterMirror, '_');
326 dart.setSignature(JsParameterMirror, {
327 constructors: () => ({_: [JsParameterMirror, [core.String, core.Type, core.L ist]]})
328 });
329 const _method = Symbol('_method');
330 const _params = Symbol('_params');
331 const _createParameterMirrorList = Symbol('_createParameterMirrorList');
332 class JsMethodMirror extends core.Object {
333 _(cls, method) {
334 this[_method] = method;
335 this[_name] = getName(cls.simpleName);
336 this[_params] = null;
337 let ftype = _dart.classGetConstructorType(cls[_cls]);
338 this[_params] = this[_createParameterMirrorList](ftype);
339 }
340 get constructorName() {
341 return core.Symbol.new('');
342 }
343 get parameters() {
344 return this[_params];
345 }
346 [_createParameterMirrorList](ftype) {
347 if (ftype == null) {
348 return dart.list([], mirrors.ParameterMirror);
349 }
350 let args = dart.as(dart.dload(ftype, 'args'), core.List);
351 let opts = dart.as(dart.dload(ftype, 'optionals'), core.List);
352 let params = core.List$(mirrors.ParameterMirror).new(dart.notNull(args[dar tx.length]) + dart.notNull(opts[dartx.length]));
353 for (let i = 0; i < dart.notNull(args[dartx.length]); ++i) {
354 let type = args[dartx.get](i);
355 let metadata = dart.dindex(dart.dload(ftype, 'metadata'), i);
356 let param = new JsParameterMirror._('', dart.as(type, core.Type), dart.a s(metadata, core.List));
357 params[dartx.set](i, param);
358 }
359 for (let i = 0; i < dart.notNull(opts[dartx.length]); ++i) {
360 let type = opts[dartx.get](i);
361 let metadata = dart.dindex(dart.dload(ftype, 'metadata'), dart.notNull(a rgs[dartx.length]) + i);
362 let param = new JsParameterMirror._('', dart.as(type, core.Type), dart.a s(metadata, core.List));
363 params[dartx.set](i + dart.notNull(args[dartx.length]), param);
364 }
365 return params;
366 }
367 get isAbstract() {
368 return dart.throw(new core.UnimplementedError("MethodMirror.isAbstract uni mplemented"));
369 }
370 get isConstConstructor() {
371 return dart.throw(new core.UnimplementedError("MethodMirror.isConstConstru ctor unimplemented"));
372 }
373 get isConstructor() {
374 return dart.throw(new core.UnimplementedError("MethodMirror.isConstructor unimplemented"));
375 }
376 get isFactoryConstructor() {
377 return dart.throw(new core.UnimplementedError("MethodMirror.isFactoryConst ructor unimplemented"));
378 }
379 get isGenerativeConstructor() {
380 return dart.throw(new core.UnimplementedError("MethodMirror.isGenerativeCo nstructor unimplemented"));
381 }
382 get isGetter() {
383 return dart.throw(new core.UnimplementedError("MethodMirror.isGetter unimp lemented"));
384 }
385 get isOperator() {
386 return dart.throw(new core.UnimplementedError("MethodMirror.isOperator uni mplemented"));
387 }
388 get isPrivate() {
389 return dart.throw(new core.UnimplementedError("MethodMirror.isPrivate unim plemented"));
390 }
391 get isRedirectingConstructor() {
392 return dart.throw(new core.UnimplementedError("MethodMirror.isRedirectingC onstructor unimplemented"));
393 }
394 get isRegularMethod() {
395 return dart.throw(new core.UnimplementedError("MethodMirror.isRegularMetho d unimplemented"));
396 }
397 get isSetter() {
398 return dart.throw(new core.UnimplementedError("MethodMirror.isSetter unimp lemented"));
399 }
400 get isStatic() {
401 return dart.throw(new core.UnimplementedError("MethodMirror.isStatic unimp lemented"));
402 }
403 get isSynthetic() {
404 return dart.throw(new core.UnimplementedError("MethodMirror.isSynthetic un implemented"));
405 }
406 get isTopLevel() {
407 return dart.throw(new core.UnimplementedError("MethodMirror.isTopLevel uni mplemented"));
408 }
409 get location() {
410 return dart.throw(new core.UnimplementedError("MethodMirror.location unimp lemented"));
411 }
412 get metadata() {
413 return dart.list([], mirrors.InstanceMirror);
414 }
415 get owner() {
416 return dart.throw(new core.UnimplementedError("MethodMirror.owner unimplem ented"));
417 }
418 get qualifiedName() {
419 return dart.throw(new core.UnimplementedError("MethodMirror.qualifiedName unimplemented"));
420 }
421 get returnType() {
422 return dart.throw(new core.UnimplementedError("MethodMirror.returnType uni mplemented"));
423 }
424 get simpleName() {
425 return dart.throw(new core.UnimplementedError("MethodMirror.simpleName uni mplemented"));
426 }
427 get source() {
428 return dart.throw(new core.UnimplementedError("MethodMirror.source unimple mented"));
429 }
430 }
431 JsMethodMirror[dart.implements] = () => [mirrors.MethodMirror];
432 dart.defineNamedConstructor(JsMethodMirror, '_');
433 dart.setSignature(JsMethodMirror, {
434 constructors: () => ({_: [JsMethodMirror, [JsClassMirror, dart.dynamic]]}),
435 methods: () => ({[_createParameterMirrorList]: [core.List$(mirrors.Parameter Mirror), [dart.dynamic]]})
436 });
437 // Exports:
438 exports.getName = getName;
439 exports.getSymbol = getSymbol;
440 exports.reflect = reflect;
441 exports.reflectType = reflectType;
442 exports.JsInstanceMirror = JsInstanceMirror;
443 exports.JsClassMirror = JsClassMirror;
444 exports.JsTypeMirror = JsTypeMirror;
445 exports.JsParameterMirror = JsParameterMirror;
446 exports.JsMethodMirror = JsMethodMirror;
447 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698