mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-24 23:12:24 -05:00
Make test pass for undefined proc execution
This commit is contained in:
parent
ec1d8c657e
commit
bbbd3dd64b
1 changed files with 9 additions and 0 deletions
|
@ -27,11 +27,20 @@ class Scratch3ProcedureBlocks {
|
||||||
if (!util.stackFrame.executed) {
|
if (!util.stackFrame.executed) {
|
||||||
const procedureCode = args.mutation.proccode;
|
const procedureCode = args.mutation.proccode;
|
||||||
const paramNames = util.getProcedureParamNames(procedureCode);
|
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++) {
|
for (let i = 0; i < paramNames.length; i++) {
|
||||||
if (args.hasOwnProperty(`input${i}`)) {
|
if (args.hasOwnProperty(`input${i}`)) {
|
||||||
util.pushParam(paramNames[i], args[`input${i}`]);
|
util.pushParam(paramNames[i], args[`input${i}`]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
util.stackFrame.executed = true;
|
util.stackFrame.executed = true;
|
||||||
util.startProcedure(procedureCode);
|
util.startProcedure(procedureCode);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue