Comparison

util/jsonpointer.lua @ 12499:03e307952816 0.12

util.jsonpointer: Fix Lua <5.3 compat
author Kim Alvefur <zash@zash.se>
date Mon, 09 May 2022 22:36:57 +0200
parent 12496:87c3d45208ef
child 12781:22066b02887f
comparison
equal deleted inserted replaced
12496:87c3d45208ef 12499:03e307952816
1 local m_type = math.type or function (n)
2 return n % 1 == 0 and n <= 9007199254740992 and n >= -9007199254740992 and "integer" or "float";
3 end;
4
1 local function unescape_token(escaped_token) 5 local function unescape_token(escaped_token)
2 local unescaped = escaped_token:gsub("~1", "/"):gsub("~0", "~") 6 local unescaped = escaped_token:gsub("~1", "/"):gsub("~0", "~")
3 return unescaped 7 return unescaped
4 end 8 end
5 9
13 local idx = next(ref) 17 local idx = next(ref)
14 local new_ref 18 local new_ref
15 19
16 if type(idx) == "string" then 20 if type(idx) == "string" then
17 new_ref = ref[token] 21 new_ref = ref[token]
18 elseif math.type(idx) == "integer" then 22 elseif m_type(idx) == "integer" then
19 local i = tonumber(token) 23 local i = tonumber(token)
20 if token == "-" then 24 if token == "-" then
21 i = #ref + 1 25 i = #ref + 1
22 end 26 end
23 new_ref = ref[i + 1] 27 new_ref = ref[i + 1]