Skip to content

fix: disable QuickJS javascript feature in WASM backend - #37

Merged
AndrewAltimit merged 2 commits into
mainfrom
fix/wasm-disable-quickjs
Feb 27, 2026
Merged

fix: disable QuickJS javascript feature in WASM backend#37
AndrewAltimit merged 2 commits into
mainfrom
fix/wasm-disable-quickjs

Conversation

@AndrewAltimit

Copy link
Copy Markdown
Owner

Summary

  • The javascript feature was enabled for oasis-backend-wasm, pulling in rquickjs-sys which requires clang to cross-compile QuickJS C code for wasm32-unknown-unknown
  • The GitHub Pages deploy job runs on the self-hosted runner directly (not in Docker), where clang is not installed
  • Removes the javascript feature from the WASM backend's oasis-core dependency -- QuickJS remains enabled for the SDL desktop backend via oasis-app

Root cause

PR #35 (JavaScript engine) added features = ["javascript"] to oasis-backend-wasm/Cargo.toml. This was fine for native builds but broke the WASM build since rquickjs-sys needs a C cross-compiler (clang) that isn't available in the Pages deploy environment.

Test plan

  • cargo check -p oasis-backend-wasm passes without the feature
  • cargo clippy --workspace -- -D warnings clean
  • cargo test --workspace passes
  • CI: GitHub Pages deploy should succeed

Generated with Claude Code

rquickjs-sys requires clang to cross-compile QuickJS C code for
wasm32-unknown-unknown, which is not available in the GitHub Pages
deploy environment. The javascript feature (oasis-js/QuickJS) remains
enabled for the SDL desktop backend via oasis-app.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Codex AI Code Review

Issues (if any)

(none)

Previous Issues (for incremental reviews)

(none)

Suggestions (if any)

  • crates/oasis-backend-wasm/Cargo.toml:14 - Add a short comment explaining why javascript is intentionally not enabled for WASM (rquickjs-sys/clang toolchain requirement) to reduce accidental reintroduction.

Notes

  • Verified the changed line exists at crates/oasis-backend-wasm/Cargo.toml:14.
  • Verified feature gating is effective: oasis-core and oasis-browser both use default = [], so QuickJS is only included when explicitly requested.
  • cargo check -p oasis-backend-wasm completes successfully with this change.

Reaction


Generated by Codex AI (gpt-5.3-codex). Supplementary to human reviews.

Prevents accidental reintroduction of the `javascript` feature flag,
which requires clang for cross-compiling QuickJS to wasm32.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@AndrewAltimit

Copy link
Copy Markdown
Owner Author

Review Response Agent (Iteration 1)

Status: No changes needed

Fixed Issues

  • Added a comment in crates/oasis-backend-wasm/Cargo.toml explaining why the javascript feature is intentionally omitted for the WASM backend (Codex suggestion — prevents accidental reintroduction)

Ignored Issues

  • None — Codex found zero actual issues

Deferred to Human

  • None

Notes

  • Gemini review failed entirely due to a transient network error (API fetch failed) — no feedback was produced
  • Codex review found no issues; its only suggestion was the preventive comment, which has been applied
  • cargo check -p oasis-backend-wasm passes after the change

The agent reviewed feedback but determined no code changes were required.

@github-actions

Copy link
Copy Markdown

Gemini AI Code Review

Issues (if any)

(none)

Previous Issues (for incremental reviews)

(none)

Suggestions (if any)

(none)

Notes

  • The removal of the javascript feature correctly resolves the clang dependency requirement for rquickjs-sys on the wasm32-unknown-unknown target.
  • The addition of the explanatory comment is an excellent safeguard to prevent future regressions where the feature might be accidentally re-enabled.
  • The fix aligns perfectly with the PR description and effectively solves the GitHub Pages CI deployment issue.

Reaction


Generated by Gemini AI (gemini-3.1-pro-preview). Supplementary to human reviews.

@github-actions

Copy link
Copy Markdown

Codex AI Incremental Review

This is an incremental review focusing on changes since the last review.

Issues (if any)

(none)

Previous Issues (for incremental reviews)

(none)

Suggestions (if any)

(none)

Notes

  • crates/oasis-backend-wasm/Cargo.toml:14 now documents why javascript is intentionally omitted for WASM, preventing accidental reintroduction.
  • crates/oasis-backend-wasm/Cargo.toml:16 uses oasis-core = { workspace = true }, which correctly avoids pulling QuickJS into the WASM backend.
  • cargo check -p oasis-backend-wasm passes with the updated dependency configuration.

Reaction


Generated by Codex AI (gpt-5.3-codex). Supplementary to human reviews.

@AndrewAltimit

Copy link
Copy Markdown
Owner Author

Review Response Agent (Iteration 2)

Status: No changes needed

Fixed Issues

  • None needed — both Gemini and Codex incremental reviews found zero issues

Ignored Issues

  • None — no issues were raised

Deferred to Human

  • None

Notes

  • Gemini's latest review confirms the fix is correct and the comment is a good safeguard against regressions
  • Codex's latest incremental review confirms cargo check -p oasis-backend-wasm passes and the dependency configuration is correct
  • The only previous suggestion (explanatory comment on line 14) was already applied in iteration 1
  • No code changes required for this iteration

The agent reviewed feedback but determined no code changes were required.

@AndrewAltimit
AndrewAltimit merged commit fb90140 into main Feb 27, 2026
7 checks passed
@AndrewAltimit
AndrewAltimit deleted the fix/wasm-disable-quickjs branch February 27, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant