From e8b85c869f8ed1a2e626f60c218c36121c49ec4e Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Fri, 22 Apr 2022 07:57:29 +0200
Subject: [PATCH] Add a temporary patch for so far unexplained bug

---
 base_rules.js | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/base_rules.js b/base_rules.js
index 6efce02..e987492 100644
--- a/base_rules.js
+++ b/base_rules.js
@@ -2189,7 +2189,9 @@ export default class ChessRules {
   playVisual(move, r) {
     move.vanish.forEach(v => {
       if (!this.enlightened || this.enlightened[v.x][v.y]) {
-        this.g_pieces[v.x][v.y].remove();
+        // TODO: next "if" shouldn't be required
+        if (this.g_pieces[v.x][v.y])
+          this.g_pieces[v.x][v.y].remove();
         this.g_pieces[v.x][v.y] = null;
       }
     });
@@ -2242,6 +2244,11 @@ export default class ChessRules {
     const dropMove = (typeof i1 == "string");
     const startArray = (dropMove ? this.r_pieces : this.g_pieces);
     let startPiece = startArray[i1][j1];
+    // TODO: next "if" shouldn't be required
+    if (!startPiece) {
+      callback();
+      return;
+    }
     let chessboard =
       document.getElementById(this.containerId).querySelector(".chessboard");
     const clonePiece = (
-- 
2.44.0