| 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 21ad7a734a533771dfe684d5d057b20325905923..3a457f0743c67f68e023a3f5e97730529bd326bf 100644
|
| --- a/pkg/dev_compiler/lib/js/es6/dart_sdk.js
|
| +++ b/pkg/dev_compiler/lib/js/es6/dart_sdk.js
|
| @@ -1712,10 +1712,7 @@ dart.isFunctionSubtype = function(ft1, ft2, isCovariant) {
|
| return null;
|
| }
|
| }
|
| - if (ret2 === dart.void) return true;
|
| - if (ret1 === dart.void) {
|
| - return ret2 === dart.dynamic || ret2 === async.FutureOr;
|
| - }
|
| + if (ret1 === dart.void) return dart._isTop(ret2);
|
| if (!dart._isSubtype(ret1, ret2, isCovariant)) return null;
|
| return true;
|
| };
|
| @@ -1736,13 +1733,13 @@ dart._subtypeMemo = function(f) {
|
| };
|
| };
|
| dart._isBottom = function(type) {
|
| - return type == dart.bottom;
|
| + return type == dart.bottom || type == core.Null;
|
| };
|
| dart._isTop = function(type) {
|
| if (dart.getGenericClass(type) === dart.getGenericClass(async.FutureOr)) {
|
| return dart._isTop(dart.getGenericArgs(type)[0]);
|
| }
|
| - return type == core.Object || type == dart.dynamic;
|
| + return type == core.Object || type == dart.dynamic || type == dart.void;
|
| };
|
| dart._isSubtype = function(t1, t2, isCovariant) {
|
| if (t1 === t2) return true;
|
| @@ -2221,6 +2218,9 @@ dart.instanceOfOrNull = function(obj, type) {
|
| return false;
|
| };
|
| dart.is = function(obj, type) {
|
| + if (obj == null) {
|
| + return type == core.Null || dart._isTop(type);
|
| + }
|
| let result = dart.strongInstanceOf(obj, type);
|
| if (result !== null) return result;
|
| let actual = dart.getReifiedType(obj);
|
|
|