From f58dc0c7f72fa036adab1c8ca2de6ec968989ea1 Mon Sep 17 00:00:00 2001 From: s-ol Date: Mon, 2 Mar 2020 18:27:49 +0100 Subject: only :tick after :setup if dirty --- core/invoke.moon | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'core/invoke.moon') diff --git a/core/invoke.moon b/core/invoke.moon index 1fac7b8..ba19cc5 100644 --- a/core/invoke.moon +++ b/core/invoke.moon @@ -16,7 +16,16 @@ class op_invoke extends Action eval: (scope, tail) => children = L\push -> [L\push expr\eval, scope for expr in *tail] @op\setup [result for result in *children] - @op\tick true + + any_dirty = false + for input in @op\all_inputs! + if input\dirty! + any_dirty = true + break + + if any_dirty + @op\tick true + for input in @op\all_inputs! input\finish_setup! -- cgit v1.2.3