diff --git a/js/geo-point.js b/js/geo-point.js index c4f319c3..8c686014 100644 --- a/js/geo-point.js +++ b/js/geo-point.js @@ -194,6 +194,10 @@ var gs_base_point = exports; var c1 = dot(w, v); var c2 = dot(v, v); var b = c1 / c2; + if (isNaN(b)) { + // console.log('nan', {p, l1, l2, v, w, c1, c2}); + b = 0; + } var pb = {x: l1.x + b * v.x, y: l1.y + b * v.y}; return d(p, pb); } diff --git a/js/kiri-print.js b/js/kiri-print.js index a2f9a41c..9002b154 100644 --- a/js/kiri-print.js +++ b/js/kiri-print.js @@ -769,6 +769,13 @@ let gs_kiri_print = exports; // go back to start and try again if (!found) { + if (start === 0 && lastIndex === -1) { + console.log('infinite loop', lines, { + marked, options, i, group, start, lastIndex, + points: lines.map(p => p.index).join(', ') + }); + break; + } start = 0; lastIndex = -1; continue;