# HG changeset patch # User Matthew Wild # Date 1455107622 0 # Node ID 55e927a6c22890e56a7c1957995c7fb2bbc3d598 # Parent 4608c7c025e5acb4867ecb1151f6fffbb3a41d89 uglify: Ensure prettified code inherits the current environment, instead of the default global environment diff -r 4608c7c025e5 -r 55e927a6c228 uglify/squish.uglify.lua --- a/uglify/squish.uglify.lua Thu Dec 31 20:29:08 2015 +0000 +++ b/uglify/squish.uglify.lua Wed Feb 10 12:33:42 2016 +0000 @@ -96,7 +96,7 @@ outfile:write[[}; function prettify(code) return code:gsub("["..string.char(base_char).."-"..string.char(base_char+#keywords).."]", function (c) return keywords[c:byte()-base_char]; end) end ]] - outfile:write [[return assert(loadstring(prettify]] + outfile:write [[return setfenv(assert(loadstring(prettify]] outfile:write("[", string.rep("=", maxequals+1), "["); -- Write code, substituting tokens as we go @@ -115,7 +115,7 @@ -- Close string/functions outfile:write("]", string.rep("=", maxequals+1), "]"); - outfile:write(", '@", outfile_fn,"'))()"); + outfile:write(", '@", outfile_fn,"')), getfenv())()"); outfile:close(); os.rename(outfile_fn..".uglified", outfile_fn); end