Module:No globals: Difference between revisions
Jump to navigation
Jump to search
m (Changed protection level for "Module:No globals": Used in interface MediaWiki:Protectedpagetext ([Edit=Require administrator access] (indefinite) [Move=Require administrator access] (indefinite))) |
m (1 revision imported) |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 2: | Line 2: | ||
function mt.__index (t, k) | function mt.__index (t, k) | ||
if k ~= 'arg' then | if k ~= 'arg' then | ||
error(' | -- perf optimization here and below: do not load Module:TNT unless there is an error | ||
error(require('Module:TNT').format('I18n/No globals', 'err-read', tostring(k)), 2) | |||
end | end | ||
return nil | return nil | ||
Line 8: | Line 9: | ||
function mt.__newindex(t, k, v) | function mt.__newindex(t, k, v) | ||
if k ~= 'arg' then | if k ~= 'arg' then | ||
error(' | error(require('Module:TNT').format('I18n/No globals', 'err-write', tostring(k)), 2) | ||
end | end | ||
rawset(t, k, v) | rawset(t, k, v) | ||
end | end | ||
setmetatable(_G, mt) | setmetatable(_G, mt) |
Latest revision as of 00:48, 10 April 2020
Error creating thumbnail: File missing | This Lua module is used on 17,000,000+ pages, or roughly 402176% of all pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. |
Error creating thumbnail: File missing | This module is used in system messages. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid large-scale disruption, any changes should first be tested in this module's /sandbox or /testcases subpage, or in your own user space. The tested changes can then be added in one single edit to this module. Please discuss any changes on the talk page before implementing them. |
Error creating thumbnail: File missing | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
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 require function to work properly. (See the Scribunto source code here.)
See also
- Module:Log globals - Adds all nil global reads/writes to the lua log
local mt = getmetatable(_G) or {}
function mt.__index (t, k)
if k ~= 'arg' then
-- perf optimization here and below: do not load Module:TNT unless there is an error
error(require('Module:TNT').format('I18n/No globals', 'err-read', tostring(k)), 2)
end
return nil
end
function mt.__newindex(t, k, v)
if k ~= 'arg' then
error(require('Module:TNT').format('I18n/No globals', 'err-write', tostring(k)), 2)
end
rawset(t, k, v)
end
setmetatable(_G, mt)