From 3289e078821a8a309c16b7d834aa938b0541ef76 Mon Sep 17 00:00:00 2001
From: AeroKoder <190222234+AeroKoder@users.noreply.github.com>
Date: Wed, 11 Feb 2026 13:44:39 -0700
Subject: [PATCH 1/2] feat: add operator_power
---
packages/scratch-gui/src/lib/make-toolbox-xml.js | 12 ++++++++++++
packages/scratch-vm/src/blocks/scratch3_operators.js | 5 +++++
2 files changed, 17 insertions(+)
diff --git a/packages/scratch-gui/src/lib/make-toolbox-xml.js b/packages/scratch-gui/src/lib/make-toolbox-xml.js
index 48ce3841784..8b7e44447e1 100644
--- a/packages/scratch-gui/src/lib/make-toolbox-xml.js
+++ b/packages/scratch-gui/src/lib/make-toolbox-xml.js
@@ -579,6 +579,18 @@ const operators = function (isInitialSetup, isStage, targetId, colors) {
+
+
+
+
+
+
+
+
+
+
+
+
${blockSeparator}
diff --git a/packages/scratch-vm/src/blocks/scratch3_operators.js b/packages/scratch-vm/src/blocks/scratch3_operators.js
index cb5d6ef84fd..b1b1170e1b0 100644
--- a/packages/scratch-vm/src/blocks/scratch3_operators.js
+++ b/packages/scratch-vm/src/blocks/scratch3_operators.js
@@ -20,6 +20,7 @@ class Scratch3OperatorsBlocks {
operator_subtract: this.subtract,
operator_multiply: this.multiply,
operator_divide: this.divide,
+ operator_power: this.power,
operator_lt: this.lt,
operator_equals: this.equals,
operator_gt: this.gt,
@@ -53,6 +54,10 @@ class Scratch3OperatorsBlocks {
return Cast.toNumber(args.NUM1) / Cast.toNumber(args.NUM2);
}
+ power (args) {
+ return Cast.toNumber(args.NUM1) ** Cast.toNumber(args.NUM2);
+ }
+
lt (args) {
return Cast.compare(args.OPERAND1, args.OPERAND2) < 0;
}
From 2dc61a6282b9e78acac77190467f8f7a2045db3d Mon Sep 17 00:00:00 2001
From: AeroKoder <190222234+AeroKoder@users.noreply.github.com>
Date: Sun, 22 Mar 2026 13:07:01 -0700
Subject: [PATCH 2/2] fix: use Math.pow instead of **
---
packages/scratch-vm/src/blocks/scratch3_operators.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/scratch-vm/src/blocks/scratch3_operators.js b/packages/scratch-vm/src/blocks/scratch3_operators.js
index b1b1170e1b0..da7169dad98 100644
--- a/packages/scratch-vm/src/blocks/scratch3_operators.js
+++ b/packages/scratch-vm/src/blocks/scratch3_operators.js
@@ -55,7 +55,7 @@ class Scratch3OperatorsBlocks {
}
power (args) {
- return Cast.toNumber(args.NUM1) ** Cast.toNumber(args.NUM2);
+ return Math.pow(Cast.toNumber(args.NUM1), Cast.toNumber(args.NUM2));
}
lt (args) {