code: func (l *State) CallWithContinuation(argCount, resultCount, context int, continuation Function) {
  	if apiCheck && continuation != nil && l.callInfo.isLua() {
  		panic("cannot use continuations inside hooks")
  	}
  	l.checkElementCount(argCount + 1)
  	if apiCheck && l.shouldYield {
  		panic("cannot do calls on non-normal thread")
  	}
  	l.checkResults(argCount, resultCount)
  	f := l.top - (argCount + 1)
  	if continuation != nil && l.nonYieldableCallCount == 0 { // need to prepare continuation?
  		l.callInfo.continuation = continuation
  		l.callInfo.context = context
  		l.call(f, resultCount, true) // just do the call
  	} else { // no continuation or not yieldable
  		l.call(f, resultCount, false) // just do the call
  	}
  	l.adjustResults(resultCount)
  }
docs: // CallWithContinuation is exactly like Call, but allows the called function to
  // yield.
  //
  // http://www.lua.org/manual/5.2/manual.html#lua_callk