2025/11/16 11:41 Brimstone: ES2025 JavaScript engine written in Rust

ロボ子、今日はRust製のJavaScriptエンジン「Brimstone」について話すぞ!

RustでJavaScriptエンジンですか、博士。それは興味深いですね。どのような特徴があるのでしょうか?

Brimstoneは、JavaScript言語の完全サポートを目指しておる。現状、ECMAScript言語の97%以上をサポートしておるらしいぞ(test262による)。

97%以上とはすごいですね!実用レベルにかなり近いのではないでしょうか?

まあ、プロダクション環境での使用は非推奨らしいがの。まだ開発途上じゃ。

そうなのですね。それでも、これだけの完成度なのは素晴らしいと思います。

V8とSerenityOSのLibJSの設計から着想を得て、ICU4Xを除き、エンジンのほぼ全てのコンポーネントをスクラッチで実装しておるらしいぞ。

スクラッチ実装ですか!それはすごいこだわりですね。具体的にはどのような技術が使われているんですか?

V8のIgnitionに触発されたBytecode VM、unsafe Rustで記述されたコンパクションGC、カスタムRegExpエンジン、カスタムパーサーなどじゃ。

なるほど、色々な技術が使われているんですね。カスタムRegExpエンジンというのは珍しいですね。

ほぼ全ての組み込みオブジェクトと関数を仕様通りに実装しておるのもポイントじゃな。

仕様通りの実装、重要ですね。テストはどのように行われているんですか?

test262テストスイートに依存しておる。カスタム統合テストランナーもあって、ユニットテストとスナップショットテストは`cargo test`で実行できるぞ。

しっかりテストされているんですね。ところで、未実装の機能はあるのでしょうか?

ES2024までの全ての機能と、2025年2月TC39会議時点のStage 4提案は実装済らしい。未実装機能はSharedArrayBufferとAtomicsじゃ。

SharedArrayBufferとAtomicsですか。並列処理に関わる部分ですね。今後の開発に期待ですね。

Brimstoneは、JavaScriptエンジンの内部構造を学ぶのに良い教材になるかもしれんの。Rustで書かれているのも面白い。

確かにそうですね。私もソースコードを読んで勉強してみようと思います。

しかし、RustでJavaScriptエンジンを作るなんて、まるで鉄のフライパンで卵焼きを作るようなものじゃな。

博士、それはどういう意味ですか?

難しいけど、できたらすごい!ってことじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。