| Index: sdk/lib/_internal/compiler/implementation/universe/universe.dart
 | 
| diff --git a/sdk/lib/_internal/compiler/implementation/universe/universe.dart b/sdk/lib/_internal/compiler/implementation/universe/universe.dart
 | 
| index e2a679d107f5ba505d60fd3815799e9971161182..53902f44041535f5e01aeac14bfb9ad5465a2a05 100644
 | 
| --- a/sdk/lib/_internal/compiler/implementation/universe/universe.dart
 | 
| +++ b/sdk/lib/_internal/compiler/implementation/universe/universe.dart
 | 
| @@ -459,7 +459,7 @@ class TypedSelector extends Selector {
 | 
|                selector.argumentCount,
 | 
|                selector.namedArguments) {
 | 
|      // Invariant: Typed selector can not be based on a malformed type.
 | 
| -    assert(!identical(mask.base.kind, TypeKind.MALFORMED_TYPE));
 | 
| +    assert(mask.isEmpty || !identical(mask.base.kind, TypeKind.MALFORMED_TYPE));
 | 
|      assert(asUntyped.mask == null);
 | 
|    }
 | 
|  
 | 
| @@ -504,6 +504,12 @@ class TypedSelector extends Selector {
 | 
|        return appliesUntyped(element, compiler);
 | 
|      }
 | 
|  
 | 
| +    if (mask.isEmpty) {
 | 
| +      if (!mask.isNullable) return false;
 | 
| +      return hasElementIn(compiler.backend.jsNullClass, element)
 | 
| +          && appliesUntyped(element, compiler);
 | 
| +    }
 | 
| +
 | 
|      // TODO(kasperl): Can't we just avoid creating typed selectors
 | 
|      // based of function types?
 | 
|      Element self = mask.base.element;
 | 
| 
 |