diff --git a/src/untrack.luau b/src/untrack.luau index 6e15578..efe5167 100644 --- a/src/untrack.luau +++ b/src/untrack.luau @@ -2,7 +2,7 @@ local graph = require "./graph" type Node = graph.Node local get_scope = graph.get_scope -local function untrack(source: () -> T): T +local function untrack(source: () -> T, ...: U...): T local scope = get_scope() if scope then @@ -10,7 +10,7 @@ local function untrack(source: () -> T): T local effect = scope.effect scope.effect = false - local ok, result = xpcall(source, debug.traceback) + local ok, result = xpcall(source, debug.traceback, ...) scope.effect = effect :: () -> () diff --git a/test/tests.luau b/test/tests.luau index 5402a75..ccf6def 100644 --- a/test/tests.luau +++ b/test/tests.luau @@ -1938,6 +1938,13 @@ TEST("untrack()", wrap_root(function() CHECK(cleaned_count == 2) end + + do CASE "passes values" + untrack(function(a, b) + CHECK(a == 1) + CHECK(b == 2) + end, 1, 2) + end end)) TEST("events", function() @@ -2464,7 +2471,7 @@ TEST("context()", function() end) TEST("nested effects cases", function() - local vide = require "../../vide" + local vide = require "../src/lib" local source = vide.source local effect = vide.effect local untrack = vide.untrack