Javascript 在犀牛身上喝咖啡?

Javascript 在犀牛身上喝咖啡?,javascript,coffeescript,rhino,coffeekup,Javascript,Coffeescript,Rhino,Coffeekup,我想让CoffeeKup使用Mozilla的Rhino引擎。到目前为止运气不太好。我正在尝试这个简单的模板: templates ?= {} templates.first = -> doctype 5 html -> head -> title "#{@title}" body -> h1 "#{@hello}" 然后我尝试使用 CoffeeKup.render(templ

我想让CoffeeKup使用Mozilla的Rhino引擎。到目前为止运气不太好。我正在尝试这个简单的模板:

templates ?= {}
templates.first = ->
    doctype 5
    html ->
        head ->
            title "#{@title}"
        body ->
            h1 "#{@hello}"
然后我尝试使用

CoffeeKup.render(templates.first, {title: 'Say Hello', hello: 'Hello World!'});
但它在这方面失败了:

org.mozilla.javascript.EcmaError: SyntaxError: invalid return (CoffeeKup#304(Function)#230)
在coffeekup.coffee的Javascript版本中,第304行是:

return new Function('data', code);
第230行(最后一行)是:


有什么看起来不寻常的地方吗?或者这可能是Rhino的bug吗?

如果它在Node/V8+浏览器上工作,但在Rhino上不工作,您可以相当肯定它是Rhino特有的(但不一定是错的)。在上面较长的注释中,它表示它将在节点或浏览器上运行,因此最有可能的情况就是这样


要真正了解出了什么问题,您需要一个调试器,在那里您可以逐步完成代码(我不知道如何在Rhino上完成这项工作,可能是通过Eclipse,或者即使您手头有所有源代码并且非常精通Java)。如果你发现一些合理的琐事,试着提交一份申请,但咖啡馆在过去几个月似乎没有看到太多的活动。若您准备接受一个挑战、fork、fix和pull请求。

您确定您链接的代码在节点中工作吗?它给了我一个“…”的第二个提示,好像它在等待更多的输入,它在Spidermonkey中也抛出了一个SyntyxError。我没有使用Node,所以没有。但即使在我看来它很好,也不意味着那里没有一个微妙的bug。如果您简化它或进行任何修改,您是否能够让Node使用它?我创建了此警报,当在Firefox中查看它时,警报包含以下内容:
说HelloHello World,因此代码看起来很好。
).call(data);return __ck.buffer.join('');