Modul:No globals

This is [[MediaWiki:Tagline]]. Set to <code>display:none</code> by chameleon skin.
Wechseln zu:Navigation, Suche
Documentation icon Module documentation[view] [edit] [history] [purge]
This module causes an error if any nil global is read or if any global is written to, with the exception of arg. To use, add
require('Module:No globals')
to the top of the module using it. The arg variable is excluded because it is necessary for Scribunto's function to work properly. (See the Scribunto source code here.)

local mt = getmetatable(_G) or {}
function mt.__index (t, k)
	if k ~= 'arg' then
		error('Tried to read nil global ' .. tostring(k), 2)
	end
	return nil
end
function mt.__newindex(t, k, v)
	if k ~= 'arg' then
		error('Tried to write global ' .. tostring(k), 2)
	end
	rawset(t, k, v)
end
setmetatable(_G, mt)