テクノロジー

typeof x > 'u' は typeof x === 'undefined' より小さいけど遅い

1: sora_h 2025/08/31 17:26

現実が全てなのでね…。

2: Knoa 2025/08/31 18:33

esbuildのほうを修正するんじゃないんかーい

3: Kanasansoft 2025/08/31 18:57

めっちゃ笑った。『当然だがこのパッチが取り込まれたバージョンのSafariおよびBunではこの性能の問題は発生しなくなるはずだなので、この面白い特性を体験したい人は今のうちに試しておくことをお勧めする。』

4: gfx 2025/08/31 19:07

そうなんだよな、esabuild滅ぶべし、と思いながら読んで最後に椅子から転げ落ちた。うーん、しかし個人的にはこのminifyは筋が悪いと思うけどなあ。

5: gabill 2025/08/31 19:10

これ将来uより大きい単語の型が出たときにSafariだけ『正しくないが意図通りの挙動』にならないかな。

6: Fushihara 2025/08/31 19:19

えぇwebkit側を修正したんかい?! そして https://github.com/WebKit/WebKit/pull/50101 約12時間で取り込まれてる。この人はReviewer権限持ってて 別の人が承認しているからフローに問題は無いけど、うーむ…/bigint symbolと増えてはいる

7: razokulover 2025/08/31 19:19

おもろ

8: mohno 2025/08/31 19:35

元ネタは見たが、「typeof x>"u" に対しても typeof x === "undefined" と同じ専用のバイトコードが生成されるように修正した」←WebKitを修正するとは想像しなかった。/今さら型を増やさないか。/"unsigned"とか?(←ヤメロ)

9: tyhe 2025/08/31 20:44

このコミットが取り込まれてしまうのかぁ……

10: hjmk 2025/08/31 21:12

きもちわりい…………

11: psne 2025/08/31 21:31

……なんて?/既に世の中にそのようなコードが出てしまっているなら、この対応もアリでは、ある…やつ。

12: MysticDoll 2025/08/31 22:51

> JSC は typeof x === "undefined" に対して専用のバイトコードを持っている しらなかった

13: spark7 2025/08/31 22:58

筋の悪い修正に思える

14: oisux 2025/08/31 23:19

将来的に型が増えたらどうするんだと言う人はJavaScriptに正気を期待しすぎで、おそらく「typeof x > "u"はxがundefinedのときのみ真」という仕様が追加されるだけである(typeof null === "object" に近い)

15: ledsun 2025/09/01 01:06

使用頻度が高いとわかったコードの最適化を入れるのは、それはそうか。将来的に型が増えたらesbuildがバグる。esbuildがminifyをやめれば解決する。Webkitの問題は増えない(20年後にみたら謎のコードにみえる、か?)。

16: Helfard 2025/09/01 08:23

へーすごい。

17: sqrt 2025/09/01 08:31

う、美しくない…JavaScriptの処理系は美しさを求めるような対象じゃないと言われりゃそりゃそうだけど…/少なくとも、ここに「修正した」という動詞を使うのは違うんじゃないか

18: yojik 2025/09/01 09:32

Webkit側を直すのは設計判断としてもやもやする。

19: ihirokyx 2025/09/01 09:38

ランタイムのpeephole optimizationの例。味わい深い

20: rryu 2025/09/01 12:49

あー、typeofが返す文字列にvwxyzで始まるものが無いからu以上で始まる文字列というだけでundefindが確定するということなのか。コードを短くしたいというだけでここまで攻めるのか…

21: naari_3 2025/09/01 12:50

使用頻度が高いコードで、現実的なユースケースなのでこれに対応するのは処理系としては妥当なんじゃないか。JSCに限らず別の言語の処理系もこういうことたくさんやってる印象があるけどどうなんだろう

22: yosuke_furukawa 2025/09/01 15:12

面白い話だった。 uhyo さんの懸念も sosuke さんの対処もどっちも強みがあってなるほどなぁって感じ。

23: cl-gaku 2025/09/01 15:46

闇深