Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(350)

Unified Diff: pkg/dev_compiler/lib/js/legacy/dart_sdk.js

Side-by-side diff isn't available for this file because of its large size.
Issue 2671113002: fix #28642, handling of top and bottom types in DDC (Closed)
Patch Set: fix Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
« no previous file with comments | « pkg/dev_compiler/lib/js/es6/dart_sdk.js ('k') | pkg/dev_compiler/test/browser/runtime_tests.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/dev_compiler/lib/js/legacy/dart_sdk.js
diff --git a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
index cf5ca5dd0360f5148c5deb9103e1903cda459444..abca97f16f8696b97b7d1de18884ca5245dd8e02 100644
--- a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
@@ -1715,10 +1715,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
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;
};
@@ -1739,13 +1736,13 @@ dart_library.library('dart_sdk', null, /* Imports */[
};
};
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;
@@ -2224,6 +2221,9 @@ dart_library.library('dart_sdk', null, /* Imports */[
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);
« no previous file with comments | « pkg/dev_compiler/lib/js/es6/dart_sdk.js ('k') | pkg/dev_compiler/test/browser/runtime_tests.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698