問題のページは
これだ。死ぬほど遅い。Chromeだとタブが死んでしまう。Firefoxだと重いscriptを止める機能があるので
止められるだけマシだが、我慢ならない。そもそもhttps://s.yimg.jp/images/search/slink/direct/pc/1.0.0/js/directlink.min.js
とはなんぞや。
https://s.yimg.jp/images/search/slink/direct/pc/1.0.0/js/directlink.min.js · GitHub
Webarchvesを辿って(といっても比較的新しいファイルらしく、先月からしか辿れなかった)Gistにまとめた。地味にgitの履歴改ざんのやり方が分からず苦戦した。
Firefoxで糞重いのをどうにか我慢して調べたところ
https://gist.github.com/yumetodo/15b51e1ebd8b86cd533e6c5087009ab2#file-directlink-js-L482-L496
getMatchPosition: function(e, t) { var i, n = t.map(function(t) { for (var i = e.length;;) { if (i = e.lastIndexOf(t, i - 1), -1 === i) break; var n = /^[a-zA-Z0-9a-zA-Z0-9]/.test(t), r = /[a-zA-Z0-9a-zA-Z0-9]$/.test(t), o = /[a-zA-Z0-9a-zA-Z0-9][ \t ]*$/.test(e.substr(0, i)), a = /^[ \t ]*[a-zA-Z0-9a-zA-Z0-9]/.test(e.substr(i + t.length)); if (!(n && o || r && a)) break } return [i, t] }); for (i = 0; i < n.length; i++) if (-1 !== n[i][0]) return n[i] }
どうもLinker.prototype.getMatchPosition
が暴走しているらしい。勘弁してくれ。