On Sun, Jul 23, 2017 at 8:48 PM, Mikhail Zajcev wrote:
Other idea is to modify demo.lua:
1. Load user script in separate environment:
local env = {}
setmetatable(env, {__index = _ENV})
This will not prevent user from inserting custom functions and tables in "math", "string" and "table" libraries.
Example:
math.primes = setmetatable({2,3,5,7,11}, {__index = function(t,k) ... end, __gc = function() print("BYE") end})
In this case, clearing the "env" and collecting the garbage is not enough to trigger __gc metamethod of math.primes.