Skip to content

Commit

Permalink
fix: Don't throw if drag surface is empty. (#5695)
Browse files Browse the repository at this point in the history
Observed this error in Blockly Games Bird 6 (Chrome OS):
Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.
It has only shown up once, and I can't reproduce, but it looks like the drag surface was being cleared while empty.  Maybe some weird multi-touch operation?

Open question: Leave the code as is so that the error is thown and visible, or supress it?
  • Loading branch information
NeilFraser authored Jan 6, 2022
1 parent 4b2b658 commit 769a25f
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions core/block_drag_surface.js
Original file line number Diff line number Diff line change
Expand Up @@ -252,11 +252,14 @@ BlockDragSurfaceSvg.prototype.getWsTranslation = function() {
* being moved to a different surface.
*/
BlockDragSurfaceSvg.prototype.clearAndHide = function(opt_newSurface) {
if (opt_newSurface) {
// appendChild removes the node from this.dragGroup_
opt_newSurface.appendChild(this.getCurrentBlock());
} else {
this.dragGroup_.removeChild(this.getCurrentBlock());
const currentBlockElement = this.getCurrentBlock();
if (currentBlockElement) {
if (opt_newSurface) {
// appendChild removes the node from this.dragGroup_
opt_newSurface.appendChild(currentBlockElement);
} else {
this.dragGroup_.removeChild(currentBlockElement);
}
}
this.SVG_.style.display = 'none';
if (this.dragGroup_.childNodes.length) {
Expand Down

0 comments on commit 769a25f

Please sign in to comment.