src/async/fiberManager.js
function runInFiber(runCtx) {
    try {
        tryBlock(runCtx);
    }
    catch (err) {
        catchBlock(runCtx, err);
    }
    finally {
        finallyBlock(runCtx);
    }
}
function runInFiber(runCtx) {
    try {
        tryBlock(runCtx);
    }
    catch (err) {
        catchBlock(runCtx, err);
    }
    finally {
        finallyBlock(runCtx);
    }
}
The runInFiber() function provides the prolog/epilog wrapper code for running a function inside
a fiber. The runInFiber() function accepts a RunContext instance, and calls the wrapped function
specified there. The final return/throw value of the wrapped function is used to notify the
promise resolver and/or callback specified in the RunContext. This function must take all its
information in a single argument because it is called via Fiber#run(), which accepts one argument.
NB: Since try/catch/finally prevents V8 optimisations, the function is split into several parts.