Mercurial > wow > askmrrobot
diff Libs/AceSerializer-3.0/AceSerializer-3.0.lua @ 106:e635cd648e01 v49
7.2 update
author | yellowfive |
---|---|
date | Tue, 28 Mar 2017 16:10:00 -0700 |
parents | 01b63b8ed811 |
children |
line wrap: on
line diff
--- a/Libs/AceSerializer-3.0/AceSerializer-3.0.lua Wed Nov 16 00:03:40 2016 -0800 +++ b/Libs/AceSerializer-3.0/AceSerializer-3.0.lua Tue Mar 28 16:10:00 2017 -0700 @@ -10,8 +10,8 @@ -- make into AceSerializer. -- @class file -- @name AceSerializer-3.0 --- @release $Id: AceSerializer-3.0.lua 1038 2011-10-03 01:39:58Z mikk $ -local MAJOR,MINOR = "AceSerializer-3.0", 4 +-- @release $Id: AceSerializer-3.0.lua 1135 2015-09-19 20:39:16Z nevcairiel $ +local MAJOR,MINOR = "AceSerializer-3.0", 5 local AceSerializer, oldminor = LibStub:NewLibrary(MAJOR, MINOR) if not AceSerializer then return end @@ -27,8 +27,8 @@ local inf = math.huge local serNaN -- can't do this in 4.3, see ace3 ticket 268 -local serInf = tostring(inf) -local serNegInf = tostring(-inf) +local serInf, serInfMac = "1.#INF", "inf" +local serNegInf, serNegInfMac = "-1.#INF", "-inf" -- Serialization functions @@ -62,11 +62,15 @@ elseif t=="number" then -- ^N = number (just tostring()ed) or ^F (float components) local str = tostring(v) - if tonumber(str)==v --[[not in 4.3 or str==serNaN]] or str==serInf or str==serNegInf then + if tonumber(str)==v --[[not in 4.3 or str==serNaN]] then -- translates just fine, transmit as-is res[nres+1] = "^N" res[nres+2] = str nres=nres+2 + elseif v == inf or v == -inf then + res[nres+1] = "^N" + res[nres+2] = v == inf and serInf or serNegInf + nres=nres+2 else local m,e = frexp(v) res[nres+1] = "^F" @@ -147,9 +151,9 @@ local function DeserializeNumberHelper(number) --[[ not in 4.3 if number == serNaN then return 0/0 - else]]if number == serNegInf then + else]]if number == serNegInf or number == serNegInfMac then return -inf - elseif number == serInf then + elseif number == serInf or number == serInfMac then return inf else return tonumber(number) @@ -280,4 +284,4 @@ -- Update embeds for target, v in pairs(AceSerializer.embeds) do AceSerializer:Embed(target) -end \ No newline at end of file +end