我已经通过跟随this在mac上构建了spidermonkey。在build-release / dist / bin下,可执行文件是js24而不是js(符合this)。
然而,当我使用js24运行shell时,像1 + 2这样的表达式正在运行,但是当我尝试像setTimeout(function(){},500这样的东西时,我得到了,
ReferenceError: setTimeout is not defined
我做错了什么?我认为行为与节点shell相同。
答案 0 :(得分:2)
将评论中的优秀答案保存为实际答案,以便将此问题标记为已回答。
setTimeout不是JavaScript语言的一部分,它是浏览器window
对象的一部分,它是网页JavaScript代码的全局对象:https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout
node.js有一个类似的API:http://nodejs.org/docs/latest/api/timers.html#timers_settimeout_callback_delay_arg
要在SpiderMonkey中实现setTimeout,您可以使用以下代码: https://gist.github.com/kevinoid/3146420