From 6020df2e922bdc4eb8f16bf9dc67c4d7ed2bb239 Mon Sep 17 00:00:00 2001 From: Laan Tungir Date: Thu, 16 Jul 2026 11:35:57 -0400 Subject: [PATCH] v0.0.31 - Advanced JS tests: ES Modules, Web Workers, Shared Workers, WebAssembly, cross-origin fetch; Service Worker analysis plan --- README.md | 14 +- VERSION | 2 +- plans/service-workers-on-file.md | 124 +++++++++ src/version.h | 4 +- .../local-site/LOCAL-FILE-BROWSING-REPORT.md | 60 +++++ tests/local-site/advanced.html | 19 ++ tests/local-site/assets/advanced-runner.js | 247 ++++++++++++++++++ tests/local-site/assets/es-module-test.js | 16 ++ tests/local-site/assets/shared-worker-test.js | 18 ++ tests/local-site/assets/sw-test.js | 12 + tests/local-site/assets/worker-test.js | 10 + tests/local-site/index.html | 2 + 12 files changed, 524 insertions(+), 4 deletions(-) create mode 100644 plans/service-workers-on-file.md create mode 100644 tests/local-site/advanced.html create mode 100644 tests/local-site/assets/advanced-runner.js create mode 100644 tests/local-site/assets/es-module-test.js create mode 100644 tests/local-site/assets/shared-worker-test.js create mode 100644 tests/local-site/assets/sw-test.js create mode 100644 tests/local-site/assets/worker-test.js diff --git a/README.md b/README.md index 32827cf..2944e0d 100644 --- a/README.md +++ b/README.md @@ -326,6 +326,16 @@ block local-file web apps. - **Form submissions** — GET forms append query strings to the target page; POST forms navigate (body silently dropped, no server) - **`window.open()`** — opens local pages in new tabs +- **ES Modules** — dynamic `import()` works with local module files +- **Web Workers and Shared Workers** — `new Worker()` and + `new SharedWorker()` with local scripts enable background computation + threads (including cross-tab shared workers) +- **WebAssembly** — `WebAssembly.instantiate()` works for compiled code +- **Cross-origin fetch to remote HTTPS** — `fetch('https://example.com')` + from a `file://` page works with no CORS blocking (confirms the + "deprecated web security" design goal) +- **Cross-origin remote resources** — remote ` + + diff --git a/tests/local-site/assets/advanced-runner.js b/tests/local-site/assets/advanced-runner.js new file mode 100644 index 0000000..b852e95 --- /dev/null +++ b/tests/local-site/assets/advanced-runner.js @@ -0,0 +1,247 @@ +// Advanced JS test runner — writes results to #results as tests complete. +(function () { + var log = []; + function flush() { + var el = document.getElementById('results'); + if (el) el.textContent = log.join('\n'); + } + function add(msg) { + log.push(msg); + flush(); + } + + add('=== Advanced JS Test Start ==='); + add('URL: ' + location.href); + add(''); + + // ── 1. ES Modules ────────────────────────────────────────────── + add('--- ES Modules ---'); + add('Testing