++emit->env->scope->depth;
emit_push_scope(emit);
const Instr gc = emit_add_instr(emit, NoOp);
- if(emit_stmt(emit, stmt, pop) > 0) {
+ const m_bool ret = emit_stmt(emit, stmt, pop);
+ if(ret > 0) {
const m_bool pure = !vector_back(&emit->info->pure);
if(!pure) {
gc->opcode = eGcIni;
}
emit_pop_scope(emit);
--emit->env->scope->depth;
- return GW_OK;
+ return ret;
}
#define SPORK_FUNC_PREFIX "spork~func:%i"
const m_bool ret = scanx_fdef(emit->env, emit, fdef, (_exp_func)emit_fdef);
emit_pop_scope(emit);
emit->env->func = former;
-
if(ret > 0)
emit_fdef_finish(emit, fdef);
return ret;