| Index: pkg/dev_compiler/tool/input_sdk/lib/js/dart2js/js_dart2js.dart
|
| diff --git a/pkg/dev_compiler/tool/input_sdk/lib/js/dart2js/js_dart2js.dart b/pkg/dev_compiler/tool/input_sdk/lib/js/dart2js/js_dart2js.dart
|
| index 34636a74f6367b505999dd2cb60d94479357ea54..3fc25adc692f40fcbae963abe66fc4bdfbca3dbe 100644
|
| --- a/pkg/dev_compiler/tool/input_sdk/lib/js/dart2js/js_dart2js.dart
|
| +++ b/pkg/dev_compiler/tool/input_sdk/lib/js/dart2js/js_dart2js.dart
|
| @@ -273,7 +273,7 @@ class JsObject {
|
| }
|
| if (args != null) args = new List.from(args.map(_convertToJS));
|
| var fn = JS('', '#[#]', _jsObject, method);
|
| - if (!JS('bool', '# instanceof Function', fn)) {
|
| + if (JS('bool', 'typeof(#) !== "function"', fn)) {
|
| throw new NoSuchMethodError(_jsObject, new Symbol(method), args, {});
|
| }
|
| return _convertToDart(JS('', '#.apply(#, #)', fn, _jsObject, args));
|
| @@ -435,10 +435,12 @@ bool _isBrowserType(o) => JS('bool',
|
| '# instanceof Blob || '
|
| '# instanceof Event || '
|
| '(window.KeyRange && # instanceof KeyRange) || '
|
| + '(window.IDBKeyRange && # instanceof IDBKeyRange) || '
|
| '# instanceof ImageData || '
|
| '# instanceof Node || '
|
| - '(window.TypedData && # instanceof TypedData) || '
|
| - '# instanceof Window', o, o, o, o, o, o, o);
|
| + // Int8Array.__proto__ is TypedArray.
|
| + '(window.Int8Array && # instanceof Int8Array.__proto__) || '
|
| + '# instanceof Window', o, o, o, o, o, o, o, o);
|
|
|
| class _DartObject {
|
| final _dartObj;
|
| @@ -491,11 +493,13 @@ Object _convertToDart(o) {
|
| JS('bool', 'dart.jsobject != dart.getReifiedType(#)', o)) {
|
| return o._dartObj;
|
| } else {
|
| - return _putIfAbsent(_dartProxies, o, _wrapToDart);
|
| + return _wrapToDart(o);
|
| }
|
| }
|
|
|
| -JsObject _wrapToDart(o) {
|
| +JsObject _wrapToDart(o) => _putIfAbsent(_dartProxies, o, _wrapToDartHelper);
|
| +
|
| +JsObject _wrapToDartHelper(o) {
|
| if (JS('bool', 'typeof # == "function"', o)) {
|
| return new JsFunction._fromJs(o);
|
| }
|
|
|