chiark / gitweb /
script: Add new check_z_order arrangement
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 9 Jul 2021 21:26:19 +0000 (22:26 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 10 Jul 2021 10:45:31 +0000 (11:45 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
jstest/jst-lower.rs
templates/script.ts

index 26a24baf550ffcb607d94ab85927907ad0725c9f..19982753903ffa3d8ea704bf2e775cf0a3458d72 100644 (file)
@@ -2,8 +2,6 @@
 // SPDX-License-Identifier: AGPL-3.0-or-later
 // There is NO WARRANTY.
 
-// (function(){ let s = pieces_marker; let last_z=""; for (;;) { s = s.nextElementSibling; if (s == defs_marker) break; let piece = s.dataset.piece; let z = pieces[piece].z; console.log(piece, z, z >= last_z); last_z = z;} })();
-
 use otter_nodejs_tests::*;
 
 pub type Vpid = VisiblePieceId;
index ccf82d011909ad4d5947657ea69dc1a90882c195..8af7e9ebe3aa786bfa00d86c5279ba624cb0b03c 100644 (file)
@@ -1853,6 +1853,24 @@ function piece_set_zlevel(piece: PieceId, p: PieceInfo,
   }
   if (ins_before != p.uelem)
     space.insertBefore(p.uelem, ins_before);
+
+  check_z_order();
+}
+
+function check_z_order() {
+  if (!otter_debug) return;
+  let s = pieces_marker;
+  let last_z = "";
+  for (;;) {
+    s = s.nextElementSibling as SVGGraphicsElement;
+    if (s == defs_marker) break;
+    let piece = s.dataset.piece!;
+    let z = pieces[piece].z;
+    if (z < last_z) {
+      json_report_error(['Z ORDER INCONSISTENCY!', piece, z, last_z]);
+    }
+    last_z = z;
+  }
 }
 
 function piece_note_moved(piece: PieceId, p: PieceInfo) {
@@ -2121,6 +2139,7 @@ function startup() {
     e.stopPropagation();
   }, true);
   document.addEventListener('keydown',   some_keydown);
+  check_z_order();
 }
 
 declare var wasm_input : any;