DOG-021: JST regex literal ends at a / inside a char class

Now
OPEN
Sev
HIGH

The 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).

Input

Context

Hit while diffing uncommitted work in be/ diff reported no hunks though status said 2 mod (STATUS-008).

Goals

Make JSTLexer tokenise a regex literal whose character class contains /, so render.js folds and diff renders its hunks.

Constraints

Ragel only no hand-written byte scanning (abc, stated five times over).

WIP

Design decisions

Add a char-class sub-machine to the regex-literal rule so a [...] span swallows /.

TODOs

Blockers and bummers

The field casualty's wt bytes are uncommitted, but the repro does not depend on them.

Outcome

-