問題タブ [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.
android - AndroidNDKツールチェーンを使用したSpiderMonkeyの構築
SpiderMonkeyを使用してゲームをAndroidに移植しています。ゲームの既存のビルドシステムと統合する必要があるため、ndk-ビルドツールではなく、AndroidNDKスタンドアロンツールチェーンを使用してSpiderMonkeyをビルドする必要があります。誰かがこれを達成する方法を教えてもらえますか?
SpiderMonkeyのconfigureに--with-android-toolchain= DIRオプションがあることがわかりますが、それを使用する方法がわかりません。具体的には、他のどのオプションと組み合わせる必要がありますか?
ありがとうございました。
javascript - ANTLR への外部 AST のインポート
ANTLR で Javascript ソース処理ツールを構築したいと考えています。Mozilla の Javascript エンジン Spidermonkey はすでに Javascript を解析して AST (それ自体が Javascript オブジェクト ツリー) を出力できるため、必要なのは ANTLR のツリー文法機能を利用してその AST を解析することだけです。独自の Javascript ソース パーサー文法を作成する必要はありません。
しかし、問題は、ANTLR のツリー文法が認識できる形式に外部 AST をどのようにインポートするかということです。The Definitive ANTLR Referenceによると、おそらく独自のTreeAdaptorを作成する必要があります。しかし、どのメソッドをオーバーライドする必要がありますか? Spidermonkey の AST は、さまざまなノード タイプがさまざまなステートメントに使用される異種ツリーです。この異種ツリーを、単一のCommonTreeタイプがすべてのノードに使用されるANTLR が処理できるツリー形式に手動でマッピングする必要があります。
私の ANTLR ターゲット言語は Javascript でも何でもかまいません (Spidermonkey によって生成される AST は Javascript オブジェクト ツリーであるため)。
javascript - JavaScript エンジンのベンチマークに最適な独立系テスト スイートはどれですか?
JavaScript インタープリターの速度をベンチマークするための最適なツールを探しています。
これは、Mozilla や Google などの紛争当事者によって作成されたツールであってはなりませんが、これらのツールが最も正確な表現を提供する可能性があることは理解しています。
cross-compiling - pkg-config が sysroot ディレクトリの下でパッケージを見つけられない
これが失敗する理由を誰か教えてください:
pkg-config(1)
manによると/usr/local/lib/pkgconfig
、デフォルトの検索パスの 1 つになるはずです。
javascript - JavaScript配列は実際に配列として実装されていますか?
Array
JavaScriptとの違いObject
はそれほど大きくありません。実際、主にフィールドArray
を追加しているように見えるため、 sとsの両方を数値配列として使用できます。length
Array
Object
だから私の質問は、人気のあるJavaScriptエンジン(V8、JavaScriptCore、SpiderMonkeyなど)では、これはどのように処理されますか?明らかに、配列が実際にキー値を持つハッシュマップとして格納されることは望ましくありません。データが実際の配列として格納されていることを合理的に確認するにはどうすればよいですか?
私が見る限り、エンジンがとることができるいくつかのアプローチがあります:
Array
Object
文字列キーを持つ連想配列として-とまったく同じ方法で実装されます。Array
は特殊なケースでありstd::vector
、数値キーを裏付ける-like配列と、必要に応じて異常なメモリ使用を防ぐための密度ヒューリスティックがあります。ar[100000000] = 0;
Array
はと同じObject
であり、すべてのオブジェクトは、配列を使用する方が理にかなっているかどうかを確認するためにヒューリスティックを取得します。- 私が考えもしなかった、めちゃくちゃ複雑な何か。
適切な配列型( cough WebGL型の配列cough )があれば、これは実際にはもっと簡単です。
javascript - MongoシェルでSpiderMonkeyのデバッグサポートを使用するにはどうすればよいですか?
MongoDBのシェルはSpiderMonkeyを拡張します。SpiderMonkeyのデバッグサポートの一部に接続する方法はありますか?onerror()ハンドラーをアクティブにして、未処理の例外の呼び出しスタックトレースを出力するなど、単純なことを行う方法を見つけることができませんでした。
spidermonkey - JS ランタイムを最適に構成するにはどうすればよいですか?
せいぜい JSRuntime を構成する方法を知りたいです。JS_NewRuntime()、JS_NewContext()、JS_SetGCParameter()、JS_SetGCParameterForThread() など、多くのパラメータがあります。ガイドラインや推奨事項はありますか?
javascript - Spidermonkey のガベージ コレクターの問題.... JS_AnchorPtr()?
Bondi と呼ばれる独自の JavaScript サーバー側言語を作成しました。最近、新しいスパイダー モンキーにアップグレードされました。
JS がローカル ルートに入り、ローカル ルートを離れる関数が 1.8.5 API からなくなった/役に立たなくなったJS_AnchorPtr(varname)
ので、コンパイラがへの参照を削除していないことを確認するために、関数呼び出しの最後にアンカー ポインター() を使用するだけで十分ですか?ガベージコレクターを幸せに保ちますか?
JS_EnterLocalRootScope へのすべての参照を削除してテストしてきました (こちらを参照) / ローカル ルート スコープを残しJS_AnchorPtr()
て、スクリプトの末尾に追加します。
スパイダー モンキーのソース コードで AnchorPoint 関数を調べました。何を推測します...それは何もしません。ドコもありません。ガベージコレクターがそれらを殺さないように、これらの変数の言及を取得できるようにするためだけに使用しています。
javascript - PythonとLinux上のSpidermonkeyJavascriptエンジン
Linuxマシン(Ubuntu)にSpidermonkeyJSエンジンを正常にインストールしました。基本的に私の目標は、Ajax(js)スクリプトを実行し、その結果をPythonスクリプトに戻すことです。私は基本的に、優れたOOWebスクレイパーを構築しようとしています。しかし、これらすべてを機能させるのはかなり難しいです。
ターミナルにJSと入力すると、Javascriptの実行を開始できるようになりました。私はグーグルしていて、Stackoverflowでこの小さなスニペットを見つけました:
しかし、モジュールSpidermonkeyが見つからないというエラーで実行に失敗しました。
私は今少し迷っています。誰か助けてくれますか?
c# - Spidermonkey - C# または C++ から JavaScript 関数を呼び出す (VIsual Studio 2010)
VS2010 を使用して C# (または C++) コンソール アプリに Spidermonkey エンジン呼び出しを埋め込みたいので、C# コードから JavaScript 関数に値を送信して結果を取得できますが、どこからどのように開始すればよいかわかりません。 .
これまでのところ、spidermonkey のソース コードをダウンロードし、mozilla ビルド ツールを使用してコンパイルしました。これで、js シェルを起動し、.js ファイルをロードし、その中で JavaScript 関数を実行して、正しい結果を得ることができます。VS2010 で win32 C++ コンソール アプリを作成し、dist/include フォルダーからプロジェクトに js.lib とヘッダー ファイルを追加しました。 . 簡単な例で起動してみましたが、実際にはエラーなしでビルドされますが(試行からわずか3日後)、実行時にシステムエラーがスローされます-「js.exeがコンピューターにないため起動できません。」