Skip to content

Pyodide initialization fails on 360 Extreme Browser and QQ Browser with "invalid value type 'externref'" #49

Description

@loadingoooooo

Description

WebCHIRP works correctly in Chrome, Edge, Opera and Firefox, but fails to initialize in both:

  • 360 Extreme Browser X
  • QQ Browser

The failure occurs before any radio driver is loaded.

Expected behavior

The radio catalog should load normally.

Actual behavior

Initialization fails and the UI remains disabled.

Debug output eventually reports:

CompileError: WebAssembly.instantiateStreaming():
invalid value type 'externref',
enable with --experimental-wasm-reftypes

The stack trace points to:

emscripten-settings.ts
pyodide.asm.js
loadPyodide()

Another error seen during debugging is:

TypeError:
WebAssembly.Table.set():
Argument 1 is invalid for table:
function-typed object must be null (if nullable)
or a Wasm function object

Environment

Windows 10 1809

360 Extreme Browser X

Chromium 132
V8 13.2

QQ Browser (latest version)

Chrome, Edge, Opera and Firefox all work correctly on the same machine.

What has already been tested

  • Official demo (https://codeplug.org/) shows the same behavior.
  • Self-hosted build shows the same behavior.
  • All Pyodide resources download successfully:
    • pyodide.asm.wasm
    • pyodide.asm.js
    • python_stdlib.zip
    • pyodide-lock.json
  • Network requests return HTTP 200.
  • Web Serial is not the cause (other Web Serial applications work in these browsers).
  • Changing chirpRevision has no effect.
  • Downgrading the CDN reference from Pyodide 0.27.2 to 0.26.4 did not change the error.

Question

Is WebCHIRP currently expected to require WebAssembly Reference Types (externref)?

Is support for browsers like 360 Extreme Browser / QQ Browser intentionally dropped, or is this an unintended compatibility issue?

If this is expected behavior, would it be possible to provide a compatibility build that does not require externref?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions