[JS IR BE] Support cast to native interface

This commit is contained in:
Svyatoslav Kuzmich
2019-02-12 21:29:47 +03:00
parent 4a3476a87c
commit 74c8f54fc8
3 changed files with 7 additions and 3 deletions
@@ -218,7 +218,13 @@ class TypeOperatorLowering(val context: JsIrBackendContext) : FileLoweringPass {
toType.isArray() -> generateGenericArrayCheck(argument)
toType.isPrimitiveArray() -> generatePrimitiveArrayTypeCheck(argument, toType)
toType.isTypeParameter() -> generateTypeCheckWithTypeParameter(argument, toType)
toType.isInterface() -> generateInterfaceCheck(argument, toType)
toType.isInterface() -> {
if ((toType.classifierOrFail.owner as IrClass).isEffectivelyExternal()) {
generateIsObjectCheck(argument)
} else {
generateInterfaceCheck(argument, toType)
}
}
else -> generateNativeInstanceOf(argument, toType)
}
}