Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ed9f215ec22744e680c5a1f6f382f2b7afca56ad
      
https://github.com/WebKit/WebKit/commit/ed9f215ec22744e680c5a1f6f382f2b7afca56ad
  Author: Alexey Shvayka <ashva...@apple.com>
  Date:   2024-03-13 (Wed, 13 Mar 2024)

  Changed paths:
    M Source/JavaScriptCore/runtime/ArrayIteratorPrototype.h
    M Source/JavaScriptCore/runtime/AsyncGeneratorFunctionPrototype.h
    M Source/JavaScriptCore/runtime/IntlLocaleConstructor.h
    M Source/JavaScriptCore/runtime/JSModuleLoader.h
    M Source/JavaScriptCore/runtime/MapConstructor.cpp
    M Source/JavaScriptCore/runtime/MapPrototype.h
    M Source/JavaScriptCore/runtime/RegExpStringIteratorPrototype.h
    M Source/JavaScriptCore/runtime/SetPrototype.h
    M Source/JavaScriptCore/runtime/StringIteratorPrototype.h
    M Source/JavaScriptCore/runtime/Structure.cpp
    M Source/JavaScriptCore/tools/JSDollarVM.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyArrayConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyArrayConstructor.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyArrayPrototype.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyArrayPrototype.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyExceptionConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyExceptionConstructor.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyGlobalConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyGlobalConstructor.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyLinkErrorConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyLinkErrorConstructor.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyLinkErrorPrototype.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyLinkErrorPrototype.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyStructConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyStructConstructor.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyStructPrototype.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyStructPrototype.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.h
    M Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
    M Source/WebCore/bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.h
    M Source/WebCore/bindings/scripts/test/JS/JSLocalDOMWindow.h
    M Source/WebCore/bindings/scripts/test/JS/JSPaintWorkletGlobalScope.h
    M Source/WebCore/bindings/scripts/test/JS/JSServiceWorkerGlobalScope.h
    M Source/WebCore/bindings/scripts/test/JS/JSSharedWorkerGlobalScope.h
    M Source/WebCore/bindings/scripts/test/JS/JSWorkerGlobalScope.h
    M Source/WebCore/bindings/scripts/test/JS/JSWorkletGlobalScope.h

  Log Message:
  -----------
  [JSC] Validate that HasStaticPropertyTable is present only if there is a 
static property table
https://bugs.webkit.org/show_bug.cgi?id=270889
<rdar://problem/124493762>

Reviewed by Yusuke Suzuki.

This change:

  1) Removes empty static property tables.
  2) Removes HasStaticPropertyTable structure flag from classes without static 
property tables.
  3) Fixes bindings generator condition for setting HasStaticPropertyTable to 
match the condition for
     setting `staticPropHashTable`, which isn't observable because we eagerly 
reify all static properties.
  4) Adds an assertion to validate that HasStaticPropertyTable is present only 
if there is an own or
     inherited static property table.

1) and 2) are performance micro-optimizations that avoid calling into 
getOwnStaticPropertySlot()
for property lookup if there is no static property table, own nor inherited, 
while 4) ensures
consistency across the JSC codebase.

* Source/JavaScriptCore/runtime/ArrayIteratorPrototype.h:
* Source/JavaScriptCore/runtime/AsyncGeneratorFunctionPrototype.h:
* Source/JavaScriptCore/runtime/IntlLocaleConstructor.h:
* Source/JavaScriptCore/runtime/JSModuleLoader.h:
* Source/JavaScriptCore/runtime/MapConstructor.cpp:
* Source/JavaScriptCore/runtime/MapPrototype.h:
* Source/JavaScriptCore/runtime/RegExpStringIteratorPrototype.h:
* Source/JavaScriptCore/runtime/SetPrototype.h:
* Source/JavaScriptCore/runtime/StringIteratorPrototype.h:
* Source/JavaScriptCore/runtime/Structure.cpp:
(JSC::Structure::validateFlags):
* Source/JavaScriptCore/tools/JSDollarVM.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyArrayConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyArrayConstructor.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyArrayPrototype.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyArrayPrototype.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorConstructor.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyExceptionConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyExceptionConstructor.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyGlobalConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyGlobalConstructor.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyLinkErrorConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyLinkErrorConstructor.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyLinkErrorPrototype.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyLinkErrorPrototype.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyMemoryConstructor.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorConstructor.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyStructConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyStructConstructor.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyStructPrototype.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyStructPrototype.h:
* Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp:
* Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.h:
* Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:
(GeneratePrototypeDeclaration):
* Source/WebCore/bindings/scripts/test/JS/*: Updated.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to