diff options
| author | Agando <roduccomm@gmail.com> | 2026-10-29 12:13:33 +0100 |
|---|---|---|
| committer | Agando <roduccomm@gmail.com> | 2026-10-29 12:13:33 +0100 |
| commit | 5178cea00a841b5fa57db2235b5163e271c8a762 (patch) | |
| tree | bf09a636704a91d2e9a9f744869951a3e993855e /modules/core/virtual-fs.js | |
| parent | cc9d0e34b9280b05fa4428d59c8dc16311091758 (diff) | |
fix(newos4): js console handles promise rejections + Node-builtin hint (v4.6.128)
evalJS() evaluated the expression bare and printed JSON.stringify(result), so a
rejected thenable (e.g. `js import('fs')`) became `{}` on screen while the rejection
escaped to window.onunhandledrejection and was auto-filed as a runtime bug report
(RPT-20261028-172211-9c7f2adb, cluster 480x). evalJSFile() already had .then/.catch —
the asymmetry was the defect.
- modules/ext/console.js: thenable branch in evalJS() awaits and catches; new
_printError() is the single error sink for all four catch paths and appends a hint
when a bare specifier fails to resolve ("'fs' is a Node built-in; the browser has no
Node — use the VFS (ls/cat/run, terminal.fs) instead").
- help.html: js / js-run rows say "browser only — no Node built-ins".
- module-loader.js + main.html: v4.6.128.
Verification (/tmp/test-console-fs.js, 11 asserts, new Function harness over the module):
GREEN 11/11 — rejection prints one red error + hint, no unhandledRejection; resolved
thenable prints its value; sync value/throw unchanged; js-run file + missing file OK.
RED 4/11 against .bkp-console-20261029_121243/console.js — A1/A2/A3 print `{}`,
A4/G2 leak "Failed to resolve module specifier 'fs'".
node --check modules/ext/console.js → OK.
console.js is loaded separately via extKeys (not in critical-ext-bundle.js), so no bundle
rebuild — proven by `grep -c JSConsoleModule modules/ext/critical-ext-bundle.js` = 0.
Consumes STEER-20261028-195043-8084. Plan: .hermes/plans/2026-10-29_063000-newos4-js-console-fs-specifier.md
Diffstat (limited to 'modules/core/virtual-fs.js')
0 files changed, 0 insertions, 0 deletions