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

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

Issue 1487213002: Special-case top-level final JS fields. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: rebased Created 5 years 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
« no previous file with comments | « lib/runtime/dart/_isolate_helper.js ('k') | lib/runtime/dart/js.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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 });
OLDNEW
« no previous file with comments | « lib/runtime/dart/_isolate_helper.js ('k') | lib/runtime/dart/js.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698