swiftwasm / swiftwasm/JavaScriptKit
Calling `sleep()` causes `TypeError: can't convert null to BigInt`
Open
Nobody has claimed this yet.
bug
- Dominant language
- Swift
- Stars
- 986
- Forks
- 76
- Avg merge
- 21h 11m
- Merged PRs (30d)
- 4
Description
Title says it. Code:
import Foundation
import JavaScriptKit
print("Before sleep()")
sleep(1000) // wasm bails out
print("After sleep()") // Never happens
Project for the above code: https://github.com/ShonFrazier/swiftwasmsleep
The full error is:
TypeError: can't convert null to BigInt
poll_oneoff webpack:///./node_modules/@wasmer/wasi/lib/index.esm.js?:128
start webpack:///./node_modules/@wasmer/wasi/lib/index.esm.js?:131
startWasiTask webpack:///./entrypoint/dev.js?:92
async* webpack:///./entrypoint/dev.js?:103
js http://127.0.0.1:8181/dev.js:97
__webpack_require__ http://127.0.0.1:8181/dev.js:20
<anonymous> http://127.0.0.1:8181/dev.js:84
<anonymous> http://127.0.0.1:8181/dev.js:87
dev.js:96:11
handleError webpack:///./entrypoint/dev.js?:96
(Async: promise callback)
<anonymous> webpack:///./entrypoint/dev.js?:103
js http://127.0.0.1:8181/dev.js:97
__webpack_require__ http://127.0.0.1:8181/dev.js:20
<anonymous> http://127.0.0.1:8181/dev.js:84
<anonymous> http://127.0.0.1:8181/dev.js:87
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with the linked swiftwasmsleep project and the provided Swift snippet. Start by tracing poll_oneoff in node_modules/@wasmer/wasi/lib/index.esm.js and its call from startWasiTask in entrypoint/dev.js. Done means sleep(1000) completes without the BigInt TypeError and the program prints "After sleep()".
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, swift, wasm
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100