async/await, catch{} without binding, and ?? are all syntax errors in
Safari 9 (iOS 9). A single syntax error prevents the entire script from
parsing, so connect() never ran — explaining 'nicht verbunden'.
Removed / replaced every incompatible construct:
- async/await → .then()/.catch() Promise chains
- catch {} → catch(_e) {} (optional catch binding is ES2019)
- ?? → explicit != null ternary (nullish coalescing is ES2020)
- padStart() → pad2() helper (String.prototype.padStart is ES2017,
not available in iOS < 10)
- scrollIntoView({block,behavior}) → scrollIntoView(true) (options
object not supported in iOS 9, boolean form works everywhere)
Template literals, arrow functions, const/let, forEach, classList,
dataset, Promise, WebSocket, Canvas, performance.now() and
requestAnimationFrame are all fine in iOS 9.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>