Когда все браузеры начали поддерживать String.replace(regexp, replacement_function)?

В соответствии с 6-м выпуском JavaScript: окончательное руководство (Flanagan, 2011):

ECMAScript v3 указывает, что аргумент замены replace() может быть функцией вместо строки.

Я смотрю код, написанный в 2005 году, где сложный обходной путь использовался для замены частей строки. Замечания для кода ясно показывают, что он первоначально использовал функциональный метод replace(), но обходной путь был необходим для совместимости с несколькими браузерами.

ECMAScript v3 вышел в 1999 году и, насколько я могу судить (от этот пост обсуждения и это сообщение в блоге), ECMAScript v3 поддерживался в основных браузерах с конца 2001 года. Может ли автор ошибиться или кто-то может пролить свет на то, почему такое обходное решение могло быть необходимо в 2005 году?

...

ОБНОВЛЕНИЕ. Фактический комментарий автора кода говорит:

lambda-функции в RegExps в настоящее время являются проблемой со слишком большим количеством браузеров.

изменен код для работы.

Авторский код работает или запускает этот бизнес, хотя сам код вполне может быть личным проектом.

Ответ 1

Этот ответ основан на комментариях к вышеуказанному вопросу (с особой благодарностью kangax, чей ответ я, скорее всего, соглашусь, если он захочет оставить его! )

В то время как возможно, что я мог бы читать "слишком много браузеров" в буквальном смысле, также возможно, что String.replace() с функцией в качестве аргумента была проблемой в Safari 2.x(с использованием JavaScriptCore) и в IEMac 5.x в 2005 году. Доказательства этих проблем в то время существуют здесь и с теми конкретными версиями вышеупомянутых браузеров здесь.

Фактически обходной путь, упомянутый Гавином Кистнером на первой из этих страниц, - это тот, чья производительность может быть лучше в некоторых браузерах, чем метод функциональной замены, как обсуждалось здесь .

Тем не менее, производительность в сторону, кажется (как я подозревал), что функциональная замена приемлема во всех браузерах сегодня.

Большое спасибо всем комментаторам по этому вопросу.