/ inside a char classThe js dogenizer's regex-literal rule tracks no character-class state, so an unescaped / inside [...] ends the literal early. The tail then lexes as code, and a quote/backtick in it opens a string that never closes, running the machine to EOF and overflowing the markup buffer — weave.fold throws failed (out full?). Casualty: be/verbs/mark/render.js (its punct rule is such a regex) cannot fold, so jab diff prints nothing for it. DIFF-015 covers the swallow that hides this (the DIFF-014 pointer here was stale — that ticket is the sub-aware wholly-added fix).
Hit while diffing uncommitted work in be/ — diff reported no hunks though status said 2 mod (STATUS-008).
jab diff be/ renders core/loop.js but omits verbs/mark/render.js; jab diff <that file> prints nothing, exit 0.weave.fold(null, blob, "js", id) throws failed (out full?) on the CLEAN committed blob 06f9d7ab (16770 b); cap is 4MB."" and txt, fails with js and c — a lexer defect, not a weave/buffer one.Make JSTLexer tokenise a regex literal whose character class contains /, so render.js folds and diff renders its hunks.
{ re: /[a;/'b]/y, tag: 1 } FAILs; drop the class / → ok; keep it, drop quote → ok./ AND an unterminated string in the tail. Either alone is harmless.render.js:43-shaped: { re: /[[\]()!*_~|\\:.\-+#&<>{}=,;/'"@^]/y, tag: "P" }`.Ragel only — no hand-written byte scanning (abc, stated five times over).
jab/dog/tok/JST.c.rl:103 (the # ---- regex literal ---- rule); regenerate JST.rl.c.beagle/dog/tok/JST.c.rl is the C twin — keep byte-parity or ticket the divergence.Add a char-class sub-machine to the regex-literal rule so a [...] span swallows /.
"/" ( [\\] any8 | "[" ( [\\] any8 | any8 - [\]\\\n] )* "]" | any8 - [/\\\n[] )+ "/" [dgimsuyv]*.ext=c failure is analogous but unconfirmed (likely an unterminated ' char literal) — own ticket if real.{ re: /[a;/'b]/y, tag: 1 } with ext js, assert no throwJST.c.rl regex rule (char-class sub-machine), regeneratejab diff be/verbs/mark/render.js renders hunksbeagle/dog/tok/JST.c.rl twinext=c (CT lexer) analogue → own ticketThe field casualty's wt bytes are uncommitted, but the repro does not depend on them.
render.js wt side (19078 b) is UNCOMMITTED; the FROM blob 06f9d7ab is in the store and fails alone, so tests need no wt.jsrc/views/probe plant under work/DIFFPROBE (disposable, no main-tree edits).-