in lib/generator.js [3676:3700]
visitFunctionBody(ast, level, env) {
assert.equal(ast.type, 'functionBody');
this.visitStmts(ast.stmts, level, env);
const stmts = ast.stmts.stmts;
const length = ast.stmts.stmts.length;
if (_name(env.returnType) === 'void' && env.hasThrow && (length === 0 || (stmts[length - 1].type !== 'return' &&
stmts[length - 1].type !== 'throw'))) {
if(env.yieldErrDeal) {
this.emit(`_err = <- _yieldErr\n`, level);
}
this.emit(`return _err\n`, level);
}
if (length === 0 || this.functionBodyRetrun(stmts[length - 1], env)) {
if (_name(env.returnType) !== 'void' && env.hasThrow) {
if(env.yieldErrDeal) {
this.emit(`_err = <- _yieldErr\n`, level);
}
this.emit(`return _result, _err\n`, level);
} else if (_name(env.returnType) !== 'void' && !env.hasThrow) {
this.emit(`return _result\n`, level);
}
}
}