code: function forEachCodeMirror(f) {
    if (!document.getElementsByClassName) return
    let byClass = document.getElementsByClassName("CodeMirror"), editors = []
    for (let i = 0; i < byClass.length; i++) {
      let cm = byClass[i].CodeMirror
      if (cm) editors.push(cm)
    }
    if (editors.length) editors[0].operation(() => {
      for (let i = 0; i < editors.length; i++) f(editors[i])
    })
  }
docs: These must be handled carefully, because naively registering a handler for each editor will cause the editors to never be garbage collected.