From 8bd14b71abaedc46bfedaeeec4afa77f9eabec6a Mon Sep 17 00:00:00 2001 From: wushi333333 Date: Wed, 26 Jul 2017 16:55:17 +0800 Subject: [PATCH] Create test3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 测试完成,问题是b遍历经过赋值table后,被清空了 个人觉得107行应该改成 local keys = {} for k in pairs(lv._lastversion) do --加上._lastversion keys[k] = true end --- test3 | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 test3 diff --git a/test3 b/test3 new file mode 100644 index 0000000..1f9dd31 --- /dev/null +++ b/test3 @@ -0,0 +1,125 @@ +local tracedoc = require "app.tracedoc" + +local doc = tracedoc.new { + a = 1, + b = { 1,2,3 }, + c = { d = 4 , e = 5 }, + d = {}, +} + +local function dump1(doc) + local changes = tracedoc.commit(doc, {}) + print("Dump:") + for k,v in pairs(doc) do + print(k,v) + if type(v) == "table" then + for k, v in pairs(v) do + print("\t",k,v) + end + end + end + print("changes:") + for k,v in pairs(changes) do + print(k,v) + end +end + +dump1(doc) + +dump(doc,"doc",100) +print "-----------------------------" + +doc.b[3] = nil +doc.b = { 1,3 } -- remove [3], change [2] +dump(doc,"doc222",100) + +-- 结果是 b直接被清空了 +-- "doc" = { +-- "_changes" = { +-- "_doc" = *REF* +-- "_keys" = { +-- } +-- } +-- "_dirty" = false +-- "_lastversion" = { +-- "a" = 1 +-- "b" = { +-- "_changes" = { +-- "_doc" = *REF* +-- "_keys" = { +-- } +-- } +-- "_dirty" = false +-- "_lastversion" = { +-- 1 = 1 +-- 2 = 2 +-- 3 = 3 +-- } +-- "_parent" = *REF* +-- } +-- "c" = { +-- "_changes" = { +-- "_doc" = *REF* +-- "_keys" = { +-- } +-- } +-- "_dirty" = false +-- "_lastversion" = { +-- "d" = 4 +-- "e" = 5 +-- } +-- "_parent" = *REF* +-- } +-- "d" = { +-- "_changes" = { +-- "_doc" = *REF* +-- "_keys" = { +-- } +-- } +-- "_dirty" = false +-- "_lastversion" = { +-- } +-- "_parent" = *REF* +-- } +-- } +-- "_parent" = false +-- } +-- ----------------------------- +-- "doc222" = { +-- "_changes" = { +-- "_doc" = *REF* +-- "_keys" = { +-- } +-- } +-- "_dirty" = true +-- "_lastversion" = { +-- "a" = 1 +-- "b" = { +-- } +-- "c" = { +-- "_changes" = { +-- "_doc" = *REF* +-- "_keys" = { +-- } +-- } +-- "_dirty" = false +-- "_lastversion" = { +-- "d" = 4 +-- "e" = 5 +-- } +-- "_parent" = *REF* +-- } +-- "d" = { +-- "_changes" = { +-- "_doc" = *REF* +-- "_keys" = { +-- } +-- } +-- "_dirty" = false +-- "_lastversion" = { +-- } +-- "_parent" = *REF* +-- } +-- } +-- "_parent" = false +-- }