Chromium Code Reviews| Index: pkg/compiler/lib/src/cps_ir/type_mask_system.dart |
| diff --git a/pkg/compiler/lib/src/cps_ir/type_mask_system.dart b/pkg/compiler/lib/src/cps_ir/type_mask_system.dart |
| index a84d28d4ba5cd333e83868f839722da0da625407..3aec705a3e92ba20274418fe7ad46815f27db35b 100644 |
| --- a/pkg/compiler/lib/src/cps_ir/type_mask_system.dart |
| +++ b/pkg/compiler/lib/src/cps_ir/type_mask_system.dart |
| @@ -42,6 +42,7 @@ class TypeMaskSystem { |
| TypeMask get extendableNativeListType => backend.extendableArrayType; |
| TypeMask numStringBoolType; |
| + TypeMask interceptorType; |
| ClassElement get jsNullClass => backend.jsNullClass; |
| @@ -63,6 +64,9 @@ class TypeMaskSystem { |
| numStringBoolType = |
| new TypeMask.unionOf(<TypeMask>[anyNum, anyString, anyBool], |
| classWorld); |
| + |
| + interceptorType = new TypeMask.nonNullSubtype( |
|
Kevin Millikin (Google)
2015/10/07 14:10:49
I guess all the lines above are broken like
inter
sra1
2015/10/07 17:45:58
Done.
|
| + backend.jsInterceptorClass, classWorld); |
| } |
| bool methodUsesReceiverArgument(FunctionElement function) { |
| @@ -199,6 +203,9 @@ class TypeMaskSystem { |
| return t.satisfies(backend.jsIntClass, classWorld); |
| } |
| + // TODO(sra): Find a better name. 'NativeList' is a bad name because there |
| + // are many native classes in dart:html that implement List but are not (and |
| + // should not be) included in this predicate. |
| bool isDefinitelyNativeList(TypeMask t, {bool allowNull: false}) { |
| if (!allowNull && t.isNullable) return false; |
| return t.nonNullable().satisfies(backend.jsArrayClass, classWorld); |