Module:No globals
Jump to navigation
Jump to search
This module is currently protected from editing as it is a high-use module. Edits made to it will affect many pages. Please discuss changes on the talk page before implementing them. Test changes in the module's /sandbox or in your sandbox. |
Overview
This module causes an error if any nil global is read or if any global is written to, except 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 require function to work properly.
Copyright
This page uses content originally from Wikipedia's Module:No globals page; Wikipedia content is licensed under a Creative Commons Attribution-ShareAlike License 4.0. (view page authors).
|
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)