2

Mozilla の Rhino エンジンで CoffeeKup を動作させようとしています。これまでのところあまり運がありません。私はこの単純なテンプレートを試しています:

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);

230code行目 (最後の行) は次のとおりです。

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

何かおかしくないですか、それとも Rhino のバグですか?

4

1 に答える 1

1

Node/V8 + ブラウザーでは機能するが、Rhino では機能しない場合は、Rhino に固有のものであると確信できます (ただし、必ずしも間違っているわけではありません)。coffeekup.coffeeの上部にある長いコメントには、Node またはブラウザーで実行されると記載されているため、その可能性が最も高いです。

何が問題なのかを本当に知るには、コードをステップ実行できるデバッガーが必要です (Rhino でそれを行う方法がわかりません。すべてのソースが手元にあり、Java に非常に精通している場合は、おそらく Eclipse またはjdbを介して行うこともできます)。 )。かなり些細なことを見つけた場合は、問題を報告してみてください。ただし、CoffeeKup はここ数か月あまり活動していないようです。挑戦したい場合は、フォーク、修正、プルリクエストを行ってください。

于 2012-01-03T11:31:23.087 に答える