diff --git a/src/graph.luau b/src/graph.luau index 0c0bf21..ab0be0b 100644 --- a/src/graph.luau +++ b/src/graph.luau @@ -181,44 +181,6 @@ local function evaluate_node(node: Node) return cur_value ~= new_value -- node has changed value end --- local function update_from(node: StartNode, n0: number) --- if not node[1] then return end - --- local n = n0 - --- -- unparent all children and queue for eval --- do --- local child = node[1] --- while child do --- --assert(child.parents.owner) --- unparent(child) --- n += 1 --- update_queue[n] = child --- child = node[1] --- end --- end - --- update_queue.n = n - --- -- evaluate all queued children --- for i = n0 + 1, n do --- local child = update_queue[i] --- assert(type(child.effect) == "function") - --- if evaluate_node(child) then --- update_from(child, n) --- end - --- update_queue[i] = false :: any -- false instead of nil to avoid sparse --- end - --- update_queue.n = n0 --- end - --- local function update(node: StartNode) --- update_from(node, update_queue.n) --- end - local function queue_children(node: StartNode) local i = update_queue.n local child = node[1] diff --git a/test/tests.luau b/test/tests.luau index 0c72f90..b431a90 100644 --- a/test/tests.luau +++ b/test/tests.luau @@ -1969,7 +1969,6 @@ TEST("graph edge cases", wrap_root(function() a(1) - print(e()) CHECK(count.b == 2) CHECK(count.c == 2) CHECK(count.d == 2) @@ -1985,7 +1984,15 @@ TEST("graph edge cases", wrap_root(function() end do CASE "repeated read" + local a = source(0) + local b = derive(function() return a() + a() end) + local count = 0 + effect(function() b(); count += 1 end) + + a(1) + CHECK(b() == 2) + CHECK(count == 2) end end))