diff --git a/src/blocks/scratch3_control.js b/src/blocks/scratch3_control.js index 15a43fb64..76d077b17 100644 --- a/src/blocks/scratch3_control.js +++ b/src/blocks/scratch3_control.js @@ -17,6 +17,7 @@ class Scratch3ControlBlocks { return { control_repeat: this.repeat, control_repeat_until: this.repeatUntil, + control_while: this.repeatWhile, control_for_each: this.forEach, control_forever: this.forever, control_wait: this.wait, @@ -56,12 +57,20 @@ class Scratch3ControlBlocks { repeatUntil (args, util) { const condition = Cast.toBoolean(args.CONDITION); - // If the condition is true, start the branch. + // If the condition is false (repeat UNTIL), start the branch. if (!condition) { util.startBranch(1, true); } } + repeatWhile (args, util) { + const condition = Cast.toBoolean(args.CONDITION); + // If the condition is true (repeat WHILE), start the branch. + if (condition) { + util.startBranch(1, true); + } + } + forEach (args, util) { const variable = util.target.lookupOrCreateVariable( args.VARIABLE.id, args.VARIABLE.name);