[webkit-changes] [WebKit/WebKit] 1ef50e: [JSC] `RegExp.prototype`'s `@@match` and `@@replac...

SUZUKI Sosuke noreply at github.com
Fri Feb 21 05:24:15 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1ef50e669e8a90eb51fa4ffd1e0c9f0356189ea1
      https://github.com/WebKit/WebKit/commit/1ef50e669e8a90eb51fa4ffd1e0c9f0356189ea1
  Author: Sosuke Suzuki <aosukeke at gmail.com>
  Date:   2025-02-21 (Fri, 21 Feb 2025)

  Changed paths:
    M JSTests/es6/Proxy_internal_get_calls_RegExp.prototype[Symbol.match].js
    M JSTests/es6/Proxy_internal_get_calls_RegExp.prototype[Symbol.replace].js
    M JSTests/stress/regexp-match-proxy.js
    A JSTests/stress/regexp-prototype-symbol-match-flags-effects.js
    A JSTests/stress/regexp-prototype-symbol-replace-flags-effects.js
    M JSTests/stress/regexp-replace-proxy.js
    M JSTests/test262/expectations.yaml
    M Source/JavaScriptCore/builtins/RegExpPrototype.js
    M Source/JavaScriptCore/builtins/StringPrototype.js
    M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
    M Source/JavaScriptCore/dfg/DFGFixupPhase.cpp
    M Source/JavaScriptCore/runtime/JSGlobalObject.cpp
    M Source/JavaScriptCore/runtime/JSGlobalObject.h
    M Source/JavaScriptCore/runtime/JSGlobalObjectInlines.h

  Log Message:
  -----------
  [JSC] `RegExp.prototype`'s `@@match` and `@@replace` should use `flags` getter only
https://bugs.webkit.org/show_bug.cgi?id=248605

Reviewed by Yusuke Suzuki.

This patch implements recent spec change [1], aligning RegExp.prototype's
@@match / @@replace with @@split / @@matchAll to use only "flags" getter to
check for flags, which is observable.

This patch is based on the PR by Alexey Shvayka[2]. Also according to
the PR, no performance regressions.

[1]: https://github.com/tc39/ecma262/pull/2791
[2]: https://github.com/WebKit/WebKit/pull/7281

* JSTests/test262/expectations.yaml:
* Source/JavaScriptCore/builtins/RegExpPrototype.js:
(linkTimeConstant.hasObservableSideEffectsForRegExpMatch):
(linkTimeConstant.matchSlow):
(overriddenName.string_appeared_here.replace):
* Source/JavaScriptCore/builtins/StringPrototype.js:
(linkTimeConstant.hasObservableSideEffectsForStringReplace):

Canonical link: https://commits.webkit.org/290785@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list