問題タブ [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.
javascript - javascript-SyntaxErrorをキャッチし、代替関数を実行します
次のように、string、xml、javascript、および(引用符なしの非javascript文字列)のようなすべての入力を持つことができるjavascript上に何かを構築しようとしています:
したがって、この最初の3つは、単純なjavascriptネイティブ形式であるため、うまく機能しています。
しかし、これをjavascript内で使用しようとすると
明らかに、javascriptは、javascriptがSyntaxErrorをスローしていると見なすため、これを構文エラーとして解釈します。
そこで、このエラーをキャッチし、発生した場合の調整方法を実行したいと思います。
私はすでにtrycatchを試しましたが、コードを実行しようとするとすぐに構文エラーを返し続けるため、機能しません。
どんな助けでも大歓迎です
乾杯 :)
追加情報: JavaScriptがspidermonkeyを使用して読み取る外部ファイルを想像してみてください。これは、ブラウザー以外のものです(HttpRequest、DOMなどは使用できません)。これが重要かどうかはわかりませんが、あります。:)
javascript - TraceMonkey はどこでダウンロードできますか?
ここから Spidermonkey JavaScript エンジンを取得できます。
http://www.mozilla.org/js/spidermonkey/
また、Tracemonkey が SpiderMonkey の後にリリースされた新しいバージョンであることは知っていますが、Mozilla でそのダウンロード リンクが見つかりませんか? 一般向けに公開されていますか?TraceMonkey を一般にダウンロードできない場合は、SpiderMonkey に戻すか、Google の V8 に完全に切り替える必要がありますか?
javascript - spidermonkey JavaScriptでコンソール入力を取得するにはどうすればよいですか?
現在、JavaScriptコードを実行するためにspidermonkeyを使用しています。Pythonがこれを行うのと同じように、コンソールから入力を取得する関数があるかどうか疑問に思っています。
またはC++の場合:
私は周りを見回しましたが、これまでに見つけたのは、prompt()
andconfirm()
関数を使用してブラウザーから入力を取得する方法だけです。
c - Xcode 3.2.3 に SpiderMonkey jsapi.h ファイルを正しく含めるにはどうすればよいですか?
Xcode 3.2.3 で C コマンド ライン アプリを作成しました。コマンド ラインから SpiderMonkey をコンパイルして動作させました。これは CouchDB 0.11 用でした。/usr/local/spidermonkey/include
js インタープリターは、およびにあるすべてのファイルと同様に機能します/usr/local/spidermonkey/lib
。/usr/local/spidermonkey/include
ヘッダー パスと/usr/local/spidermonkey/lib
ライブラリ パスに追加しました。
から jsapi.h ファイルを追加/usr/local/spidermonkey/include
して main.c ファイルで参照するたびに、コンパイルが中断されます。次のコードがコンパイルされないのはなぜですか?
c - 移植可能な C アプリに SpiderMonkey を埋め込む
C アプリケーションの 1 つに Mozilla の SpiderMonkey を組み込みたいと考えています。Linux では、問題になるとは思いません (私は Linux ユーザーです) が、MINGW を使用して Windows でそれを行う方法がわからないことを恐れていることを告白しなければなりません (アプリが必要です)。携帯できるように)
たとえば、firefox に付属の dll をそのまま使用することは可能ですか? (正直なところ、MINGW で dll を使用する方法さえ知りません)
MINGW を使用して Windows でビルドする (または単に Spidermonkey を埋め込む) 方法に関するヒント、ヒント、チュートリアルはありますか (私は Visual Studio の使用を拒否します:))
または、SpiderMonkey 以外の使いやすく、いくつかの基本的な JavaScript を実行できる代替ソリューションがありますか (たとえば、DOM は必要ありません)。
どうもありがとう!
javascript - JavaScriptでC++クラスを継承するには?
C++ ライブラリをスクリプト可能にするために、SpiderMonkeyを埋め込んでいます。拡張可能にするには、ライブラリの 1 つの C++ 基本クラスを継承する新しいクラス (JavaScript) を定義できるようにする必要があります。
SpiderMonkey を使用してそれを行う方法を示す例はありますか?
javascript - コマンドラインでSpiderMonkeyを使用して(ローカル)ファイルからコンテンツを読み取る方法は?
テスト ハーネスの実行に SpiderMonkey を使用したいと考えています (ブラウザ内バージョンについては、こちらを参照してください)。今、私は次のことを試しました:
次のエラーで失敗します。
これがばかげた質問である場合は申し訳ありませんが、こことRTFMdを少し調べましたが、何をすべきかわかりませんでした(インポート?どのように?)。
javascript - サイvsスパイダーモンキー
私はubuntu10.04がスパイダーモンキーパッケージを削除したことに気づきました。Rhinoはまだそこにあるように見えます。サイとスパイダーモンキーの違いは何ですか(どの言語で書かれているのかを除いて)。そして、なぜ彼らはスパイダーモンキーを削除したのですか?
javascript - C++オブジェクトとJavascriptオブジェクトのライフサイクルの同期ミス
C++オブジェクトとJavascriptオブジェクトのライフサイクルの同期ミスについて質問がありました。ここであなたの教祖が私を助けてくれることを願っています。
具体的には、C++プログラムにSpiderMonkeyを埋め込んでいます。私のアプローチが正しいかどうかはわかりません。私がやっていることは
(1)C ++プログラムはJavascriptファイルをロードし、エントリ関数を呼び出します。
(2)エントリ関数では、プログラムを初期化するためにいくつかのC++関数が呼び出されます。これらの呼び出し中に、いくつかのC++オブジェクトが作成されます。
(3)ユーザーの操作に基づいて、対応するスクリプト関数がイベントハンドラーとして呼び出されます。
このアプローチは機能しますが、1つの問題があります(さらに不明な点がある可能性があります:)
あれは、
JSイベントハンドラー関数では、C ++オブジェクトをJavascriptコンテキストにフェッチし、それをメンバー関数と呼ぶ必要があります。このため、C ++フェッチ関数で、対応するJSピアオブジェクトが作成されているかどうかを確認します。そうでない場合は、JS_NewObjectを使用して作成し、返します。次に、JS関数はその上でネイティブ関数を呼び出すことができます。
問題は、場合によっては、そのようなネイティブ関数呼び出しの結果がC++オブジェクトの停止につながることです。ただし、JSコンテキストにJSピアオブジェクトを削除するように通知する方法も見つかりません。そのためのJSAPI関数が見つかりませんでした。
私の現在のプログラムでは、JS_NewObjectを使用して作成されたすべてのJSオブジェクトは、最終的にJSランタイムが破棄されるときに破棄されます。
これはSipderMonkeyの「ガベージコレクション」と関係があると思います。しかし、私はまだ良いガイドを見つけていません。提案をありがとう
javascript - SpiderMonkey: c から現在の JSObject の名前を取得するにはどうすればよいですか?
誰かがc から JSObject プロパティの値を取得する方法を尋ねました。それは私を少し助けました。
しかし、オブジェクトの現在の JavaScript 名を c から取得する方法を知っている人はいますか?
例:
次に、たとえばjsapi.cppのどこかに:
ヒントと答えをありがとう!