問題タブ [spidermonkey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
350 参照

firefox - firefox 5 でカスタム SpiderMonkey ビルドを使用する

Windows マシンで firefox 5 を使用して (学術研究用に) コンパイルした SpiderMonkey をビルドして使用しようとしていますが、firefox を実行しようとすると、「mozjs.dll に JS_InitCTypesClass 関数がありません」というエラーが表示されます。

SpiderMonkey コードをダウンロードし、MozillaBuild を使用して (変更なしで) ビルドしました。新しい DLL を firefox ディレクトリにコピーし (DLL 名を mozjs.dll に変更)、firefox を実行しようとしました。この時点で、私が書いたエラーが発生しました。

また、export function viewer で確認したところ、元の mozjs.dll には 777 個のエクスポート関数があるのに対し、私がコンパイルしたものには 771 個の関数しかないので、実際には関数が欠落していると思います。

カスタム SpiderMonkey を構築して FF5 で使用するにはどうすればよいですか?

助けてくれてどうもありがとう!

0 投票する
2 に答える
122 参照

javascript - スパイダーモンキーへの配管が正しく機能していません

最新バージョンのSpidermonkey(JavaScript-C 1.8.5+ 2011-04-16)をインストールしましたが、答えを知っているかもしれない奇妙な癖に気づきました。

過去に、私がした場合:

結果は次のように返されます。

ただし、同じコマンドを実行すると、返される出力は次のようになります。

ご覧のとおり、出力は1行ではなく3行です。

通常、これは問題にはなりませんが、この例外を処理していない特定のCMSを使用しているため、エラーが発生します。

回避策はありますか?古いバージョンをインストールする必要がありますか?

PS Spidermonkeyにはインラインコードを実行するための"e"(つまり、js -e "print('hi')")のオプションがあることを理解していますが、ここでも、使用しているCMSはそのようには機能しません:\

0 投票する
1 に答える
181 参照

firefox - spidermonkeyのバイトコードに含まれる不明なオペコード

私は学術研究のためにspidermonkeyのバイトコードをチェックしてきました。このファイルからバイトコードリストを取得しました:http://mxr.mozilla.org/mozilla-central/source/js/src/jsopcode.tbl#106

Webサイトをチェックアウトし、そのバイトコードを調べ始めたとき、tblファイルにない少なくとも3つのオペコードがあることに気付きました:236、240、235(これは私がこれまでに見つけたものです)。

誰もそれらが何を意味するのかわかりません、またはいつ私はより完全なtblファイルを見つけることができますか?

ありがとう!:-)

0 投票する
1 に答える
1166 参照

javascript - Chromeで提供されるV8JavaScriptエンジンの変更

Chromeで提供されるV8JSエンジンでは通常サポートされない新しいAPIのサポートが必要です。Chromeに付属のV8を微調整することでこれを行うことは可能ですか?

Firefoxに付属しているSpidermonkeyを使用することにオープンです。このAPIを人気のあるブラウザでサポートしたいだけです。

私はグーグルフォーラムとここで答えを探してみましたが、それらのほとんどはV8の埋め込みについて話します。

0 投票する
2 に答える
601 参照

javascript - JavaScriptコードから文字列を抽出する

C ++アプリケーションに埋め込まれたSpiderMonkeyを使用して、JavaScriptコードからすべての文字列を抽出したいと思います。JavaScriptコードは次のようになります。

C++コードは次のようになります。

だから私の質問は、SpiderMonkeyがJavaScriptを実行した後、変数バーから文字列を抽出して(抽出された値は「何か美しい」はずです)、通常のC ++コードで使用するにはどうすればよいですか?最初にスクリプトを評価してから、JavaScript変数から文字列を抽出する必要があると思います。SpiderMonkeyを使用して文字列を抽出する方法がわかりません。

私の2番目の質問:
http
://siliconforks.com/doc/parsing-javascript-with-spidermonkey/ このSpiderMonkeyJavaScriptパーサーはSpiderMonkey1.6用に書かれています。解析用のAPIが変更されたため、最新のSpiderMonkeyでこれをどのように行うことができますか?

事前にThnx、
ゴラン

0 投票する
3 に答える
1853 参照

javascript - 関数を作成すると、より多くのメモリが消費されますか

人々がプロトタイプの使用を勧める主な理由の 1 つは、.fooプロトタイプの場合は 1 回作成されるのthis.fooに対し、他のアプローチを使用する場合は複数回作成されることです。

ただし、インタープリターがこれを最適化できることが期待されます。fooそのため、ケース Aでは関数のコピーが 1 つだけになります。

もちろん、クロージャーのために各オブジェクトに一意のスコープ コンテキストが引き続き存在しますが、各オブジェクトの新しい関数よりもオーバーヘッドが少なくなります。

最新の JS インタープリターはケース A を最適化して、関数のコピーが 1 つだけになるようにしますfooか?

0 投票する
1 に答える
658 参照

javascript - SpiderMonkey のスタック トレースの関数名

SpiderMonkey エンジン 1.8 を使用していますが、スタック トレースの作成方法に不満があります。サーバーからJavaScriptファイルに自動生成された関数名を受け取ることがありますが、これは実際には判読できません。クライアント側では、人間が読みやすくするための他の機能にアクセスできます。

SpiderMonkey がスタック トレースの 1 行を作成する方法を知っている人はいますか? これに影響を与える方法はありますか?

  • name関数のプロパティは読み取り専用です
  • WebKitdisplayNameは SpiderMonkey では動作しないようです (まだ)

編集: SpiderMonkey のソースを調べましたが、それが私だけかどうかはわかりませんが、その C++ コードはほとんど読めません。私は C++ の経験があまりありませんが、これらすべてのファイルを処理する方法を見つけるのは非常に困難です。仕方がなかった…

だから、お願いします、それはあなた次第です:)。

0 投票する
1 に答える
2398 参照

event-handling - Javascriptの内部:イベントはどのように実装されますか?

私の質問は、クリックイベントなどのdomでイベントハンドラーをバインドするようなことを行うときに、JSエンジンが非同期イベントのパターンをどのように実装するかに関連していますか?

すべてのクリックイベントをリッスンする別のスレッドのようなものがありますか?イベントが発生した場合、バインドリストを参照してイベントをバブルアップしますか?

非同期ネットワーク呼び出しであるAjaxの場合も同様で、ブラウザーはサーバーからのデータのリッスンを開始する新しいスレッドにまたがり、応答を受信すると成功ハンドラーを呼び出しますか?

0 投票する
3 に答える
419 参照

javascript - Ubuntu Lucid でソースから CouchDB を自動的にコンパイルする

Mozilla SpiderMonkey は、スタンドアロン パッケージとして Ubuntu Lucid で提供されなくなりました。このリンクによると、提供されているライブラリを使用する必要がありxulrunner、CouchDB 構成スクリプトにそのように伝えます。

これは問題ありませんが、これを自動的に行う必要があります。私の場合、これは ではありません1.9.2.31.9.2.23、とにかく、これは将来予告なしに変更されます。CouchDB をインストールする無人スクリプトがあり、明快なサポートを微調整したいと考えています。

ライブラリを探すことができます:

そして、そこからディレクトリlibとディレクトリを派生させます。includeしかし、これは非常にエラーが発生しやすいように見えます (システム内に他libmozjs.soに何があるか...)

理想は自問するxulrunnerことです。そのディレクトリがどこにあるかlibを照会することは可能ですか? include( 5 つ (!) のシンボリック リンクのチェーンが表示されますが、いずれにせよandディレクトリwhich xulrunnerにはつながりません)libinclude

それとも、Lucid で SpiderMonkey ライブラリをスタンドアロンの方法でインストールする方法はありますか? (ソースからのコンパイルは別として)