local F=require(script.Parent.None)local function G(G,...)for h=1,select("\035",...),1 do local l=select(h,...)if l~=nil then for h,l in pairs(l)do if l==F then G[h]=nil else G[h]=l end end end end return G end return G
local None = require(script.Parent.None)

--[[
	Merges values from zero or more tables onto a target table. If a value is
	set to None, it will instead be removed from the table.

	This function is identical in functionality to JavaScript's Object.assign.
]]
local function assign(target, ...)
	for index = 1, select("#", ...) do
		local source = select(index, ...)

		if source ~= nil then
			for key, value in pairs(source) do
				if value == None then
					target[key] = nil
				else
					target[key] = value
				end
			end
		end
	end

	return target
end

return assign