Investigation scaffolding for the Chrome-only KiCad coroutine renderer crash.
Adds isolated reproduction probes exercising the coroutine/Asyncify/fiber layer
under KiCad-like conditions, runnable in BOTH Firefox and system Chrome.
- tests/playwright-coroutine.config.ts + test:coroutine:firefox|chrome npm
scripts: run the coroutine specs in Firefox AND system Chrome (the old e2e
config only used bundled Chromium, which never reproduced the crash).
- tests/apps/standalone/coroutine-pthread/: no-wx + pthreads reproduction probes
(fiber-in-main, nested invoke_/dynCall boundaries, RunMainStack, embind,
main-loop/rAF activation) + worker_dom_stub.js for wx+pthreads builds.
- tests/apps/Makefile.wasm: coroutine-pthread{,-main,-nested,-nested-ex,-wx,
-embind,-mainloop} targets.
- scripts/common/shims/diagnostics.js: add EM_ASYNC_JS handleSleep enter/wake
tracking (DIAG_SLEEP) to detect nested-async at the crash.
Findings (details in research notes): every isolated factor so far — direct /
nested / RunMainStack fiber, wx event loop + all 13 scenarios incl EM_ASYNC_JS,
pthreads, and main-loop/rAF activation — runs CLEAN in system Chrome. The
coroutine/Asyncify layer is exonerated; GL/WebGL is the remaining untested factor
(next). The reliable FF-pass/Chrome-fail repro is still the KiCad pcbnew e2e.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
62 lines
980 B
Text
62 lines
980 B
Text
# Build directories
|
|
build/
|
|
build-*/
|
|
cmake-build-*/
|
|
|
|
# IDE
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# Compiled objects
|
|
*.o
|
|
*.obj
|
|
*.a
|
|
*.so
|
|
*.dylib
|
|
*.dll
|
|
|
|
# WebAssembly output (but not Makefiles that end in .wasm)
|
|
*.wasm
|
|
!Makefile.wasm
|
|
*.js.map
|
|
*.wasm.map
|
|
|
|
# macOS
|
|
.DS_Store
|
|
|
|
# Emscripten cache
|
|
.emscripten_cache/
|
|
|
|
# Local emsdk installation (managed by scripts/setup-emsdk.sh)
|
|
/tools/emsdk/
|
|
|
|
# Clean clone for reproducible builds (generated by build-wxwidgets-wasm-clean.sh)
|
|
wxwidgets-clean/
|
|
|
|
# Test artifacts
|
|
/tests/node_modules/
|
|
/tests/playwright-report/
|
|
/tests/test-results/
|
|
/tests/.test-port
|
|
/test-results/
|
|
/tests/apps/*.js
|
|
/tests/apps/*.html
|
|
/tests/apps/minimal_test.wasm
|
|
/tests/apps/standalone/*/*.js
|
|
/tests/apps/standalone/*/*.html
|
|
/tests/apps/standalone/*/*.wasm
|
|
/tests/apps/kicad/*.js
|
|
/tests/apps/kicad/*.wasm
|
|
/tests/apps/kicad/*.tar.gz
|
|
!tests/apps/kicad/pcbnew.html
|
|
/tests/apps/gal-webgl/*.js
|
|
/tests/apps/gal-webgl/*.wasm
|
|
/temp/
|
|
*.log
|
|
*.tmp
|
|
output/
|
|
*.d
|
|
/tests/.test-port-coroutine
|