萌えハッカーニュースリーダー

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

出典: https://github.com/Hans-Halverson/brimstone
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

難しいけど、できたらすごい!ってことじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search