現実が全てなのでね…。
esbuildのほうを修正するんじゃないんかーい
めっちゃ笑った。『当然だがこのパッチが取り込まれたバージョンのSafariおよびBunではこの性能の問題は発生しなくなるはずだなので、この面白い特性を体験したい人は今のうちに試しておくことをお勧めする。』
そうなんだよな、esabuild滅ぶべし、と思いながら読んで最後に椅子から転げ落ちた。うーん、しかし個人的にはこのminifyは筋が悪いと思うけどなあ。
これ将来uより大きい単語の型が出たときにSafariだけ『正しくないが意図通りの挙動』にならないかな。
えぇwebkit側を修正したんかい?! そして https://github.com/WebKit/WebKit/pull/50101 約12時間で取り込まれてる。この人はReviewer権限持ってて 別の人が承認しているからフローに問題は無いけど、うーむ…/bigint symbolと増えてはいる
おもろ
元ネタは見たが、「typeof x>"u" に対しても typeof x === "undefined" と同じ専用のバイトコードが生成されるように修正した」←WebKitを修正するとは想像しなかった。/今さら型を増やさないか。/"unsigned"とか?(←ヤメロ)
このコミットが取り込まれてしまうのかぁ……
きもちわりい…………
……なんて?/既に世の中にそのようなコードが出てしまっているなら、この対応もアリでは、ある…やつ。
> JSC は typeof x === "undefined" に対して専用のバイトコードを持っている しらなかった
筋の悪い修正に思える
将来的に型が増えたらどうするんだと言う人はJavaScriptに正気を期待しすぎで、おそらく「typeof x > "u"はxがundefinedのときのみ真」という仕様が追加されるだけである(typeof null === "object" に近い)
使用頻度が高いとわかったコードの最適化を入れるのは、それはそうか。将来的に型が増えたらesbuildがバグる。esbuildがminifyをやめれば解決する。Webkitの問題は増えない(20年後にみたら謎のコードにみえる、か?)。
へーすごい。
う、美しくない…JavaScriptの処理系は美しさを求めるような対象じゃないと言われりゃそりゃそうだけど…/少なくとも、ここに「修正した」という動詞を使うのは違うんじゃないか
Webkit側を直すのは設計判断としてもやもやする。
ランタイムのpeephole optimizationの例。味わい深い
あー、typeofが返す文字列にvwxyzで始まるものが無いからu以上で始まる文字列というだけでundefindが確定するということなのか。コードを短くしたいというだけでここまで攻めるのか…
使用頻度が高いコードで、現実的なユースケースなのでこれに対応するのは処理系としては妥当なんじゃないか。JSCに限らず別の言語の処理系もこういうことたくさんやってる印象があるけどどうなんだろう
面白い話だった。 uhyo さんの懸念も sosuke さんの対処もどっちも強みがあってなるほどなぁって感じ。
闇深
typeof x > 'u' は typeof x === 'undefined' より小さいけど遅い
現実が全てなのでね…。
esbuildのほうを修正するんじゃないんかーい
めっちゃ笑った。『当然だがこのパッチが取り込まれたバージョンのSafariおよびBunではこの性能の問題は発生しなくなるはずだなので、この面白い特性を体験したい人は今のうちに試しておくことをお勧めする。』
そうなんだよな、esabuild滅ぶべし、と思いながら読んで最後に椅子から転げ落ちた。うーん、しかし個人的にはこのminifyは筋が悪いと思うけどなあ。
これ将来uより大きい単語の型が出たときにSafariだけ『正しくないが意図通りの挙動』にならないかな。
えぇwebkit側を修正したんかい?! そして https://github.com/WebKit/WebKit/pull/50101 約12時間で取り込まれてる。この人はReviewer権限持ってて 別の人が承認しているからフローに問題は無いけど、うーむ…/bigint symbolと増えてはいる
おもろ
元ネタは見たが、「typeof x>"u" に対しても typeof x === "undefined" と同じ専用のバイトコードが生成されるように修正した」←WebKitを修正するとは想像しなかった。/今さら型を増やさないか。/"unsigned"とか?(←ヤメロ)
このコミットが取り込まれてしまうのかぁ……
きもちわりい…………
……なんて?/既に世の中にそのようなコードが出てしまっているなら、この対応もアリでは、ある…やつ。
> JSC は typeof x === "undefined" に対して専用のバイトコードを持っている しらなかった
筋の悪い修正に思える
将来的に型が増えたらどうするんだと言う人はJavaScriptに正気を期待しすぎで、おそらく「typeof x > "u"はxがundefinedのときのみ真」という仕様が追加されるだけである(typeof null === "object" に近い)
使用頻度が高いとわかったコードの最適化を入れるのは、それはそうか。将来的に型が増えたらesbuildがバグる。esbuildがminifyをやめれば解決する。Webkitの問題は増えない(20年後にみたら謎のコードにみえる、か?)。
へーすごい。
う、美しくない…JavaScriptの処理系は美しさを求めるような対象じゃないと言われりゃそりゃそうだけど…/少なくとも、ここに「修正した」という動詞を使うのは違うんじゃないか
Webkit側を直すのは設計判断としてもやもやする。
ランタイムのpeephole optimizationの例。味わい深い
あー、typeofが返す文字列にvwxyzで始まるものが無いからu以上で始まる文字列というだけでundefindが確定するということなのか。コードを短くしたいというだけでここまで攻めるのか…
使用頻度が高いコードで、現実的なユースケースなのでこれに対応するのは処理系としては妥当なんじゃないか。JSCに限らず別の言語の処理系もこういうことたくさんやってる印象があるけどどうなんだろう
面白い話だった。 uhyo さんの懸念も sosuke さんの対処もどっちも強みがあってなるほどなぁって感じ。
闇深