function Maid.GivePromise(w,q)if not q:IsPending()then return q end local D=q.resolved(q)local s=w:GiveTask(D)D:Finally(function()w[s]=nil end)return D end

function Maid:GivePromise(promise)
	if not promise:IsPending() then
		return promise
	end

	local newPromise = promise.resolved(promise)
	local id = self:GiveTask(newPromise)

	-- Ensure GC
	newPromise:Finally(function()
		self[id] = nil
	end)

	return newPromise
end
