Module:No globals

From Roblox SCP Wiki
Revision as of 02:09, 1 March 2020 by mw>Minorax (7 revisions imported from meta:Module:No_globals)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
[[Category:Languages pages{{#translation:}}]]
warning Warning:Do not edit. This page is maintained by an automated tool. All edits should be done at mediawiki.org. (translate this warning)
Please help translate this page.

Usage

Include this module at the top of your code. An error will be raised any time your code tries to read or write to a non-local (undeclared) variable.

Tests

Test Status
Module:No globals success: 1, error: 0, skipped: 0
Module:No globals/sandbox success: 1, error: 0, skipped: 0

[[Category:Modules{{#translation:}}]]


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)