Open TomWoodward opened 1 year ago
Hey, can you try disable enableProxy
and check if the issue persists?
looks like that does fix it
node << EOF
> new (require("wasmoon").LuaFactory)().createEngine({enableProxy:false}).then(lua => { lua.global.set('identity', x => x); lua.doString("obj=identity({print_me='foobar',dont_print_me='foobar'}); obj.dont_print_me=nil; for k,v in pairs(obj) do print(k); end") });
> EOF
print_me
i saw some other issues mentioning these config options, but no documentation describing what they do. is there some somewhere?
closing because the enableProxy:false
was the solution here, but i would suggest some more documentation for these options.
also, you might consider disabling the proxy by default, because it really causes some issues in otherwise valid LUA code
i saw some other issues mentioning these config options, but no documentation describing what they do. is there some somewhere?
No, I'm very bad at documenting (PRs welcome)
also, you might consider disabling the proxy by default, because it really causes some issues in otherwise valid LUA code
Actually I think this issue specifically can be a bug and not a expected behaviour of proxying. I will reopen to check this later.
in a normal lua environment, my understanding is that the normal way to remove a key from a hash is to set its value to nil, like this:
prints only the one key
in wasmoon it works the same with no interop
prints only the one key
but if i interop at all with js i get both keys
gets both keys
i'm experiencing a bunch of bugs because in normal code you never expect looping over
pairs
to return null values, but with wasmoon it does in this case. is there something i can do to fix this?using
wasmoon@1.15.0