diff options
author | Kim Alvefur <zash@zash.se> | 2022-10-20 16:50:12 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2022-10-20 16:50:12 +0200 |
commit | e2cff346410c57686478d68fabd96cf4247df927 (patch) | |
tree | fb9c06de4cf1cdf18ba13292df824fd8cd7af5ee /util | |
parent | e64c5e30c2ab1f59c5051f2bd66f053d34a6eb25 (diff) | |
download | prosody-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.lua | 4 | ||||
-rw-r--r-- | util/mathcompat.lua | 13 | ||||
-rw-r--r-- | util/serialization.lua | 4 | ||||
-rw-r--r-- | util/startup.lua | 11 |
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 |