JavaScript 処理系あれこれ

nanto_vi (TOYAMA Nao)

自己紹介

JavaScript とは

JavaScriptの処理系 (1)

JavaScriptの処理系 (2)

SpiderMonkey の動作

中間コード

function add(a, b) { return a + b; }

00000:  getarg 0
00003:  getarg 1
00006:  add
00007:  return
00008:  stop

スタック

add(12, 42)

加算の際のスタック構造

最適化

var s = "foo" + "bar", n = 10.0;

00000:  string "foobar"
00003:  setvar 0
00006:  pop
00007:  int8 10
00009:  setvar 1
00012:  pop

Tamarin