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