Bug852791
https://bugzilla.mozilla.org/show_bug.cgi?id=852791
目次
- 説明
- 解決法
説明
文字列どうしのconcatの時に、無駄なアセンブラが実行されている。
例えば、以下のようなコードは同じアセンブラが実行されるはずである。
var x = "hoge" var s = "f" + "oo" + x + "b" + "ar"; //(1) var s = "foo" + x + "bar"; //(2)
しかし、IonMonkey spewを用いて確認してみると、以下のような結果になっている。
(1)の実行結果
(2)の実行結果
注目すべきなのは、concatの回数である。(1)の場合は4回実行されており、(2)の場合は2回だけである。
定数どうしのconcatなら、変数の読み込みが発生しないのでアセンブラを実行せずとも、直接concatすることができる。
因みに、定数どうしのconcatの結果は以下のようになっている。
var s = "a"+"b"