io.readdir (dir-marked + callback-directed + recursive)
io exposes stat (kind incl. "dir") but no way to LIST a directory, so a JS utility cannot walk a tree, glob, or scan a worktree. The abc leaf already exists. Method: Issues.
js/io.cpp has open/close/stat/read/write/mmap but no listing (verified: grep readdir/scandir in io.cpp → none).abc/FILE.h:242 FILEScanDir(path8bp, path8f, void0p) already wraps the syscall — a bindable leaf, no new abc work.be status review: the worktree scan, any require- style resolver, and most CLI tools need a dir listing.io.readdir(path) → string[], one level, *dirs marked with a trailing /*; hidden (dot) entries skipped by default."more"/"enough"/"recur"); an OBJECT is options.{recursive, callback, hidden}: recursive:true auto-descends (flat array, or cb per entry); callback:fn = the directed cb; hidden:true includes dotfiles (default skip).FILEScanDir / FILEDeepScanDir (path8f = ok64(*)(void0p, path8p)); a C trampoline runs cb synchronously in-frame, never stashed (rule #4); a cb throw aborts + propagates.typeof === "function" → callback form; an object → options (with optional callback). recursive:true uses FILEDeepScanDir; a per-entry "recur" (non-recursive) nests FILEScanDir.hidden:false (default) skips basenames starting . (./.. already dropped by FILEScan). Dir-ness from the trailing / per entry. No ptr arith.{recursive, callback, hidden} is the superset; bare-fn is sugar for {callback:fn}. Emitted paths stay root-relative (cb sees sub/child).enough early-stop, recur/recursive reach the child, and hidden default-skips the dotfile (present when hidden:true). Red→green.60194418 (2026-06-21): polymorphic io.readdir(path, arg) — absent → 1-level string[] (dirs marked /, dotfiles skipped); a function → directed cb (more/enough/recur); an object {recursive, callback, hidden} → superset (recursive→FILEDeepScanDir; hidden:false prunes dotfiles + hidden dirs via FILESKIP; recur no-op under recursive). 19 rows red→green; ctest -R JABC 18/18, ASAN/LSan clean; --force past the benign INDEX.md marker.