| Index: pkg/dev_compiler/lib/js/es6/dart_sdk.js
|
| diff --git a/pkg/dev_compiler/lib/js/es6/dart_sdk.js b/pkg/dev_compiler/lib/js/es6/dart_sdk.js
|
| index 04e02ce472754f5596b2abbf49c3d24149cde457..5114d4a862bff7dbc57d6e2203feeb83e43be1e2 100644
|
| --- a/pkg/dev_compiler/lib/js/es6/dart_sdk.js
|
| +++ b/pkg/dev_compiler/lib/js/es6/dart_sdk.js
|
| @@ -142,6 +142,7 @@ let JSArrayOfClassMirror = () => (JSArrayOfClassMirror = dart.constFn(_intercept
|
| 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)))();
|
| @@ -13374,7 +13375,8 @@ let const;
|
| _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 || (const = 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];
|
| @@ -13742,12 +13744,15 @@ _js_mirrors.JsMethodMirror = class JsMethodMirror extends _js_mirrors.JsMirror {
|
| this[_metadata] = const || (const = 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 || (const = 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]));
|
|
|