diff --git a/src/nvim/lua/treesitter.c b/src/nvim/lua/treesitter.c index 03f472dd51..dae9e88ee6 100644 --- a/src/nvim/lua/treesitter.c +++ b/src/nvim/lua/treesitter.c @@ -384,7 +384,14 @@ static int tslua_push_parser(lua_State *L) #ifdef HAVE_WASMTIME if (ts_language_is_wasm(lang)) { assert(wasmengine != NULL); - ts_parser_set_wasm_store(*parser, ts_wasmstore); + TSWasmError werr = { 0 }; + TSWasmStore *store = ts_wasm_store_new(wasmengine, &werr); + if (werr.kind != TSWasmErrorKindNone) { + ts_parser_delete(*parser); + return luaL_error(L, "Failed to create WASM store: (%s) %s", + wasmerr_to_str(werr.kind), werr.message); + } + ts_parser_set_wasm_store(*parser, store); } #endif