https://zenn.dev/canalun/articles/exec_javascript_beyond_ast

jsエンジンとは何か、どこに潜んでいるのか

ブラウザにおけるUIからjsエンジンまでの道のりは長い

Tali Garsiel & Paul Irish; “How browsers work”;

ブラウザによって使用しているjsエンジンが違う

Untitled

jsエンジンはソースコードをどうやって実行しているのか

全体像

下記が基本的な流れ

- V8って書いてあるけど、下記の基本的な流れはエンジンによらずほとんど同じはず
- もちろんそれぞれのフェーズで実装の違いは在る。“Optimize & Compile it”の具体的な実装などはエンジンにより異なる  Benedikt Meurer; [“An Introduction to Speculative Optimization in V8”](<https://ponyfoo.com/articles/an-introduction-to-speculative-optimization-in-v8>);
    
    [](<https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a4460867-bab3-4d15-8b94-4ca6ee77bc91/65f18852d2553a4608d021be.png3fsha3d966b7819aace615714ee6b0f5f05d2925b59a13b>)
jsの面白いところは、ASTから直接コンパイルして実行されるわけでも**なく**、単純なインタプリタのようにコンパイルを挟まずに実行しているわけでも**ない**ところ。それに、なんだか見慣れない”Get feedback”というフェーズさえある……!ここがJIT compileと呼ばれる面白い部分で、このあと説明していきます!!

1. Parsing(構文解析)→AST(抽象構文木)

さて、まずはここから始まっていきます

Parsing(構文解析)とは、ここでは「文法に沿って、文の構造を解析すること」くらいで捉えておく