[JS IR BE] Support typeOf

This commit is contained in:
Svyatoslav Kuzmich
2019-09-30 12:37:45 +03:00
parent 3df8393ede
commit e32ec2a789
13 changed files with 157 additions and 27 deletions
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid
import org.jetbrains.kotlin.util.OperatorNameConventions
class FunctionInlining(val context: CommonBackendContext, val dontInlineTypeOf: Boolean = true) : IrElementTransformerVoidWithContext() {
class FunctionInlining(val context: CommonBackendContext) : IrElementTransformerVoidWithContext() {
fun inline(irModule: IrModuleFragment) = irModule.accept(this, data = null)
@@ -47,8 +47,7 @@ class FunctionInlining(val context: CommonBackendContext, val dontInlineTypeOf:
return expression
if (Symbols.isLateinitIsInitializedPropertyGetter(callee.symbol))
return expression
// TODO: Temporary hack till typeOf is unimplemented in K/JS
if (dontInlineTypeOf && Symbols.isTypeOfIntrinsic(callee.symbol))
if (Symbols.isTypeOfIntrinsic(callee.symbol))
return expression
val actualCallee = getFunctionDeclaration(callee.symbol)