[webkit-changes] [WebKit/WebKit] e7aeca: [JSC] Check if the species watchpoint is valid bef...

SUZUKI Sosuke noreply at github.com
Thu Sep 26 21:06:44 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e7aeca7171e3be024a2efdc2eeddb55a9d9ba82b
      https://github.com/WebKit/WebKit/commit/e7aeca7171e3be024a2efdc2eeddb55a9d9ba82b
  Author: Sosuke Suzuki <aosukeke at gmail.com>
  Date:   2024-09-26 (Thu, 26 Sep 2024)

  Changed paths:
    A JSTests/stress/array-prototype-concat-species.js
    M Source/JavaScriptCore/builtins/ArrayPrototype.js
    M Source/JavaScriptCore/builtins/BuiltinNames.h
    M Source/JavaScriptCore/bytecode/LinkTimeConstant.h
    M Source/JavaScriptCore/runtime/ArrayPrototype.cpp
    M Source/JavaScriptCore/runtime/ArrayPrototype.h
    M Source/JavaScriptCore/runtime/JSGlobalObject.cpp

  Log Message:
  -----------
  [JSC] Check if the species watchpoint is valid before `array.concat()` fast path
https://bugs.webkit.org/show_bug.cgi?id=280381

Reviewed by Yusuke Suzuki.

The Array.prototype.concat test262 started failing due to https://commits.webkit.org/284060@main.
This was because the species check was not performed before entering the fast path.

This patch changes to check whether the Array's species watchpoint is valid before entering the fast
path.

According to microbenchmarks, there seems to be no performance regression caused by this patch:

                                                  TipOfTree                  Patched

array-prototype-concat-copy-obj                 1.2244+-0.2875     ?      1.2272+-0.2899        ?
array-prototype-concat-copy-double-and-int32
                                                1.2631+-0.1158     ?      1.3107+-0.0959        ? might be 1.0377x slower
array-prototype-concat-copy-double              1.2239+-0.2762            1.0875+-0.1126          might be 1.1254x faster
array-prototype-concat-copy-int32               1.1629+-0.2731            1.1406+-0.2677          might be 1.0196x faster

<geometric>                                     1.2119+-0.1094            1.1832+-0.0463          might be 1.0243x faster

* JSTests/stress/array-prototype-concat-species.js: Added.
(shouldBe):
(Constructor):
* Source/JavaScriptCore/builtins/ArrayPrototype.js:
(concat):
* Source/JavaScriptCore/builtins/BuiltinNames.h:
* Source/JavaScriptCore/bytecode/LinkTimeConstant.h:
* Source/JavaScriptCore/runtime/ArrayPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/runtime/ArrayPrototype.h:
* Source/JavaScriptCore/runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):

Canonical link: https://commits.webkit.org/284330@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