From a6d6bae42eb89e936bd41d9338916ded91e1efc4 Mon Sep 17 00:00:00 2001 From: CST1229 <68464103+CST1229@users.noreply.github.com> Date: Mon, 30 Oct 2023 18:39:38 +0100 Subject: [PATCH 1/3] utilities: fix clamp block breaking if specific costumes exist --- extensions/utilities.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/extensions/utilities.js b/extensions/utilities.js index 6657951820..3fc681add9 100644 --- a/extensions/utilities.js +++ b/extensions/utilities.js @@ -311,6 +311,9 @@ } clamp({ INPUT, MIN, MAX }) { + INPUT = Scratch.Cast.toNumber(INPUT); + MIN = Scratch.Cast.toNumber(MIN); + MAX = Scratch.Cast.toNumber(MAX); if (MIN > MAX) { return Scratch.Cast.toNumber(Math.min(Math.max(INPUT, MAX), MIN)); } else { From 44e7743e2d56f99a4b665b9dc7a81d81b9a1e1d3 Mon Sep 17 00:00:00 2001 From: CST1229 <68464103+CST1229@users.noreply.github.com> Date: Mon, 30 Oct 2023 18:43:36 +0100 Subject: [PATCH 2/3] also fix <= and >=; cast in ^ just to be safe --- extensions/utilities.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions/utilities.js b/extensions/utilities.js index 3fc681add9..7e1cb10170 100644 --- a/extensions/utilities.js +++ b/extensions/utilities.js @@ -279,11 +279,11 @@ } isLessOrEqual({ A, B }) { - return A <= B; + return Scratch.Cast.compare(A, B) <= 0; } isMoreOrEqual({ A, B }) { - return A >= B; + return Scratch.Cast.compare(A, B) >= 0; } trueBlock() { @@ -295,6 +295,8 @@ } exponent({ A, B }) { + A = Scratch.Cast.toNumber(A); + B = Scratch.Cast.toNumber(B); return Math.pow(A, B); } From 654d225eea84b9b8a505dac031ec9541520ca463 Mon Sep 17 00:00:00 2001 From: CST1229 <68464103+CST1229@users.noreply.github.com> Date: Mon, 30 Oct 2023 19:02:42 +0100 Subject: [PATCH 3/3] Remove unnecessary cast --- extensions/utilities.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/utilities.js b/extensions/utilities.js index 7e1cb10170..dd156b4057 100644 --- a/extensions/utilities.js +++ b/extensions/utilities.js @@ -317,9 +317,9 @@ MIN = Scratch.Cast.toNumber(MIN); MAX = Scratch.Cast.toNumber(MAX); if (MIN > MAX) { - return Scratch.Cast.toNumber(Math.min(Math.max(INPUT, MAX), MIN)); + return Math.min(Math.max(INPUT, MAX), MIN); } else { - return Scratch.Cast.toNumber(Math.min(Math.max(INPUT, MIN), MAX)); + return Math.min(Math.max(INPUT, MIN), MAX); } }