local U=require(script.Parent.None)local function k(k,...)for z=1,select("\035",...),1 do local d=select(z,...)if d~=nil then for z,d in pairs(d)do if d==U then k[z]=nil else k[z]=d end end end end return k end return k
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
