From d173e9ae88380bb1217b3f775e6c3cec71a6606c Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Wed, 24 Jan 2018 12:37:52 -0800 Subject: Fixed id for nil/NaN and cleaned up collection metatable stuff. --- nomsu.lua | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'nomsu.lua') diff --git a/nomsu.lua b/nomsu.lua index ba6a834..88ad87f 100644 --- a/nomsu.lua +++ b/nomsu.lua @@ -1430,9 +1430,16 @@ do self.write_err = function(self, ...) return io.stderr:write(...) end + local NaN_surrogate = { } + local nil_surrogate = { } self.ids = setmetatable({ }, { __mode = "k", __index = function(self, key) + if key == nil then + return self[nil_surrogate] + elseif key ~= key then + return self[NaN_surrogate] + end local id = new_uuid() self[key] = id return id -- cgit v1.2.3