Add implementation for while

This commit is contained in:
Florrie 2018-04-07 13:56:28 -03:00
parent 27d053acff
commit c57d0c94eb

View file

@ -17,6 +17,7 @@ class Scratch3ControlBlocks {
return { return {
control_repeat: this.repeat, control_repeat: this.repeat,
control_repeat_until: this.repeatUntil, control_repeat_until: this.repeatUntil,
control_while: this.repeatWhile,
control_for_each: this.forEach, control_for_each: this.forEach,
control_forever: this.forever, control_forever: this.forever,
control_wait: this.wait, control_wait: this.wait,
@ -56,12 +57,20 @@ class Scratch3ControlBlocks {
repeatUntil (args, util) { repeatUntil (args, util) {
const condition = Cast.toBoolean(args.CONDITION); 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) { if (!condition) {
util.startBranch(1, true); 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) { forEach (args, util) {
const variable = util.target.lookupOrCreateVariable( const variable = util.target.lookupOrCreateVariable(
args.VARIABLE.id, args.VARIABLE.name); args.VARIABLE.id, args.VARIABLE.name);