Merge 0.12->trunk
authorKim Alvefur <zash@zash.se>
Mon, 09 May 2022 22:40:45 +0200
changeset 12505 042de4f0076e
parent 12502 c3e47a5dd30d (current diff)
parent 12504 88e1b94105ae (diff)
child 12506 5862ddf71e3c
Merge 0.12->trunk
--- a/util/jsonpointer.lua	Sun May 08 15:21:35 2022 +0200
+++ b/util/jsonpointer.lua	Mon May 09 22:40:45 2022 +0200
@@ -1,3 +1,7 @@
+local m_type = math.type or function (n)
+	return n % 1 == 0 and n <= 9007199254740992 and n >= -9007199254740992 and "integer" or "float";
+end;
+
 local function unescape_token(escaped_token)
 	local unescaped = escaped_token:gsub("~1", "/"):gsub("~0", "~")
 	return unescaped
@@ -15,7 +19,7 @@
 
 		if type(idx) == "string" then
 			new_ref = ref[token]
-		elseif math.type(idx) == "integer" then
+		elseif m_type(idx) == "integer" then
 			local i = tonumber(token)
 			if token == "-" then
 				i = #ref + 1
--- a/util/jsonschema.lua	Sun May 08 15:21:35 2022 +0200
+++ b/util/jsonschema.lua	Mon May 09 22:40:45 2022 +0200
@@ -1,3 +1,6 @@
+local m_type = math.type or function (n)
+	return n % 1 == 0 and n <= 9007199254740992 and n >= -9007199254740992 and "integer" or "float";
+end;
 local json = require("util.json")
 local null = json.null;
 
@@ -17,7 +20,7 @@
 	elseif schema == "array" and type(data) == "table" then
 		return type(data) == "table" and (next(data) == nil or type((next(data, nil))) == "number")
 	elseif schema == "integer" then
-		return math.type(data) == schema
+		return m_type(data) == schema
 	elseif schema == "null" then
 		return data == null
 	else