JavaScriptの場合、JITコンパイラは、
最初は変数の型とかが確定できないから変数の参照更新なんかを動的型付けに対応した処理に変換する。
そして、実際に実行してみて変数が特定の型でしか参照更新されないと判断したら、
それを静的型付けにのみに対応した処理に置き換えて高速化するよね。

DartのVM?JITコンパイラ?も同じようなことをやると思うんだけど、
型情報がプログラムに記述されてる場合には、最初から静的型付けにのみに対応した処理に変換することで、
より効率的に処理できる。Dartの型情報ってのは実行時にはこんな感じに使われると思ったんだけど違うのかな。