Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

Compile to wasm produces undefined stackAlloc [error]

未關閉
#190 1 則留言 3 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
30/100
Issue 類型
缺陷
描述清晰度
需要釐清
活躍度
停滯
技術堆疊
javascript, sqlite, wasm

研究方向

Start by comparing the wasm/debug flags in Makefile with the generated exports and Module.asm.stackAlloc usage in sql-debug.js. Reproduce the failure using the index.html example and the browser errors; done means the wasm module loads and the Database/SQL example runs without the undefined stackAlloc error.

由索引模型根據 Issue 內容生成。

描述

Hello, I am trying to compile and run using native wasm. I updated Makefile like so:

wasm/debug: EMFLAGS= -O1 -g -s INLINING_LIMIT=10 -s RESERVED_FUNCTION_POINTERS=64 -s WASM=1
wasm/debug: js/sql-debug.js

I'm loading a module into sql-debug.js following the pattern in emscripten generated html output:

here is a gist with a few more details.

errors:

#chrome Version 57.0.2984.0 dev (64-bit)
Uncaught TypeError: Cannot read property 'apply' of undefined
    at Object.Module.stackAlloc (sql-debug.js:6069)
    at sql-debug.js:6388
    at sql-debug.js:7229
    
#firefox 54.0a1 (2017-03-06) (64-bit)
TypeError: Module.asm.stackAlloc is undefined[Learn More]

if stackAlloc is left undefined by doing this in sql-debug.js

//original 
var stackAlloc = Module["stackAlloc"] = function() { return Module["asm"]["stackAlloc"].apply(null, arguments) };

//edit 
var stackAlloc = Module["stackAlloc"] = function() { return Module["stackAlloc"].apply(null, arguments) };

then this is executed in index.html before errors are thrown when stackAlloc is called to execute SQL.

var sql = window.SQL;
 // Create a database
var db = new sql.Database();
// NOTE: You can also use new sql.Database(data) where
// data is an Uint8Array representing an SQLite database file

// Execute some sql
sqlstr = "CREATE TABLE hello (a int, b char);";
sqlstr += "INSERT INTO hello VALUES (0, 'hello');"
sqlstr += "INSERT INTO hello VALUES (1, 'world');"
db.run(sqlstr); // Run the query without returning anything
主要語言
JavaScript
星號
13.7k
分支
1.1k
PR 合併指標
30 天內沒有已合併 PR

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

sql-js/sql.js 的其他 Issue

查看 sql-js/sql.js 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。