diff --git a/src/builtins.ts b/src/builtins.ts index cf785bb6..b26fc6c3 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -2936,9 +2936,10 @@ export function compileCall( return module.createUnreachable(); } let flow = compiler.currentFlow; + let alreadyUnchecked = flow.is(FlowFlags.UNCHECKED_CONTEXT); flow.set(FlowFlags.UNCHECKED_CONTEXT); ret = compiler.compileExpressionRetainType(operands[0], contextualType, WrapMode.NONE); - flow.unset(FlowFlags.UNCHECKED_CONTEXT); + if (!alreadyUnchecked) flow.unset(FlowFlags.UNCHECKED_CONTEXT); return ret; } case BuiltinSymbols.call_indirect: { // call_indirect(target: Function | u32, ...args: *[]) -> T