ron.now / ron.of / ron.date
JSC provides Date (wall-clock), but beagle's ron60 time encoding (ULOG ts fields) and the be log relative-date format aren't reachable from JS. Bind the small leaves + JS sugar on the ron object. Method: Issues.
ron.encode/decode (js/codec.cpp) already do ron60↔BigInt, but NOT the
time interpretation — you can't read a ULOG ts as a date.
RONNow(), RONOfTime(ron60*, tm, ms),
RONToTime(ron60, tm, ms) (abc/RON.h:104/45/48); DOGutf8sFeedDate(into, ts, now) (dog/DOG.h:719) — the 12:34/Tue/01Jan relative formatter.
be log/be status timestamps as the dogs do.ron.now() → current ron60 (BigInt).ron.of(x) → ron60 from a JS Date or a ms-epoch int.ron.date(ronval) → relative-date string (DOGutf8sFeedDate).ron._now/_ofMs/_date);
extend the existing ron object in codec.cpp (a small JABCExecute bundle like uri.cpp's). ron60 crosses as BigInt; no held refs (rule #4).
ron.of coerces Date→getTime(); localtime alignment matches RONNow.ron._date computes now via time(NULL) itself (RONToTime→mktime→secs →
DOGutf8sFeedDate). Needs #include "dog/DOG.h" in codec.cpp.
_now, _ofMs, _date) + JS now/of/date
sugar; now may bind directly. of is the only one needing JS (Date coerce).
ron.now() is a BigInt; ron.of(new Date(t)) === ron.of(t)
(ms int); ron.date(ron.now()) is a non-empty string; a known ULOG ts formats like be log. Red before, green after.
ron; doc in INDEX.md / API.md.78edd840 (2026-06-21): 3 native leaves in codec.cpp — ron._now
(RONNow), ron._ofMs (localtime_r+RONOfTime), ron._date (RONToTime→mktime→DOGutf8sFeedDate) + a JABC_RON_JS sugar bundle → ron.now() / ron.of(Date|ms) / ron.date(ron60) (BigInt). ron60 spans 2000–2099 (RONOfTime YY field) — ron.of THROWS outside it (documented, inherent to the encoding). Rows in jabc_test.cpp + new js/test/codec.js (JABCcodec) red→green; ctest -R JABC 18/18, ASAN/LSan clean.