diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-02-03 23:04:46 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2015-02-03 23:04:46 +0000 |
commit | 2b24c23224e02351112d45dba254bfcab4324abe (patch) | |
tree | 9cc5066786f6a6978b5eeef59ec0b4a367598ead | |
parent | afd4a17e139ad352e32c82a87ebd06175f2aa6a5 (diff) | |
download | supple-2b24c23224e02351112d45dba254bfcab4324abe.tar.gz |
Support 5.2 style load() as well as 5.1's loadstring()/setfenv() combo
-rw-r--r-- | lib/supple/request.lua | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/supple/request.lua b/lib/supple/request.lua index ab8388a..1a4cdce 100644 --- a/lib/supple/request.lua +++ b/lib/supple/request.lua @@ -17,6 +17,7 @@ local tconcat = table.concat local ipairs = ipairs local select = select local loadstring = loadstring +local load = load local setfenv = setfenv local function serialise_error(errstr, traceback) @@ -98,8 +99,12 @@ end local function deserialise_entity(entity) local str = ("return {%s}"):format(entity) - local fn = assert(loadstring(str)) - setfenv(fn, {}) + local fn + if setfenv ~= nil then + fn = setfenv(assert(loadstring(str, "@supple-transfer")), {}) + else + fn = load(str, "@supple-transfer", "t", {}) + end local res = fn() local walk = res.args or res.results if walk then |