| Index: sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart b/sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart
|
| index c5ccf96c8863fd632c0815648eef71cf74425733..13cc42b9cab04eb484b4db8e810383084580cb5f 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js_backend/native_emitter.dart
|
| @@ -464,19 +464,21 @@ class NativeEmitter {
|
| return false;
|
| }
|
|
|
| + if (backend.classesMixedIntoNativeClasses.contains(element)) return true;
|
| +
|
| return subtypes[element] != null;
|
| }
|
|
|
| bool requiresNativeIsCheck(Element element) {
|
| // TODO(sra): Remove this function. It determines if a native type may
|
| - // satisfy a check against [element], in whcih case an interceptor must be
|
| + // satisfy a check against [element], in which case an interceptor must be
|
| // used. We should also use an interceptor if the check can't be satisfied
|
| - // by a native class in case we get a natibe instance that tries to spoof
|
| + // by a native class in case we get a native instance that tries to spoof
|
| // the type info. i.e the criteria for whether or not to use an interceptor
|
| // is whether the receiver can be native, not the type of the test.
|
| if (!element.isClass()) return false;
|
| ClassElement cls = element;
|
| - if (cls.isNative()) return true;
|
| + if (Elements.isNativeOrExtendsNative(cls)) return true;
|
| return isSupertypeOfNativeClass(element);
|
| }
|
|
|
|
|