Module:Ustring/sandbox

require('strict') return setmetatable({}, {	__index = function(t, k)		local what = mw.ustring[k]		if type(what) ~= "function" then			return what		end		return function(frame)			local fargs = frame.args			local fargsused = { tag = true, onerror = true }			local args = {}			local str_i = 1			while fargs['s' .. str_i] do				fargsused['s' .. str_i] = true				args[str_i] = fargs['s' .. str_i]				str_i = str_i + 1			end			for i, v in ipairs(fargs) do				fargsused[i] = true				args[i + str_i - 1] = tonumber(v) or v:gsub("^\\", "", 1)			end			local result = nil			if fargs.onerror then				local success				success, result = pcall(what, unpack(args))				if not success then					return fargs.onerror				end			else				result = what(unpack(args))			end			if not fargs.tag then				return result			end			local tagargs = {}			for x, y in pairs(fargs) do				if not fargsused[x] then tagargs[x] = y end			end			return frame:extensionTag{name = fargs.tag, content = result, args = tagargs} end end })