diff --git a/src/core/operations/ConditionalJump.mjs b/src/core/operations/ConditionalJump.mjs index ca8eea30..b0c65ddd 100644 --- a/src/core/operations/ConditionalJump.mjs +++ b/src/core/operations/ConditionalJump.mjs @@ -64,6 +64,7 @@ class ConditionalJump extends Operation { jmpIndex = getLabelIndex(label, state); if (state.numJumps >= maxJumps || jmpIndex === -1) { + state.numJumps = 0; return state; } @@ -74,6 +75,9 @@ class ConditionalJump extends Operation { state.progress = jmpIndex; state.numJumps++; } + else { + state.numJumps = 0; + } } return state; diff --git a/src/core/operations/Jump.mjs b/src/core/operations/Jump.mjs index f442faa0..26a2c922 100644 --- a/src/core/operations/Jump.mjs +++ b/src/core/operations/Jump.mjs @@ -52,6 +52,7 @@ class Jump extends Operation { const jmpIndex = getLabelIndex(label, state); if (state.numJumps >= maxJumps || jmpIndex === -1) { + state.numJumps = 0; return state; }