Add check for undefined variables. Find undefined variables. Fix undefined

variables.
This commit is contained in:
David Given
2016-08-05 00:01:55 +02:00
parent 5e84be70fd
commit b50dc4214a
3 changed files with 16 additions and 4 deletions

View File

@@ -361,7 +361,8 @@ local function loadbuildfile(filename)
data, e = fp:read("*a")
fp:close()
if not e then
local thisglobals = {_G = thisglobals}
local thisglobals = {}
thisglobals._G = thisglobals
setmetatable(thisglobals, {__index = globals})
chunk, e = load(data, "@"..filename, "text", thisglobals)
end
@@ -787,6 +788,18 @@ setmetatable(globals,
vars.cflags = {}
parente.vars = vars
setmetatable(_G,
{
__index = function(self, k)
local value = rawget(_G, k)
if not value then
error(string.format("access of undefined variable '%s'", k))
end
return value
end
}
)
do
local emitter_type = install_make_emitter
parse_arguments(