在Rhino上运行CoffeeKup?

时间:2012-01-02 13:17:30

标签: javascript coffeescript rhino coffeekup

我试图让CoffeeKup与Mozilla的Rhino引擎合作。到目前为止运气不大。我正在尝试这个简单的模板:

templates ?= {}
templates.first = ->
    doctype 5
    html ->
        head ->
            title "#{@title}"
        body ->
            h1 "#{@hello}"

compile into Javascript然后尝试使用

进行渲染
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);

code第230行(最后一行)是这样的:

).call(data);return __ck.buffer.join('');

有什么看起来与众不同还是这可能是一个犀牛虫?

1 个答案:

答案 0 :(得分:1)

如果它适用于Node / V8 +浏览器但不适用于Rhino,你可以相当确定它是特定于Rhino的东西(尽管不一定是错误的)。在coffeekup.coffee顶部的较长评论中,它表示它将在Node或浏览器上运行,因此最有可能出现这种情况。

要真正知道出了什么问题,你需要一个调试器来逐步完成代码(我不知道如何在Rhino上执行此操作,可能通过Eclipse或甚至{{3如果你手头有所有资源并且非常精通Java)。如果你发现一些合理的事情,请尝试提交jdb,但过去几个月里,CoffeeKup似乎没有看到太多活动。如果您正在接受挑战,请分叉,修复并提取请求。