Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fa309035221a7368ed9d2e4b4a139a3169c5c36a
      
https://github.com/WebKit/WebKit/commit/fa309035221a7368ed9d2e4b4a139a3169c5c36a
  Author: Yusuke Suzuki <[email protected]>
  Date:   2023-05-02 (Tue, 02 May 2023)

  Changed paths:
    A JSTests/stress/json-stringify-getter-call-complex.js
    M Source/JavaScriptCore/runtime/JSONObject.cpp
    M Source/JavaScriptCore/runtime/JSObject.cpp
    M Source/JavaScriptCore/runtime/JSObjectInlines.h
    M Source/JavaScriptCore/runtime/ObjectConstructorInlines.h

  Log Message:
  -----------
  [JSC] Stringifier should quickly get names even if it involves accessors
https://bugs.webkit.org/show_bug.cgi?id=256231
rdar://108812378

Reviewed by Justin Michaud.

Even though the object has accessors, we can still enumerate properties quickly 
unless
structure is the same. This patch adds a fast path for object including 
accessors to
collect property names and offsets. Then we can use these information to get 
GetterSetter,
and even continue using these information so long as structure is not changed.

* Source/JavaScriptCore/runtime/JSONObject.cpp:
(JSC::Stringifier::Holder::isArray const):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Stringifier::Holder::hasFastObjectProperties const): Deleted.
* Source/JavaScriptCore/runtime/JSObjectInlines.h:
(JSC::JSObject::fastForEachPropertyWithSideEffectFreeFunctor):
* Source/JavaScriptCore/runtime/ObjectConstructorInlines.h:
(JSC::canPerformFastPropertyNameEnumerationForJSONStringifyWithSideEffect):
(JSC::canPerformFastPropertyNameAndOffsetEnumerationForJSONStringifyWithSideEffect):

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to