[webkit-changes] [WebKit/WebKit] 954979: [JSC] Reduce the number of @generatorResume() para...

Commit Queue noreply at github.com
Tue Oct 1 14:00:05 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9549797c340c80f64fe468853e8df3179b8c4f43
      https://github.com/WebKit/WebKit/commit/9549797c340c80f64fe468853e8df3179b8c4f43
  Author: Alexey Shvayka <ashvayka at apple.com>
  Date:   2024-10-01 (Tue, 01 Oct 2024)

  Changed paths:
    M Source/JavaScriptCore/builtins/GeneratorPrototype.js

  Log Message:
  -----------
  [JSC] Reduce the number of @generatorResume() parameters by 2
https://bugs.webkit.org/show_bug.cgi?id=264128
<rdar://problem/117885568>

Reviewed by Yusuke Suzuki.

This change hoists @GeneratorStateCompleted check from @generatorResume() to its callers because
all three of them behave differently in that case, and defers retrieving @generatorFieldThis
up until calling into generator function's body.

This is unobservable refactor that paves the way for future yield* spec conformance changes like
https://bugs.webkit.org/show_bug.cgi?id=174756, makes implementation of iterator helpers' methods
a bit nicer, and was proven to be 0.5-1% progression on generator-heavy JetStream3 subtests.

Initially, @generatorResume() was designed this way to keep its size under 100, but since that time
maximumFunctionForCallInlineCandidateBytecodeCostForFTL was increased to 125, making this change
feasible (new size: 103).

* Source/JavaScriptCore/builtins/GeneratorPrototype.js:
(linkTimeConstant.generatorResume):
(next):
(return):
(throw):

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