diff --git a/etlua.lua b/etlua.lua index 62474e0..dfc94a3 100644 --- a/etlua.lua +++ b/etlua.lua @@ -204,9 +204,17 @@ do if name == nil then name = "etlua" end - local code_fn = coroutine.wrap(function() - return coroutine.yield(code) - end) + local code_fn + do + local code_ref = code + code_fn = function() + do + local ret = code_ref + code_ref = nil + return ret + end + end + end local fn, err = load(code_fn, name) if not (fn) then do diff --git a/etlua.moon b/etlua.moon index 9627f1c..8aab649 100644 --- a/etlua.moon +++ b/etlua.moon @@ -1,4 +1,4 @@ -VERSION = "1.0.1" +VERSION = "1.0.2" import insert, concat from table @@ -163,8 +163,11 @@ class Parser "#{err_msg} [#{source_line_no}]: #{source_line}" load: (code, name="etlua") => - code_fn = coroutine.wrap -> - coroutine.yield code + code_fn = do + code_ref = code + -> + with ret = code_ref + code_ref = nil fn, err = load code_fn, name