AVM2 Overviewだと命令がABC順にならんでて読みづらいので、整理。tamarinのcore/opcodes.hだとオペコード順に並んでて読みやすいよ。
条件分岐
命令 |
補足 |
label |
branchするだろうところに書いておくと、本当にジャンプできるかチェックしてくれる |
ifnlt |
not less than |
ifnle |
not less than or equal |
ifngt |
not greater than |
ifnge |
not greater than equal |
jump |
無条件ジャンプ |
iftrue |
スタックにtrueが積んであったらジャンプ |
iffalse |
ifeq |
equal |
ifne |
not equal |
iflt |
less than |
ifle |
less than or equal |
ifgt |
greater than |
ifge |
greater than or equal |
ifstricteq |
strict equal。strict equalはECMA-262で定義されているらしい |
ifstrictne |
strict not equal |
boolean演算子
命令 |
補足 |
equals |
|
strictequals |
|
lessthan |
|
lessequals |
|
greaterthan |
|
greaterequals |
|
equalsとstrict equals
ECMA-262のsection 11.9.3でequalsが11.9.4でstrict equalsが定義されている。
要するに、型変換が行なわれるかどうからしい。
例えば、
"1" == 1
がequalsではtrue、strictequalsではfalseになる。