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

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

Issue 1195523002: Handle dynamic as bottom inside of function type reps (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 6 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 _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 unimp lemented")); 15 return dart.throw_(new core.UnimplementedError("MirrorSystem.getSymbol unimp lemented"));
16 } 16 }
17 dart.fn(getSymbol, core.Symbol, [core.Object, core.Object]); 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.currentJsMirr orSystem unimplemented")); 20 return dart.throw_(new core.UnimplementedError("MirrorSystem.currentJsMirr orSystem unimplemented"));
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, [core.Object]); 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 dart.defineLazyProperties(exports, {
32 get _dart() { 32 get _dart() {
33 return dart; 33 return dart;
34 }, 34 },
35 get _metadata() { 35 get _metadata() {
36 return exports._dart.metadata; 36 return exports._dart.metadata;
37 } 37 }
38 }); 38 });
39 function _dload(obj, name) { 39 function _dload(obj, name) {
40 return exports._dart.dload(obj, name); 40 return exports._dart.dload(obj, name);
41 } 41 }
42 dart.fn(_dload, core.Object, [core.Object, core.String]); 42 dart.fn(_dload, dart.dynamic, [dart.dynamic, core.String]);
43 function _dput(obj, name, val) { 43 function _dput(obj, name, val) {
44 exports._dart.dput(obj, name, val); 44 exports._dart.dput(obj, name, val);
45 } 45 }
46 dart.fn(_dput, dart.void, [core.Object, core.String, core.Object]); 46 dart.fn(_dput, dart.void, [dart.dynamic, core.String, dart.dynamic]);
47 function _dsend(obj, name, args) { 47 function _dsend(obj, name, args) {
48 return exports._dart.dsend(obj, name, ...args); 48 return exports._dart.dsend(obj, name, ...args);
49 } 49 }
50 dart.fn(_dsend, core.Object, [core.Object, core.String, core.List]); 50 dart.fn(_dsend, dart.dynamic, [dart.dynamic, core.String, core.List]);
51 let _toJsMap = Symbol('_toJsMap'); 51 let _toJsMap = Symbol('_toJsMap');
52 class JsInstanceMirror extends core.Object { 52 class JsInstanceMirror extends core.Object {
53 _(reflectee) { 53 _(reflectee) {
54 this.reflectee = reflectee; 54 this.reflectee = reflectee;
55 } 55 }
56 getField(symbol) { 56 getField(symbol) {
57 let name = getName(symbol); 57 let name = getName(symbol);
58 let field = _dload(this.reflectee, name); 58 let field = _dload(this.reflectee, name);
59 return new JsInstanceMirror._(field); 59 return new JsInstanceMirror._(field);
60 } 60 }
(...skipping 10 matching lines...) Expand all
71 args = core.List.from(args); 71 args = core.List.from(args);
72 args[dartx.add](this[_toJsMap](namedArgs)); 72 args[dartx.add](this[_toJsMap](namedArgs));
73 } 73 }
74 let result = _dsend(this.reflectee, name, args); 74 let result = _dsend(this.reflectee, name, args);
75 return new JsInstanceMirror._(result); 75 return new JsInstanceMirror._(result);
76 } 76 }
77 [_toJsMap](map) { 77 [_toJsMap](map) {
78 let obj = {}; 78 let obj = {};
79 map.forEach(dart.fn((key, value) => { 79 map.forEach(dart.fn((key, value) => {
80 obj[getName(key)] = value; 80 obj[getName(key)] = value;
81 }, core.Object, [core.Symbol, core.Object])); 81 }, dart.dynamic, [core.Symbol, dart.dynamic]));
82 return obj; 82 return obj;
83 } 83 }
84 } 84 }
85 JsInstanceMirror[dart.implements] = () => [mirrors.InstanceMirror]; 85 JsInstanceMirror[dart.implements] = () => [mirrors.InstanceMirror];
86 dart.defineNamedConstructor(JsInstanceMirror, '_'); 86 dart.defineNamedConstructor(JsInstanceMirror, '_');
87 dart.setSignature(JsInstanceMirror, { 87 dart.setSignature(JsInstanceMirror, {
88 constructors: () => ({_: [JsInstanceMirror, [core.Object]]}), 88 constructors: () => ({_: [JsInstanceMirror, [core.Object]]}),
89 methods: () => ({ 89 methods: () => ({
90 getField: [mirrors.InstanceMirror, [core.Symbol]], 90 getField: [mirrors.InstanceMirror, [core.Symbol]],
91 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]], 91 setField: [mirrors.InstanceMirror, [core.Symbol, core.Object]],
92 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core .Symbol, core.Object)]], 92 invoke: [mirrors.InstanceMirror, [core.Symbol, core.List], [core.Map$(core .Symbol, dart.dynamic)]],
93 [_toJsMap]: [core.Object, [core.Map$(core.Symbol, core.Object)]] 93 [_toJsMap]: [dart.dynamic, [core.Map$(core.Symbol, dart.dynamic)]]
94 }) 94 })
95 }); 95 });
96 let _metadata = Symbol('_metadata'); 96 let _metadata = Symbol('_metadata');
97 let _declarations = Symbol('_declarations'); 97 let _declarations = Symbol('_declarations');
98 let _cls = Symbol('_cls'); 98 let _cls = Symbol('_cls');
99 class JsClassMirror extends core.Object { 99 class JsClassMirror extends core.Object {
100 get metadata() { 100 get metadata() {
101 return this[_metadata]; 101 return this[_metadata];
102 } 102 }
103 get declarations() { 103 get declarations() {
104 return this[_declarations]; 104 return this[_declarations];
105 } 105 }
106 _(cls) { 106 _(cls) {
107 this[_cls] = cls; 107 this[_cls] = cls;
108 this.simpleName = core.Symbol.new(cls.name); 108 this.simpleName = core.Symbol.new(cls.name);
109 this[_metadata] = null; 109 this[_metadata] = null;
110 this[_declarations] = null; 110 this[_declarations] = null;
111 let fn = this[_cls][dart.metadata]; 111 let fn = this[_cls][dart.metadata];
112 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, [core.Object])), core.I terable)); 112 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));
113 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new(); 113 this[_declarations] = core.Map$(core.Symbol, mirrors.MethodMirror).new();
114 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_ cls])); 114 this[_declarations].set(this.simpleName, new JsMethodMirror._(this, this[_ cls]));
115 } 115 }
116 newInstance(constructorName, args, namedArgs) { 116 newInstance(constructorName, args, namedArgs) {
117 if (namedArgs === void 0) 117 if (namedArgs === void 0)
118 namedArgs = null; 118 namedArgs = null;
119 dart.assert(getName(constructorName) == ""); 119 dart.assert(getName(constructorName) == "");
120 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty)); 120 dart.assert(namedArgs == null || dart.notNull(namedArgs.isEmpty));
121 let instance = exports._dart.instantiate(this[_cls], args); 121 let instance = exports._dart.instantiate(this[_cls], args);
122 return new JsInstanceMirror._(instance); 122 return new JsInstanceMirror._(instance);
123 } 123 }
124 } 124 }
125 JsClassMirror[dart.implements] = () => [mirrors.ClassMirror]; 125 JsClassMirror[dart.implements] = () => [mirrors.ClassMirror];
126 dart.defineNamedConstructor(JsClassMirror, '_'); 126 dart.defineNamedConstructor(JsClassMirror, '_');
127 dart.setSignature(JsClassMirror, { 127 dart.setSignature(JsClassMirror, {
128 constructors: () => ({_: [JsClassMirror, [core.Type]]}), 128 constructors: () => ({_: [JsClassMirror, [core.Type]]}),
129 methods: () => ({newInstance: [mirrors.InstanceMirror, [core.Symbol, core.Li st], [core.Map$(core.Symbol, core.Object)]]}) 129 methods: () => ({newInstance: [mirrors.InstanceMirror, [core.Symbol, core.Li st], [core.Map$(core.Symbol, dart.dynamic)]]})
130 }); 130 });
131 class JsTypeMirror extends core.Object { 131 class JsTypeMirror extends core.Object {
132 _(reflectedType) { 132 _(reflectedType) {
133 this.reflectedType = reflectedType; 133 this.reflectedType = reflectedType;
134 } 134 }
135 } 135 }
136 JsTypeMirror[dart.implements] = () => [mirrors.TypeMirror]; 136 JsTypeMirror[dart.implements] = () => [mirrors.TypeMirror];
137 dart.defineNamedConstructor(JsTypeMirror, '_'); 137 dart.defineNamedConstructor(JsTypeMirror, '_');
138 dart.setSignature(JsTypeMirror, { 138 dart.setSignature(JsTypeMirror, {
139 constructors: () => ({_: [JsTypeMirror, [core.Type]]}) 139 constructors: () => ({_: [JsTypeMirror, [core.Type]]})
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 let type = opts[dartx.get](i); 184 let type = opts[dartx.get](i);
185 let param = new JsParameterMirror._('', dart.as(type, core.Type)); 185 let param = new JsParameterMirror._('', dart.as(type, core.Type));
186 params[dartx.set](dart.notNull(i) + dart.notNull(args[dartx.length]), pa ram); 186 params[dartx.set](dart.notNull(i) + dart.notNull(args[dartx.length]), pa ram);
187 } 187 }
188 return params; 188 return params;
189 } 189 }
190 } 190 }
191 JsMethodMirror[dart.implements] = () => [mirrors.MethodMirror]; 191 JsMethodMirror[dart.implements] = () => [mirrors.MethodMirror];
192 dart.defineNamedConstructor(JsMethodMirror, '_'); 192 dart.defineNamedConstructor(JsMethodMirror, '_');
193 dart.setSignature(JsMethodMirror, { 193 dart.setSignature(JsMethodMirror, {
194 constructors: () => ({_: [JsMethodMirror, [JsClassMirror, core.Object]]}), 194 constructors: () => ({_: [JsMethodMirror, [JsClassMirror, dart.dynamic]]}),
195 methods: () => ({[_createParameterMirrorList]: [core.List$(mirrors.Parameter Mirror), [core.Object]]}) 195 methods: () => ({[_createParameterMirrorList]: [core.List$(mirrors.Parameter Mirror), [dart.dynamic]]})
196 }); 196 });
197 // Exports: 197 // Exports:
198 exports.getName = getName; 198 exports.getName = getName;
199 exports.getSymbol = getSymbol; 199 exports.getSymbol = getSymbol;
200 exports.reflect = reflect; 200 exports.reflect = reflect;
201 exports.reflectType = reflectType; 201 exports.reflectType = reflectType;
202 exports.JsInstanceMirror = JsInstanceMirror; 202 exports.JsInstanceMirror = JsInstanceMirror;
203 exports.JsClassMirror = JsClassMirror; 203 exports.JsClassMirror = JsClassMirror;
204 exports.JsTypeMirror = JsTypeMirror; 204 exports.JsTypeMirror = JsTypeMirror;
205 exports.JsParameterMirror = JsParameterMirror; 205 exports.JsParameterMirror = JsParameterMirror;
206 exports.JsMethodMirror = JsMethodMirror; 206 exports.JsMethodMirror = JsMethodMirror;
207 }); 207 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698