swiftwasm / swiftwasm/JavaScriptKit
Calling `sleep()` causes `TypeError: can't convert null to BigInt`
オープン
まだ誰も着手していません。
bug
- 主要言語
- Swift
- スター
- 986
- フォーク
- 76
- 平均マージ
- 21時間 11分
- マージ済み PR(30日)
- 4
説明
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
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
リンクされた swiftwasmsleep プロジェクトと提供された Swift スニペットを使って失敗を再現します。まず、node_modules/@wasmer/wasi/lib/index.esm.js の poll_oneoff と、entrypoint/dev.js の startWasiTask からのその呼び出しを追跡します。sleep(1000) が BigInt TypeError なしで完了し、プログラムが "After sleep()" を出力すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, swift, wasm
- 領域
- operating-systems
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100