function Scratch3ProcedureBlocks(runtime) { /** * The runtime instantiating this block package. * @type {Runtime} */ this.runtime = runtime; } /** * Retrieve the block primitives implemented by this package. * @return {Object.} Mapping of opcode to Function. */ Scratch3ProcedureBlocks.prototype.getPrimitives = function() { return { 'procedures_defnoreturn': this.defNoReturn, 'procedures_callnoreturn': this.callNoReturn }; }; Scratch3ProcedureBlocks.prototype.defNoReturn = function () { // No-op: execute the blocks. }; Scratch3ProcedureBlocks.prototype.callNoReturn = function (args, util) { if (!util.stackFrame.executed) { var procedureName = args.mutation.name; util.stackFrame.executed = true; util.startProcedure(procedureName); } }; module.exports = Scratch3ProcedureBlocks;