summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2015-02-03 23:04:46 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2015-02-03 23:04:46 +0000
commit2b24c23224e02351112d45dba254bfcab4324abe (patch)
tree9cc5066786f6a6978b5eeef59ec0b4a367598ead
parentafd4a17e139ad352e32c82a87ebd06175f2aa6a5 (diff)
downloadsupple-2b24c23224e02351112d45dba254bfcab4324abe.tar.gz
Support 5.2 style load() as well as 5.1's loadstring()/setfenv() combo
-rw-r--r--lib/supple/request.lua9
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