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

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

Issue 1355893003: Rewire DDC to use the analyzer task model (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Fix for identifiers Created 5 years, 3 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
1 dart_library.library('dart/_js_mirrors', null, /* Imports */[ 1 dart_library.library('dart/_js_mirrors', null, /* Imports */[
2 "dart_runtime/dart", 2 "dart_runtime/dart",
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) {
11 return _internal.Symbol.getName(dart.as(symbol, _internal.Symbol)); 11 return dart.dcall(_internal.Symbol.getName, dart.as(symbol, _internal.Symbol ));
12 } 12 }
13 dart.fn(getName, core.String, [core.Symbol]); 13 dart.fn(getName, core.String, [core.Symbol]);
14 function getSymbol(name, library) { 14 function getSymbol(name, library) {
15 return dart.throw(new core.UnimplementedError("MirrorSystem.getSymbol unimpl emented")); 15 return dart.throw(new core.UnimplementedError("MirrorSystem.getSymbol unimpl emented"));
16 } 16 }
17 dart.fn(getSymbol, core.Symbol, [dart.dynamic, dart.dynamic]); 17 dart.fn(getSymbol, core.Symbol, [dart.dynamic, dart.dynamic]);
18 dart.defineLazyProperties(exports, { 18 dart.defineLazyProperties(exports, {
19 get currentJsMirrorSystem() { 19 get currentJsMirrorSystem() {
20 return dart.throw(new core.UnimplementedError("MirrorSystem.currentJsMirro rSystem unimplemented")); 20 return dart.throw(new core.UnimplementedError("MirrorSystem.currentJsMirro rSystem unimplemented"));
21 } 21 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 get type() { 56 get type() {
57 return dart.throw(new core.UnimplementedError("ClassMirror.type unimplemen ted")); 57 return dart.throw(new core.UnimplementedError("ClassMirror.type unimplemen ted"));
58 } 58 }
59 get hasReflectee() { 59 get hasReflectee() {
60 return dart.throw(new core.UnimplementedError("ClassMirror.hasReflectee un implemented")); 60 return dart.throw(new core.UnimplementedError("ClassMirror.hasReflectee un implemented"));
61 } 61 }
62 delegate(invocation) { 62 delegate(invocation) {
63 return dart.throw(new core.UnimplementedError("ClassMirror.delegate unimpl emented")); 63 return dart.throw(new core.UnimplementedError("ClassMirror.delegate unimpl emented"));
64 } 64 }
65 getField(symbol) { 65 getField(symbol) {
66 let name = getName(symbol); 66 let name = dart.dcall(getName, symbol);
67 let field = _dload(this.reflectee, name); 67 let field = dart.dcall(_dload, this.reflectee, name);
68 return new JsInstanceMirror._(field); 68 return new JsInstanceMirror._(field);
69 } 69 }
70 setField(symbol, value) { 70 setField(symbol, value) {
71 let name = getName(symbol); 71 let name = dart.dcall(getName, symbol);
72 _dput(this.reflectee, name, value); 72 dart.dcall(_dput, this.reflectee, name, value);
73 return new JsInstanceMirror._(value); 73 return new JsInstanceMirror._(value);
74 } 74 }
75 invoke(symbol, args, namedArgs) { 75 invoke(symbol, args, namedArgs) {
76 if (namedArgs === void 0) 76 if (namedArgs === void 0)
77 namedArgs = null; 77 namedArgs = null;
78 let name = getName(symbol); 78 let name = dart.dcall(getName, symbol);
79 if (namedArgs != null) { 79 if (namedArgs != null) {
80 args = core.List.from(args); 80 args = core.List.from(args);
81 args[dartx.add](this[_toJsMap](namedArgs)); 81 dart.dcall(args[dartx.add], dart.dcall(this[_toJsMap], namedArgs));
82 } 82 }
83 let result = _dsend(this.reflectee, name, args); 83 let result = dart.dcall(_dsend, this.reflectee, name, args);
84 return new JsInstanceMirror._(result); 84 return new JsInstanceMirror._(result);
85 } 85 }
86 [_toJsMap](map) { 86 [_toJsMap](map) {
87 let obj = {}; 87 let obj = {};
88 map.forEach(dart.fn((key, value) => { 88 dart.dcall(map.forEach, dart.fn((key, value) => {
89 obj[getName(key)] = value; 89 obj[dart.dcall(getName, key)] = value;
90 }, dart.dynamic, [core.Symbol, dart.dynamic])); 90 }, dart.dynamic, [core.Symbol, dart.dynamic]));
91 return obj; 91 return obj;
92 } 92 }
93 } 93 }
94 JsInstanceMirror[dart.implements] = () => [mirrors.InstanceMirror]; 94 JsInstanceMirror[dart.implements] = () => [mirrors.InstanceMirror];
95 dart.defineNamedConstructor(JsInstanceMirror, '_'); 95 dart.defineNamedConstructor(JsInstanceMirror, '_');
96 dart.setSignature(JsInstanceMirror, { 96 dart.setSignature(JsInstanceMirror, {
97 constructors: () => ({_: [JsInstanceMirror, [core.Object]]}), 97 constructors: () => ({_: [JsInstanceMirror, [core.Object]]}),
98 methods: () => ({ 98 methods: () => ({
99 delegate: [dart.dynamic, [core.Invocation]], 99 delegate: [dart.dynamic, [core.Invocation]],
100 getField: [mirrors.InstanceMirror, [core.Symbol]], 100 getField: [mirrors.InstanceMirror, [core.Symbol]],
101 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]], 101 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]],
102 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core .Symbol, dart.dynamic)]], 102 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core .Symbol, dart.dynamic)]],
103 [_toJsMap]: [dart.dynamic, [core.Map$(core.Symbol, dart.dynamic)]] 103 [_toJsMap]: [dart.dynamic, [core.Map$(core.Symbol, dart.dynamic)]]
104 }) 104 })
105 }); 105 });
106 let _metadata = Symbol('_metadata'); 106 let _metadata = Symbol('_metadata');
107 let _declarations = Symbol('_declarations'); 107 let _declarations = Symbol('_declarations');
108 let _cls = Symbol('_cls'); 108 let _cls = Symbol('_cls');
109 class JsClassMirror extends core.Object { 109 class JsClassMirror extends core.Object {
110 get metadata() { 110 get metadata() {
111 return this[_metadata]; 111 return this[_metadata];
112 } 112 }
113 get declarations() { 113 get declarations() {
114 return this[_declarations]; 114 return this[_declarations];
115 } 115 }
116 _(cls) { 116 _(cls) {
117 this[_cls] = cls; 117 this[_cls] = cls;
118 this.simpleName = core.Symbol.new(cls.name); 118 this.simpleName = core.Symbol.new(dart.as(cls.name, core.String));
119 this[_metadata] = null; 119 this[_metadata] = null;
120 this[_declarations] = null; 120 this[_declarations] = null;
121 let fn = this[_cls][dart.metadata]; 121 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)); 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));
123 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new(); 123 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new();
124 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_ cls])); 124 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_ cls]));
125 } 125 }
126 newInstance(constructorName, args, namedArgs) { 126 newInstance(constructorName, args, namedArgs) {
127 if (namedArgs === void 0) 127 if (namedArgs === void 0)
128 namedArgs = null; 128 namedArgs = null;
129 dart.assert(getName(constructorName) == ""); 129 dart.assert(dart.dcall(getName, constructorName) == "");
130 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty)); 130 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty));
131 let instance = new this[_cls](...args); 131 let instance = new this[_cls](...args);
132 return new JsInstanceMirror._(instance); 132 return new JsInstanceMirror._(instance);
133 } 133 }
134 get superinterfaces() { 134 get superinterfaces() {
135 let interfaces = this[_cls][dart.implements]; 135 let interfaces = this[_cls][dart.implements];
136 if (interfaces == null) { 136 if (interfaces == null) {
137 return dart.list([], mirrors.ClassMirror); 137 return dart.list([], mirrors.ClassMirror);
138 } 138 }
139 dart.throw(new core.UnimplementedError("ClassMirror.superinterfaces unimpl emented")); 139 dart.throw(new core.UnimplementedError("ClassMirror.superinterfaces unimpl emented"));
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 methods: () => ({ 276 methods: () => ({
277 isAssignableTo: [core.bool, [mirrors.TypeMirror]], 277 isAssignableTo: [core.bool, [mirrors.TypeMirror]],
278 isSubtypeOf: [core.bool, [mirrors.TypeMirror]] 278 isSubtypeOf: [core.bool, [mirrors.TypeMirror]]
279 }) 279 })
280 }); 280 });
281 let _name = Symbol('_name'); 281 let _name = Symbol('_name');
282 class JsParameterMirror extends core.Object { 282 class JsParameterMirror extends core.Object {
283 _(name, t, annotations) { 283 _(name, t, annotations) {
284 this[_name] = name; 284 this[_name] = name;
285 this.type = new JsTypeMirror._(t); 285 this.type = new JsTypeMirror._(t);
286 this.metadata = core.List$(mirrors.InstanceMirror).from(annotations[dartx. map](dart.fn(a => new JsInstanceMirror._(a), JsInstanceMirror, [dart.dynamic]))) ; 286 this.metadata = core.List$(mirrors.InstanceMirror).from(dart.dcall(annotat ions[dartx.map], dart.fn(a => new JsInstanceMirror._(a), JsInstanceMirror, [dart .dynamic])));
287 } 287 }
288 get defaultValue() { 288 get defaultValue() {
289 return dart.throw(new core.UnimplementedError("ParameterMirror.defaultValu es unimplemented")); 289 return dart.throw(new core.UnimplementedError("ParameterMirror.defaultValu es unimplemented"));
290 } 290 }
291 get hasDefaultValue() { 291 get hasDefaultValue() {
292 return dart.throw(new core.UnimplementedError("ParameterMirror.hasDefaultV alue unimplemented")); 292 return dart.throw(new core.UnimplementedError("ParameterMirror.hasDefaultV alue unimplemented"));
293 } 293 }
294 get isConst() { 294 get isConst() {
295 return dart.throw(new core.UnimplementedError("ParameterMirror.isConst uni mplemented")); 295 return dart.throw(new core.UnimplementedError("ParameterMirror.isConst uni mplemented"));
296 } 296 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 dart.defineNamedConstructor(JsParameterMirror, '_'); 329 dart.defineNamedConstructor(JsParameterMirror, '_');
330 dart.setSignature(JsParameterMirror, { 330 dart.setSignature(JsParameterMirror, {
331 constructors: () => ({_: [JsParameterMirror, [core.String, core.Type, core.L ist]]}) 331 constructors: () => ({_: [JsParameterMirror, [core.String, core.Type, core.L ist]]})
332 }); 332 });
333 let _method = Symbol('_method'); 333 let _method = Symbol('_method');
334 let _params = Symbol('_params'); 334 let _params = Symbol('_params');
335 let _createParameterMirrorList = Symbol('_createParameterMirrorList'); 335 let _createParameterMirrorList = Symbol('_createParameterMirrorList');
336 class JsMethodMirror extends core.Object { 336 class JsMethodMirror extends core.Object {
337 _(cls, method) { 337 _(cls, method) {
338 this[_method] = method; 338 this[_method] = method;
339 this[_name] = getName(cls.simpleName); 339 this[_name] = dart.dcall(getName, cls.simpleName);
340 this[_params] = null; 340 this[_params] = null;
341 let ftype = exports._dart.classGetConstructorType(cls[_cls]); 341 let ftype = exports._dart.classGetConstructorType(cls[_cls]);
342 this[_params] = this[_createParameterMirrorList](ftype); 342 this[_params] = dart.dcall(this[_createParameterMirrorList], ftype);
343 } 343 }
344 get constructorName() { 344 get constructorName() {
345 return core.Symbol.new(''); 345 return core.Symbol.new('');
346 } 346 }
347 get parameters() { 347 get parameters() {
348 return this[_params]; 348 return this[_params];
349 } 349 }
350 [_createParameterMirrorList](ftype) { 350 [_createParameterMirrorList](ftype) {
351 if (ftype == null) { 351 if (ftype == null) {
352 return dart.list([], mirrors.ParameterMirror); 352 return dart.list([], mirrors.ParameterMirror);
353 } 353 }
354 let args = dart.as(dart.dload(ftype, 'args'), core.List); 354 let args = dart.as(dart.dload(ftype, 'args'), core.List);
355 let opts = dart.as(dart.dload(ftype, 'optionals'), core.List); 355 let opts = dart.as(dart.dload(ftype, 'optionals'), core.List);
356 let params = core.List$(mirrors.ParameterMirror).new(dart.notNull(args[dar tx.length]) + dart.notNull(opts[dartx.length])); 356 let params = core.List$(mirrors.ParameterMirror).new(dart.notNull(args[dar tx.length]) + dart.notNull(opts[dartx.length]));
357 for (let i = 0; dart.notNull(i) < dart.notNull(args[dartx.length]); i = da rt.notNull(i) + 1) { 357 for (let i = 0; dart.notNull(dart.as(dart.dsend(i, '<', args[dartx.length] ), core.bool)); i = dart.dsend(i, '+', 1)) {
358 let type = args[dartx.get](i); 358 let type = args[dartx.get](dart.as(i, core.int));
359 let metadata = dart.dindex(dart.dload(ftype, 'metadata'), i); 359 let metadata = dart.dindex(dart.dload(ftype, 'metadata'), i);
360 let param = new JsParameterMirror._('', dart.as(type, core.Type), dart.a s(metadata, core.List)); 360 let param = new JsParameterMirror._('', dart.as(type, core.Type), dart.a s(metadata, core.List));
361 params[dartx.set](i, param); 361 dart.dsetindex(params, i, param);
362 } 362 }
363 for (let i = 0; dart.notNull(i) < dart.notNull(opts[dartx.length]); i = da rt.notNull(i) + 1) { 363 for (let i = 0; dart.notNull(dart.as(dart.dsend(i, '<', opts[dartx.length] ), core.bool)); i = dart.dsend(i, '+', 1)) {
364 let type = opts[dartx.get](i); 364 let type = opts[dartx.get](dart.as(i, core.int));
365 let metadata = dart.dindex(dart.dload(ftype, 'metadata'), dart.notNull(a rgs[dartx.length]) + dart.notNull(i)); 365 let metadata = dart.dindex(dart.dload(ftype, 'metadata'), dart.notNull(a rgs[dartx.length]) + dart.notNull(dart.as(i, core.num)));
366 let param = new JsParameterMirror._('', dart.as(type, core.Type), dart.a s(metadata, core.List)); 366 let param = new JsParameterMirror._('', dart.as(type, core.Type), dart.a s(metadata, core.List));
367 params[dartx.set](dart.notNull(i) + dart.notNull(args[dartx.length]), pa ram); 367 dart.dsetindex(params, dart.dsend(i, '+', args[dartx.length]), param);
368 } 368 }
369 return params; 369 return dart.as(params, core.List$(mirrors.ParameterMirror));
370 } 370 }
371 get isAbstract() { 371 get isAbstract() {
372 return dart.throw(new core.UnimplementedError("MethodMirror.isAbstract uni mplemented")); 372 return dart.throw(new core.UnimplementedError("MethodMirror.isAbstract uni mplemented"));
373 } 373 }
374 get isConstConstructor() { 374 get isConstConstructor() {
375 return dart.throw(new core.UnimplementedError("MethodMirror.isConstConstru ctor unimplemented")); 375 return dart.throw(new core.UnimplementedError("MethodMirror.isConstConstru ctor unimplemented"));
376 } 376 }
377 get isConstructor() { 377 get isConstructor() {
378 return dart.throw(new core.UnimplementedError("MethodMirror.isConstructor unimplemented")); 378 return dart.throw(new core.UnimplementedError("MethodMirror.isConstructor unimplemented"));
379 } 379 }
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 exports.getName = getName; 442 exports.getName = getName;
443 exports.getSymbol = getSymbol; 443 exports.getSymbol = getSymbol;
444 exports.reflect = reflect; 444 exports.reflect = reflect;
445 exports.reflectType = reflectType; 445 exports.reflectType = reflectType;
446 exports.JsInstanceMirror = JsInstanceMirror; 446 exports.JsInstanceMirror = JsInstanceMirror;
447 exports.JsClassMirror = JsClassMirror; 447 exports.JsClassMirror = JsClassMirror;
448 exports.JsTypeMirror = JsTypeMirror; 448 exports.JsTypeMirror = JsTypeMirror;
449 exports.JsParameterMirror = JsParameterMirror; 449 exports.JsParameterMirror = JsParameterMirror;
450 exports.JsMethodMirror = JsMethodMirror; 450 exports.JsMethodMirror = JsMethodMirror;
451 }); 451 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698