		auto Phase3() -> Local<Value> final {
			if (did_finish && !*did_finish) {
				*did_finish = true;
				throw RuntimeGenericError("Script execution timed out.");
			} else if (async_error) {
				Isolate::GetCurrent()->ThrowException(async_error->CopyInto());
				throw RuntimeError();
			} else {
				return ret->TransferIn();
			}
		}
		auto Phase3() -> Local<Value> final {
			if (did_finish && !*did_finish) {
				*did_finish = true;
				throw RuntimeGenericError("Script execution timed out.");
			} else if (async_error) {
				Isolate::GetCurrent()->ThrowException(async_error->CopyInto());
				throw RuntimeError();
			} else {
				return ret->TransferIn();
			}
		}