function Promise.Yield(G)if G._fulfilled then return true,unpack(G._fulfilled,1,G._valuesLength)elseif G._rejected then return false,unpack(G._rejected,1,G._valuesLength)else local l=Instance.new("\066\105\110\100\097\098\108\101\069\118\101\110\116")G:Then(function()l:Fire()end,function()l:Fire()end)l.Event:Wait()l:Destroy()if G._fulfilled then return true,unpack(G._fulfilled,1,G._valuesLength)elseif G._rejected then return false,unpack(G._rejected,1,G._valuesLength)end end end

function Promise:Yield()
	if self._fulfilled then
		return true, unpack(self._fulfilled, 1, self._valuesLength)
	elseif self._rejected then
		return false, unpack(self._rejected, 1, self._valuesLength)
	else
		local bindable = Instance.new("BindableEvent")

		self:Then(function()
			bindable:Fire()
		end, function()
			bindable:Fire()
		end)

		bindable.Event:Wait()
		bindable:Destroy()

		if self._fulfilled then
			return true, unpack(self._fulfilled, 1, self._valuesLength)
		elseif self._rejected then
			return false, unpack(self._rejected, 1, self._valuesLength)
		end
	end
end

