JS_CallFunction does not support closures in SpiderMonkey versions earlier than 1.8. Test case: elinks.keymaps.main["\""] = function() { elinks.keymaps.main["e"] = function() { elinks.alert("hello!"); }; }