if文関係の命令

mzp2008-05-15

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になる。