2

我正在尝试让 CoffeeKup 与 Mozilla 的 Rhino 引擎一起工作。到目前为止没有多少运气。我正在尝试这个简单的模板:

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

我将其编译成 Javascript,然后尝试使用

CoffeeKup.render(templates.first, {title: 'Say Hello', hello: 'Hello World!'});

但它失败了:

org.mozilla.javascript.EcmaError: SyntaxError: invalid return (CoffeeKup#304(Function)#230)

在 Javascript 版本的 coffeekup.coffee 中,第 304 行是这样的:

return new Function('data', code);

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

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

有没有什么不寻常的地方,或者这可能是一个犀牛虫?

4

1 回答 1

1

如果它适用于 Node/V8 + 浏览器但不适用于 Rhino,您可以相当肯定它是 Rhino 特有的东西(虽然不一定是错误的)。在coffeekup.coffee顶部的较长评论中,它说它将在 Node 或浏览器上运行,所以很可能是这种情况。

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

于 2012-01-03T11:31:23.087 回答