| 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 26400c4b216823337200a1198557a5beb2cfc839..b7dc69b05995a68c69a19ec87a2cd5d96404114e 100644
|
| --- a/pkg/dev_compiler/lib/js/amd/dart_sdk.js
|
| +++ b/pkg/dev_compiler/lib/js/amd/dart_sdk.js
|
| @@ -144,6 +144,7 @@ define([], function() {
|
| let ListOfClassMirror = () => (ListOfClassMirror = dart.constFn(core.List$(mirrors.ClassMirror)))();
|
| let ListOfTypeVariableMirror = () => (ListOfTypeVariableMirror = dart.constFn(core.List$(mirrors.TypeVariableMirror)))();
|
| let MapOfSymbol$MethodMirror = () => (MapOfSymbol$MethodMirror = dart.constFn(core.Map$(core.Symbol, mirrors.MethodMirror)))();
|
| + let JSArrayOfType = () => (JSArrayOfType = dart.constFn(_interceptors.JSArray$(core.Type)))();
|
| let ListOfParameterMirror = () => (ListOfParameterMirror = dart.constFn(core.List$(mirrors.ParameterMirror)))();
|
| let ListOfFloat32x4 = () => (ListOfFloat32x4 = dart.constFn(core.List$(typed_data.Float32x4)))();
|
| let ListOfInt32x4 = () => (ListOfInt32x4 = dart.constFn(core.List$(typed_data.Int32x4)))();
|
| @@ -13376,7 +13377,8 @@ define([], function() {
|
| _js_mirrors.JsClassMirror = class JsClassMirror extends _js_mirrors.JsMirror {
|
| get metadata() {
|
| if (this[_metadata$] == null) {
|
| - let fn = _js_mirrors._unwrap(this[_cls])[dart.metadata];
|
| + let unwrapped = _js_mirrors._unwrap(this[_cls]);
|
| + let fn = Object.hasOwnProperty.call(unwrapped, dart.metadata) ? unwrapped[dart.metadata] : null;
|
| this[_metadata$] = fn == null ? const$0 || (const$0 = dart.constList([], mirrors.InstanceMirror)) : ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dcall(fn), 'map', dart.fn(i => _js_mirrors.reflect(i), dynamicToInstanceMirror()))));
|
| }
|
| return this[_metadata$];
|
| @@ -13744,12 +13746,15 @@ define([], function() {
|
| this[_metadata$] = const$3 || (const$3 = dart.constList([], mirrors.InstanceMirror));
|
| return;
|
| }
|
| - if (core.List.is(ftype)) {
|
| + if (!core.Function.is(ftype) && core.List.is(ftype)) {
|
| this[_metadata$] = ListOfInstanceMirror().unmodifiable(core.Iterable._check(dart.dsend(dart.dsend(ftype, 'skip', 1), 'map', dart.fn(a => _js_mirrors.reflect(a), dynamicToInstanceMirror()))));
|
| ftype = dart.dindex(ftype, 0);
|
| } else {
|
| this[_metadata$] = const$4 || (const$4 = dart.constList([], mirrors.InstanceMirror));
|
| }
|
| + if (typeof ftype == "function") {
|
| + ftype = ftype.apply(null, JSArrayOfType().of([dart.dynamic, dart.dynamic, dart.dynamic]));
|
| + }
|
| let args = core.List._check(dart.dload(ftype, 'args'));
|
| let opts = core.List._check(dart.dload(ftype, 'optionals'));
|
| let params = ListOfParameterMirror().new(dart.notNull(args[dartx.length]) + dart.notNull(opts[dartx.length]));
|
|
|