diff --git a/core/connection.js b/core/connection.js index 0d5772eb6..27f3ae58e 100644 --- a/core/connection.js +++ b/core/connection.js @@ -517,7 +517,9 @@ Blockly.Connection.prototype.respawnShadow = function(parentConnection, } else { throw 'Child block does not have output or previous statement.'; } + return blockShadow; } + return null; }; /** diff --git a/core/rendered_connection.js b/core/rendered_connection.js index 2df1dc88a..1be374afc 100644 --- a/core/rendered_connection.js +++ b/core/rendered_connection.js @@ -305,14 +305,8 @@ Blockly.RenderedConnection.prototype.respawnShadow = function(parentConnection, var shadow = parentConnection.getShadowDom(); if (parentBlock.workspace && shadow && Blockly.Events.recordUndo) { var blockShadow = - Blockly.Xml.domToBlock(parentBlock.workspace, shadow); - if (blockShadow.outputConnection) { - parentConnection.connect(blockShadow.outputConnection); - } else if (blockShadow.previousConnection) { - parentConnection.connect(blockShadow.previousConnection); - } else { - throw 'Child block does not have output or previous statement.'; - } + Blockly.RenderedConnection.superClass_.respawnShadow.call(this, + parentConnection, parentBlock, childBlock); blockShadow.initSvg(); blockShadow.render(false); }