aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2022-10-20 16:50:12 +0200
committerKim Alvefur <zash@zash.se>2022-10-20 16:50:12 +0200
commite2cff346410c57686478d68fabd96cf4247df927 (patch)
treefb9c06de4cf1cdf18ba13292df824fd8cd7af5ee /util
parente64c5e30c2ab1f59c5051f2bd66f053d34a6eb25 (diff)
downloadprosody-e2cff346410c57686478d68fabd96cf4247df927.tar.gz
prosody-e2cff346410c57686478d68fabd96cf4247df927.zip
util.mathcompat: Module to ease reuse of math.type()
Mostly to ensure it is available during tests, as util.startup is not invoked there
Diffstat (limited to 'util')
-rw-r--r--util/datamapper.lua4
-rw-r--r--util/mathcompat.lua13
-rw-r--r--util/serialization.lua4
-rw-r--r--util/startup.lua11
4 files changed, 22 insertions, 10 deletions
diff --git a/util/datamapper.lua b/util/datamapper.lua
index 2378314c..e1484525 100644
--- a/util/datamapper.lua
+++ b/util/datamapper.lua
@@ -1,5 +1,9 @@
-- This file is generated from teal-src/util/datamapper.lua
+if not math.type then
+ require("util.mathcompat")
+end
+
local st = require("util.stanza");
local pointer = require("util.jsonpointer");
diff --git a/util/mathcompat.lua b/util/mathcompat.lua
new file mode 100644
index 00000000..e8acb261
--- /dev/null
+++ b/util/mathcompat.lua
@@ -0,0 +1,13 @@
+if not math.type then
+
+ local function math_type(t)
+ if type(t) == "number" then
+ if t % 1 == 0 and t ~= t + 1 and t ~= t - 1 then
+ return "integer"
+ else
+ return "float"
+ end
+ end
+ end
+ _G.math.type = math_type
+end
diff --git a/util/serialization.lua b/util/serialization.lua
index 6552d53b..e2e104f1 100644
--- a/util/serialization.lua
+++ b/util/serialization.lua
@@ -21,6 +21,10 @@ local to_hex = require "util.hex".to;
local pcall = pcall;
local envload = require"util.envload".envload;
+if not math.type then
+ require "util.mathcompat"
+end
+
local pos_inf, neg_inf = math.huge, -math.huge;
local m_type = math.type;
diff --git a/util/startup.lua b/util/startup.lua
index 9e512cb3..68b74984 100644
--- a/util/startup.lua
+++ b/util/startup.lua
@@ -280,16 +280,7 @@ function startup.init_global_state()
-- COMPAT Lua < 5.3
if not math.type then
- -- luacheck: ignore 122/math
- function math.type(n)
- if type(n) == "number" then
- if n % 1 == 0 and (n + 1 ~= n and n - 1 ~= n) then
- return "integer"
- else
- return "float"
- end
- end
- end
+ require "util.mathcompat"
end
end