diff --git a/core/renderers/common/debugger.js b/core/renderers/common/debugger.js index 96f605335..2bb37a6c6 100644 --- a/core/renderers/common/debugger.js +++ b/core/renderers/common/debugger.js @@ -282,7 +282,12 @@ Blockly.blockRendering.Debug.prototype.drawRenderedRow = function(row, cursorY, * @package */ Blockly.blockRendering.Debug.prototype.drawRowWithElements = function(row, cursorY, isRtl) { - for (var i = 0, elem; (elem = row.elements[i]); i++) { + for (var i = 0, l = row.elements.length; i < l; i++) { + var elem = row.elements[i]; + if (!elem) { + console.warn('A row has an undefined or null element.', row, elem); + continue; + } if (Blockly.blockRendering.Types.isSpacer(elem)) { this.drawSpacerElem( /** @type {!Blockly.blockRendering.InRowSpacer} */ (elem), diff --git a/core/renderers/common/info.js b/core/renderers/common/info.js index 94ac6b8ad..2c49e2790 100644 --- a/core/renderers/common/info.js +++ b/core/renderers/common/info.js @@ -435,6 +435,9 @@ Blockly.blockRendering.RenderInfo.prototype.addElemSpacing_ = function() { row.elements.push(new Blockly.blockRendering.InRowSpacer( this.constants_, this.getInRowSpacing_(null, oldElems[0]))); } + if (!oldElems.length) { + continue; + } for (var e = 0; e < oldElems.length - 1; e++) { row.elements.push(oldElems[e]); var spacing = this.getInRowSpacing_(oldElems[e], oldElems[e + 1]); diff --git a/core/renderers/geras/info.js b/core/renderers/geras/info.js index 00b85b35f..4678c7215 100644 --- a/core/renderers/geras/info.js +++ b/core/renderers/geras/info.js @@ -143,6 +143,9 @@ Blockly.geras.RenderInfo.prototype.addElemSpacing_ = function() { row.elements.push(new Blockly.blockRendering.InRowSpacer( this.constants_, this.getInRowSpacing_(null, oldElems[0]))); } + if (!oldElems.length) { + continue; + } for (var e = 0; e < oldElems.length - 1; e++) { row.elements.push(oldElems[e]); var spacing = this.getInRowSpacing_(oldElems[e], oldElems[e + 1]);