diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2020-03-02 17:27:49 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2020-03-02 17:43:17 +0000 |
| commit | f58dc0c7f72fa036adab1c8ca2de6ec968989ea1 (patch) | |
| tree | 50be346d8683312d116efa54522eccc55d9c4321 /core/invoke.moon | |
| parent | dynamic scoping (diff) | |
| download | alive-f58dc0c7f72fa036adab1c8ca2de6ec968989ea1.tar.gz alive-f58dc0c7f72fa036adab1c8ca2de6ec968989ea1.zip | |
only :tick after :setup if dirty
Diffstat (limited to 'core/invoke.moon')
| -rw-r--r-- | core/invoke.moon | 11 |
1 files changed, 10 insertions, 1 deletions
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! |
