function wrapCreateContext(shim, _fn, _fnName, context) {
  wrapResponseBody(shim, context)
  wrapMatchedRoute(shim, context)
  wrapResponseStatus(shim, context)
}
Many of the properties on the `context` object are just aliases for the same
property on the `request` or `response` objects. We take advantage of this
by just intercepting the `request` or `response` property and don't touch
the `context` property.
See: https://github.com/koajs/koa/blob/master/lib/context.js#L186-L241

@param {Shim} shim instance of shim
@param {function} _fn createContext function
@param {string} _fnName name of function
@param {object} context koa ctx object