From 179030ad49683a6330f8735e81615d71bfee0150 Mon Sep 17 00:00:00 2001 From: Muffin Date: Sun, 8 Sep 2024 11:56:47 -0500 Subject: [PATCH] Don't eagerly cast boolean arguments to boolean (#223) Fixes https://github.com/TurboWarp/scratch-vm/issues/222 --- src/compiler/irgen.js | 4 +-- src/compiler/jsgen.js | 7 ++--- .../tw-boolean-arguments-are-not-cast.sb3 | Bin 0 -> 42604 bytes ...ean-arguments-are-not-cast.sb3.tw-snapshot | 24 ++++++++++++++++++ ...ean-arguments-are-not-cast.sb3.tw-snapshot | 24 ++++++++++++++++++ 5 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 test/fixtures/execute/tw-boolean-arguments-are-not-cast.sb3 create mode 100644 test/snapshot/__snapshots__/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot create mode 100644 test/snapshot/__snapshots__/warp-timer/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot diff --git a/src/compiler/irgen.js b/src/compiler/irgen.js index 39707ef5c6..b1b8ded5e3 100644 --- a/src/compiler/irgen.js +++ b/src/compiler/irgen.js @@ -202,7 +202,7 @@ class ScriptTreeGenerator { }; } return { - kind: 'args.stringNumber', + kind: 'procedures.argument', index: index }; } @@ -223,7 +223,7 @@ class ScriptTreeGenerator { }; } return { - kind: 'args.boolean', + kind: 'procedures.argument', index: index }; } diff --git a/src/compiler/jsgen.js b/src/compiler/jsgen.js index d3e7784d81..914e5cc72b 100644 --- a/src/compiler/jsgen.js +++ b/src/compiler/jsgen.js @@ -433,11 +433,6 @@ class JSGenerator { case 'addons.call': return new TypedInput(`(${this.descendAddonCall(node)})`, TYPE_UNKNOWN); - case 'args.boolean': - return new TypedInput(`toBoolean(p${node.index})`, TYPE_BOOLEAN); - case 'args.stringNumber': - return new TypedInput(`p${node.index}`, TYPE_UNKNOWN); - case 'compat': // Compatibility layer inputs never use flags. return new TypedInput(`(${this.generateCompatibilityLayerCall(node, false)})`, TYPE_UNKNOWN); @@ -665,6 +660,8 @@ class JSGenerator { } return new TypedInput(`${procedureReference}(${joinedArgs})`, TYPE_UNKNOWN); } + case 'procedures.argument': + return new TypedInput(`p${node.index}`, TYPE_UNKNOWN); case 'sensing.answer': return new TypedInput(`runtime.ext_scratch3_sensing._answer`, TYPE_STRING); diff --git a/test/fixtures/execute/tw-boolean-arguments-are-not-cast.sb3 b/test/fixtures/execute/tw-boolean-arguments-are-not-cast.sb3 new file mode 100644 index 0000000000000000000000000000000000000000..ba78ae2119b32a4deec84075d547a85babf32890 GIT binary patch literal 42604 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
opZ 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 EAKc(TQUCw| literal 0 HcmV?d00001 diff --git a/test/snapshot/__snapshots__/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot b/test/snapshot/__snapshots__/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot new file mode 100644 index 0000000000..bb3be7cad3 --- /dev/null +++ b/test/snapshot/__snapshots__/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot @@ -0,0 +1,24 @@ +// TW Snapshot +// Input SHA-256: 9ecff9e3c4b1dcdf3e23d0e49c0a2da3de446b6d626a2b5ee39d761be20344ca + +// Sprite1 script +(function factoryXYZ(thread) { const target = thread.target; const runtime = target.runtime; const stage = runtime.getTargetForStage(); +const b0 = runtime.getOpcodeFunction("looks_say"); +return function* genXYZ () { +yield* executeInCompatibilityLayer({"MESSAGE":"plan 1",}, b0, false, false, "f", null); +yield* thread.procedures["ZBlock A %s"]("Hai!!!"); +yield* executeInCompatibilityLayer({"MESSAGE":"end",}, b0, false, false, "k", null); +retire(); return; +}; }) + +// Sprite1 ZBlock A %s +(function factoryXYZ(thread) { const target = thread.target; const runtime = target.runtime; const stage = runtime.getTargetForStage(); +const b0 = runtime.getOpcodeFunction("looks_say"); +return function* genXYZ_Block_A_ (p0) { +if ((("" + p0).toLowerCase() === "Hai!!!".toLowerCase())) { +yield* executeInCompatibilityLayer({"MESSAGE":"pass did not cast",}, b0, false, false, "m", null); +} else { +yield* executeInCompatibilityLayer({"MESSAGE":"fail was casted",}, b0, false, false, "n", null); +} +return ""; +}; }) diff --git a/test/snapshot/__snapshots__/warp-timer/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot b/test/snapshot/__snapshots__/warp-timer/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot new file mode 100644 index 0000000000..bb3be7cad3 --- /dev/null +++ b/test/snapshot/__snapshots__/warp-timer/tw-boolean-arguments-are-not-cast.sb3.tw-snapshot @@ -0,0 +1,24 @@ +// TW Snapshot +// Input SHA-256: 9ecff9e3c4b1dcdf3e23d0e49c0a2da3de446b6d626a2b5ee39d761be20344ca + +// Sprite1 script +(function factoryXYZ(thread) { const target = thread.target; const runtime = target.runtime; const stage = runtime.getTargetForStage(); +const b0 = runtime.getOpcodeFunction("looks_say"); +return function* genXYZ () { +yield* executeInCompatibilityLayer({"MESSAGE":"plan 1",}, b0, false, false, "f", null); +yield* thread.procedures["ZBlock A %s"]("Hai!!!"); +yield* executeInCompatibilityLayer({"MESSAGE":"end",}, b0, false, false, "k", null); +retire(); return; +}; }) + +// Sprite1 ZBlock A %s +(function factoryXYZ(thread) { const target = thread.target; const runtime = target.runtime; const stage = runtime.getTargetForStage(); +const b0 = runtime.getOpcodeFunction("looks_say"); +return function* genXYZ_Block_A_ (p0) { +if ((("" + p0).toLowerCase() === "Hai!!!".toLowerCase())) { +yield* executeInCompatibilityLayer({"MESSAGE":"pass did not cast",}, b0, false, false, "m", null); +} else { +yield* executeInCompatibilityLayer({"MESSAGE":"fail was casted",}, b0, false, false, "n", null); +} +return ""; +}; })