Don't reset nested unchecked contexts, fixes #515

This commit is contained in:
dcode 2019-02-27 17:10:20 +01:00
parent ed97672a8c
commit 2945af6557

View File

@ -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<T?>(target: Function | u32, ...args: *[]) -> T