Skip to content

Audit ExecJS documentation accuracy across new docs pages #2804

@justin808

Description

@justin808

Summary

PR #2785 added several new docs pages covering ExecJS limitations, performance benchmarks, debugging, and client-vs-server rendering. Bot reviewers raised several valid concerns about ExecJS technical accuracy that require research to resolve properly. These were deferred from #2785 to avoid an endless review cycle on a docs PR.

Items to investigate

  1. ExecJS runtime auto-detection — Multiple docs state "By default, ExecJS uses the Node.js runtime." However, ExecJS auto-detects via best_available and picks mini_racer/Bun before Node if installed. Verify and clarify across:

    • docs/oss/core-concepts/execjs-limitations.md:9
    • docs/oss/core-concepts/client-vs-server-rendering.md:7
  2. ExecJS-on-Node process modeldocs/oss/core-concepts/performance-benchmarks.md:13 describes ExecJS-on-Node as "Persistent subprocess via IPC" but ExecJS's ExternalRuntime may shell out per evaluation. Verify the actual architecture.

  3. Timer polyfill behaviordocs/oss/building-features/debugging.md:68 says users will see setTimeout is not defined errors, but RubyEmbeddedJavaScript#execjs_timer_polyfills stubs these as silent no-ops. Clarify the actual failure mode.

  4. SSR timing logging claimdocs/oss/core-concepts/performance-benchmarks.md:110 says "Server render time" is "logged by React on Rails when logging_on_server is enabled." But logging_on_server replays console messages, not render durations. Clarify what metrics are actually available.

  5. pool_size constraint scopedocs/oss/core-concepts/execjs-limitations.md:108 says pool_size=1 is required on MRI for all ExecJS runtimes. This may only apply to mini_racer (V8 holds the GVL). With Node.js ExternalRuntime, rendering runs in a subprocess. Narrow the claim if appropriate.

Context

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions