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

Unified Diff: pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart

Issue 1388473003: dart2js cps_ir: Use interceptors for is-checks. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 2 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:
View side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
index ca34d15f0107b02e2801c7f76694381a6ef593f1..480086b7b10b057602f0dfb83cc506d18394755b 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart
@@ -2753,7 +2753,11 @@ class IrBuilder {
// `x is Null` is true if and only if x is null.
return _buildCheckNull(value);
}
- return addPrimitive(new ir.TypeTest(value, type, typeArguments));
+ if (type.isInterfaceType && type.isRaw) {
sra1 2015/10/06 06:47:58 I think this could me moved to type_propagation.
sra1 2015/10/07 04:01:06 Done.
+ return addPrimitive(new ir.TypeTestRaw(value, type));
+ } else {
+ return addPrimitive(new ir.TypeTest(value, type, typeArguments));
+ }
} else {
if (type.isObject || type.isDynamic) {
// `x as Object` and `x as dynamic` are the same as `x`.

Powered by Google App Engine
This is Rietveld 408576698