code: function(workspace) {
      var containerBlock = workspace.newBlock('procedures_mutatorcontainer');
      containerBlock.initSvg();
  
      // Check/uncheck the allow statement box.
      if (this.getInput('RETURN')) {
        containerBlock.setFieldValue(this.hasStatements_ ? 'TRUE' : 'FALSE',
                                     'STATEMENTS');
      } else {
        containerBlock.getInput('STATEMENT_INPUT').setVisible(false);
      }
  
      // Parameter list.
      var connection = containerBlock.getInput('STACK').connection;
      for (var i = 0; i < this.arguments_.length; i++) {
        var paramBlock = workspace.newBlock('procedures_mutatorarg');
        paramBlock.initSvg();
        paramBlock.setFieldValue(this.arguments_[i], 'NAME');
        // Store the old location.
        paramBlock.oldLocation = i;
        connection.connect(paramBlock.previousConnection);
        connection = paramBlock.nextConnection;
      }
      // Initialize procedure's callers with blank IDs.
      Blockly.Procedures.mutateCallers(this);
      return containerBlock;
    }
docs: Populate the mutator's dialog with this block's components.
  @param {!Blockly.Workspace} workspace Mutator's workspace.
  @return {!Blockly.Block} Root block in mutator.
  @this Blockly.Block