// Browser-only clocks; simulation code stays usable without a browser or a clock. let PERF_MARKS = false, PERF_FRAME = null; const perfMarks = {}, perfTimes = {}, perfLast = {}; for (const name of ['drawWorld', 'computeLight', 'simMove', 'heatPass']) { const original = window[name]; window[name] = function (...args) { if (!SET.showPerf && !PERF_MARKS) return original.apply(this, args); const start = performance.now(); const result = original.apply(this, args); const ms = performance.now() - start; perfLast[name] = ms; if (name !== 'computeLight') perfTimes[name] = (perfTimes[name] || 0) * 0.9 + ms * 0.1; return result; }; }