From bbbd3dd64b8a74933a24ed3e85cfbb428a8e1c98 Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Wed, 25 Oct 2017 10:14:54 -0400 Subject: [PATCH] Make test pass for undefined proc execution --- src/blocks/scratch3_procedures.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/blocks/scratch3_procedures.js b/src/blocks/scratch3_procedures.js index c648d9603..b91630f12 100644 --- a/src/blocks/scratch3_procedures.js +++ b/src/blocks/scratch3_procedures.js @@ -27,11 +27,20 @@ class Scratch3ProcedureBlocks { if (!util.stackFrame.executed) { const procedureCode = args.mutation.proccode; const paramNames = util.getProcedureParamNames(procedureCode); + + // If null, procedure could not be found, which can happen if custom + // block is dragged between sprites without the definition. + // Match Scratch 2.0 behavior and noop. + if (paramNames === null) { + return; + } + for (let i = 0; i < paramNames.length; i++) { if (args.hasOwnProperty(`input${i}`)) { util.pushParam(paramNames[i], args[`input${i}`]); } } + util.stackFrame.executed = true; util.startProcedure(procedureCode); }