| Index: pkg/dev_compiler/lib/js/amd/dart_sdk.js
|
| diff --git a/pkg/dev_compiler/lib/js/amd/dart_sdk.js b/pkg/dev_compiler/lib/js/amd/dart_sdk.js
|
| index f842036a293f1e02e240c50fec8bce743203889f..26400c4b216823337200a1198557a5beb2cfc839 100644
|
| --- a/pkg/dev_compiler/lib/js/amd/dart_sdk.js
|
| +++ b/pkg/dev_compiler/lib/js/amd/dart_sdk.js
|
| @@ -618,6 +618,7 @@ define([], function() {
|
| let dynamicToMap = () => (dynamicToMap = dart.constFn(dart.definiteFunctionType(core.Map, [dart.dynamic])))();
|
| let TypeAndInvocationTodynamic = () => (TypeAndInvocationTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.Invocation])))();
|
| let SymbolAnddynamicTovoid = () => (SymbolAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Symbol, dart.dynamic])))();
|
| + let MapOfSymbol$dynamicTodynamic = () => (MapOfSymbol$dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [MapOfSymbol$dynamic()])))();
|
| let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
|
| let dynamicToTypeMirror = () => (dynamicToTypeMirror = dart.constFn(dart.definiteFunctionType(mirrors.TypeMirror, [dart.dynamic])))();
|
| let dynamicAnddynamicAnddynamicTovoid = () => (dynamicAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])))();
|
| @@ -13089,58 +13090,66 @@ define([], function() {
|
| return _Lazy;
|
| });
|
| _js_mirrors._Lazy = _Lazy();
|
| + _js_mirrors._getNameForESSymbol = function(member) {
|
| + let str = dart.toString(member);
|
| + dart.assert(dart.test(str[dartx.startsWith]('Symbol(')) && dart.test(str[dartx.endsWith](')')));
|
| + return str[dartx.substring](7, dart.notNull(str[dartx.length]) - 1);
|
| + };
|
| + dart.lazyFn(_js_mirrors._getNameForESSymbol, () => dynamicToString());
|
| + _js_mirrors._toDartMap = function(data) {
|
| + if (data == null) return dart.map();
|
| + let map = _js_mirrors._dart.map(data);
|
| + let privateMembers = Object.getOwnPropertySymbols(data);
|
| + for (let member of core.Iterable._check(privateMembers)) {
|
| + let name = _js_mirrors._getNameForESSymbol(member);
|
| + map[dartx.set](name, data[member]);
|
| + }
|
| + return map;
|
| + };
|
| + dart.lazyFn(_js_mirrors._toDartMap, () => dynamicToMap());
|
| _js_mirrors._getConstructors = function(obj) {
|
| let sig = _js_mirrors._dart.getConstructorSig(obj);
|
| - if (sig == null) return dart.map();
|
| - return _js_mirrors._dart.map(sig);
|
| + return _js_mirrors._toDartMap(sig);
|
| };
|
| dart.lazyFn(_js_mirrors._getConstructors, () => dynamicToMap());
|
| _js_mirrors._getFields = function(obj) {
|
| let sig = _js_mirrors._dart.getFieldSig(obj);
|
| - if (sig == null) return dart.map();
|
| - return _js_mirrors._dart.map(sig);
|
| + return _js_mirrors._toDartMap(sig);
|
| };
|
| dart.lazyFn(_js_mirrors._getFields, () => dynamicToMap());
|
| _js_mirrors._getMethods = function(obj) {
|
| let sig = _js_mirrors._dart.getMethodSig(obj);
|
| - if (sig == null) return dart.map();
|
| - return _js_mirrors._dart.map(sig);
|
| + return _js_mirrors._toDartMap(sig);
|
| };
|
| dart.lazyFn(_js_mirrors._getMethods, () => dynamicToMap());
|
| _js_mirrors._getGetters = function(obj) {
|
| let sig = _js_mirrors._dart.getGetterSig(obj);
|
| - if (sig == null) return dart.map();
|
| - return _js_mirrors._dart.map(sig);
|
| + return _js_mirrors._toDartMap(sig);
|
| };
|
| dart.lazyFn(_js_mirrors._getGetters, () => dynamicToMap());
|
| _js_mirrors._getSetters = function(obj) {
|
| let sig = _js_mirrors._dart.getSetterSig(obj);
|
| - if (sig == null) return dart.map();
|
| - return _js_mirrors._dart.map(sig);
|
| + return _js_mirrors._toDartMap(sig);
|
| };
|
| dart.lazyFn(_js_mirrors._getSetters, () => dynamicToMap());
|
| _js_mirrors._getStaticFields = function(obj) {
|
| let sig = _js_mirrors._dart.getStaticFieldSig(obj);
|
| - if (sig == null) return dart.map();
|
| - return _js_mirrors._dart.map(sig);
|
| + return _js_mirrors._toDartMap(sig);
|
| };
|
| dart.lazyFn(_js_mirrors._getStaticFields, () => dynamicToMap());
|
| _js_mirrors._getStatics = function(obj) {
|
| let sig = _js_mirrors._dart.getStaticSig(obj);
|
| - if (sig == null) return dart.map();
|
| - return _js_mirrors._dart.map(sig);
|
| + return _js_mirrors._toDartMap(sig);
|
| };
|
| dart.lazyFn(_js_mirrors._getStatics, () => dynamicToMap());
|
| _js_mirrors._getStaticGetters = function(obj) {
|
| let sig = _js_mirrors._dart.getStaticGetterSig(obj);
|
| - if (sig == null) return dart.map();
|
| - return _js_mirrors._dart.map(sig);
|
| + return _js_mirrors._toDartMap(sig);
|
| };
|
| dart.lazyFn(_js_mirrors._getStaticGetters, () => dynamicToMap());
|
| _js_mirrors._getStaticSetters = function(obj) {
|
| let sig = _js_mirrors._dart.getStaticSetterSig(obj);
|
| - if (sig == null) return dart.map();
|
| - return _js_mirrors._dart.map(sig);
|
| + return _js_mirrors._toDartMap(sig);
|
| };
|
| dart.lazyFn(_js_mirrors._getStaticSetters, () => dynamicToMap());
|
| _js_mirrors._unwrap = function(obj) {
|
| @@ -13152,9 +13161,17 @@ define([], function() {
|
| };
|
| dart.fn(_js_mirrors._wrap, dynamicTodynamic$());
|
| _js_mirrors._unimplemented = function(t, i) {
|
| - dart.throw(new core.UnimplementedError(dart.str`${t}.${i.memberName} unimplemented`));
|
| + dart.throw(new core.UnimplementedError(dart.str`${t}.${_js_mirrors.getName(i.memberName)} unimplemented`));
|
| };
|
| dart.fn(_js_mirrors._unimplemented, TypeAndInvocationTodynamic());
|
| + _js_mirrors._toJsMap = function(map) {
|
| + let obj = {};
|
| + map[dartx.forEach](dart.fn((key, value) => {
|
| + obj[_js_mirrors.getName(key)] = value;
|
| + }, SymbolAnddynamicTovoid()));
|
| + return obj;
|
| + };
|
| + dart.lazyFn(_js_mirrors._toJsMap, () => MapOfSymbol$dynamicTodynamic());
|
| _js_mirrors.JsMirror = class JsMirror extends core.Object {
|
| noSuchMethod(i) {
|
| _js_mirrors._unimplemented(this.runtimeType, i);
|
| @@ -13248,7 +13265,7 @@ define([], function() {
|
| }
|
| };
|
| _js_mirrors.JsObjectMirror[dart.implements] = () => [mirrors.ObjectMirror];
|
| - const _toJsMap = Symbol('_toJsMap');
|
| + const _getAccessor = Symbol('_getAccessor');
|
| _js_mirrors.JsInstanceMirror = class JsInstanceMirror extends _js_mirrors.JsObjectMirror {
|
| get hasReflectee() {
|
| return true;
|
| @@ -13266,32 +13283,41 @@ define([], function() {
|
| get hashCode() {
|
| return (dart.notNull(core.identityHashCode(this.reflectee)) ^ 909522486) >>> 0;
|
| }
|
| - getField(symbol) {
|
| + [_getAccessor](reflectee, symbol, args, namedArgs) {
|
| + if (args === void 0) args = null;
|
| + if (namedArgs === void 0) namedArgs = null;
|
| let name = _js_mirrors.getName(symbol);
|
| - let field = _js_mirrors._dload(this.reflectee, name);
|
| + if (!dart.test(name[dartx.startsWith]('_'))) return name;
|
| + let privateMembers = Object.getOwnPropertySymbols(reflectee);
|
| + dart.dsend(privateMembers, 'addAll', Object.getOwnPropertySymbols(reflectee.__proto__));
|
| + for (let member of core.Iterable._check(privateMembers)) {
|
| + let privateName = _js_mirrors._getNameForESSymbol(member);
|
| + if (name == privateName) return member;
|
| + }
|
| + return new core.NoSuchMethodError(reflectee, symbol, args, namedArgs);
|
| + }
|
| + getField(symbol) {
|
| + let name = this[_getAccessor](this.reflectee, symbol);
|
| + let field = _js_mirrors._dload(this.reflectee, core.String._check(name));
|
| return _js_mirrors.reflect(field);
|
| }
|
| setField(symbol, value) {
|
| - let name = _js_mirrors.getName(symbol);
|
| - _js_mirrors._dput(this.reflectee, name, value);
|
| + let name = this[_getAccessor](this.reflectee, symbol);
|
| + _js_mirrors._dput(this.reflectee, core.String._check(name), value);
|
| return _js_mirrors.reflect(value);
|
| }
|
| invoke(symbol, args, namedArgs) {
|
| if (namedArgs === void 0) namedArgs = null;
|
| - let name = _js_mirrors.getName(symbol);
|
| + let name = this[_getAccessor](this.reflectee, symbol, args, namedArgs);
|
| if (namedArgs != null) {
|
| args = core.List.from(args);
|
| - args[dartx.add](this[_toJsMap](namedArgs));
|
| + args[dartx.add](_js_mirrors._toJsMap(namedArgs));
|
| }
|
| - let result = _js_mirrors._dsend(this.reflectee, name, args);
|
| + let result = _js_mirrors._dsend(this.reflectee, core.String._check(name), args);
|
| return _js_mirrors.reflect(result);
|
| }
|
| - [_toJsMap](map) {
|
| - let obj = {};
|
| - map[dartx.forEach](dart.fn((key, value) => {
|
| - obj[_js_mirrors.getName(key)] = value;
|
| - }, SymbolAnddynamicTovoid()));
|
| - return obj;
|
| + toString() {
|
| + return dart.str`InstanceMirror on '${this.reflectee}'`;
|
| }
|
| delegate(...args) {
|
| return this.noSuchMethod(new dart.InvocationImpl('delegate', args, {isMethod: true}));
|
| @@ -13308,10 +13334,10 @@ define([], function() {
|
| }),
|
| methods: () => ({
|
| '==': dart.definiteFunctionType(core.bool, [core.Object]),
|
| + [_getAccessor]: dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.Symbol], [core.List, MapOfSymbol$dynamic()]),
|
| getField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol]),
|
| setField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.Object]),
|
| - invoke: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()]),
|
| - [_toJsMap]: dart.definiteFunctionType(dart.dynamic, [MapOfSymbol$dynamic()])
|
| + invoke: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()])
|
| })
|
| });
|
| _js_mirrors.JsClosureMirror = class JsClosureMirror extends _js_mirrors.JsInstanceMirror {
|
| @@ -13322,7 +13348,7 @@ define([], function() {
|
| if (namedArgs === void 0) namedArgs = null;
|
| if (namedArgs != null) {
|
| args = core.List.from(args);
|
| - args[dartx.add](this[_toJsMap](namedArgs));
|
| + args[dartx.add](_js_mirrors._toJsMap(namedArgs));
|
| }
|
| let result = _js_mirrors._dcall(this.reflectee, args);
|
| return _js_mirrors.reflect(result);
|
| @@ -13447,6 +13473,25 @@ define([], function() {
|
| let instance = name == 'new' || name == '' ? new (_js_mirrors._unwrap(this[_cls]))(...args) : new (_js_mirrors._unwrap(this[_cls]))[name](...args);
|
| return _js_mirrors.reflect(instance);
|
| }
|
| + getField(symbol) {
|
| + let name = _js_mirrors.getName(symbol);
|
| + return _js_mirrors.reflect(_js_mirrors._unwrap(this[_cls])[name]);
|
| + }
|
| + setField(symbol, value) {
|
| + let name = _js_mirrors.getName(symbol);
|
| + _js_mirrors._unwrap(this[_cls])[name] = value;
|
| + return _js_mirrors.reflect(value);
|
| + }
|
| + invoke(symbol, args, namedArgs) {
|
| + if (namedArgs === void 0) namedArgs = null;
|
| + let name = _js_mirrors.getName(symbol);
|
| + if (namedArgs != null) {
|
| + args = core.List.from(args);
|
| + args[dartx.add](_js_mirrors._toJsMap(namedArgs));
|
| + }
|
| + let result = _js_mirrors._unwrap(this[_cls])[name](...args);
|
| + return _js_mirrors.reflect(result);
|
| + }
|
| get superinterfaces() {
|
| let interfaceThunk = _js_mirrors._unwrap(this[_cls])[dart.implements];
|
| if (interfaceThunk == null) {
|
| @@ -13481,6 +13526,9 @@ define([], function() {
|
| return mirrors.ClassMirror._check(_js_mirrors.reflectType(core.Type._check(_js_mirrors._wrap(_js_mirrors._unwrap(this[_cls]).__proto__))));
|
| }
|
| }
|
| + toString() {
|
| + return dart.str`ClassMirror on '${this[_cls]}'`;
|
| + }
|
| get qualifiedName() {
|
| return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
|
| }
|
| @@ -13505,15 +13553,6 @@ define([], function() {
|
| get typeVariables() {
|
| return ListOfTypeVariableMirror()._check(this.noSuchMethod(new dart.InvocationImpl('typeVariables', [], {isGetter: true})));
|
| }
|
| - invoke(...args) {
|
| - return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('invoke', args, {isMethod: true})));
|
| - }
|
| - getField(...args) {
|
| - return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('getField', args, {isMethod: true})));
|
| - }
|
| - setField(...args) {
|
| - return mirrors.InstanceMirror._check(this.noSuchMethod(new dart.InvocationImpl('setField', args, {isMethod: true})));
|
| - }
|
| isSubclassOf(...args) {
|
| return core.bool._check(this.noSuchMethod(new dart.InvocationImpl('isSubclassOf', args, {isMethod: true})));
|
| }
|
| @@ -13551,7 +13590,12 @@ define([], function() {
|
| originalDeclaration: dart.definiteFunctionType(mirrors.TypeMirror, []),
|
| superclass: dart.definiteFunctionType(mirrors.ClassMirror, [])
|
| }),
|
| - methods: () => ({newInstance: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()])})
|
| + methods: () => ({
|
| + newInstance: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()]),
|
| + getField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol]),
|
| + setField: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.Object]),
|
| + invoke: dart.definiteFunctionType(mirrors.InstanceMirror, [core.Symbol, core.List], [MapOfSymbol$dynamic()])
|
| + })
|
| });
|
| const _name$ = Symbol('_name');
|
| _js_mirrors.JsVariableMirror = class JsVariableMirror extends _js_mirrors.JsMirror {
|
| @@ -13565,6 +13609,9 @@ define([], function() {
|
| this.isStatic = false;
|
| this.isFinal = false;
|
| }
|
| + toString() {
|
| + return dart.str`VariableMirror on '${this[_name$]}'`;
|
| + }
|
| get qualifiedName() {
|
| return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
|
| }
|
| @@ -13601,6 +13648,9 @@ define([], function() {
|
| _(name, t, annotations) {
|
| super._(name, t, annotations);
|
| }
|
| + toString() {
|
| + return dart.str`ParameterMirror on '${this[_name$]}'`;
|
| + }
|
| get qualifiedName() {
|
| return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
|
| }
|
| @@ -13717,6 +13767,9 @@ define([], function() {
|
| }
|
| this[_params] = ListOfParameterMirror().unmodifiable(params);
|
| }
|
| + toString() {
|
| + return dart.str`MethodMirror on '${this[_name$]}'`;
|
| + }
|
| get qualifiedName() {
|
| return core.Symbol._check(this.noSuchMethod(new dart.InvocationImpl('qualifiedName', [], {isGetter: true})));
|
| }
|
|
|