Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ae0b70efbe6b5326518eef3160144494748d8b11
      
https://github.com/WebKit/WebKit/commit/ae0b70efbe6b5326518eef3160144494748d8b11
  Author: Justin Michaud <[email protected]>
  Date:   2023-11-01 (Wed, 01 Nov 2023)

  Changed paths:
    A JSTests/stress/reflect-construct-reenter-prototype-get-different-global.js
    A JSTests/stress/reflect-construct-reenter-prototype-get.js
    M Source/JavaScriptCore/runtime/InternalFunction.cpp

  Log Message:
  -----------
  Reflect.construct can churn cached internalFunctionAllocationStructure
https://bugs.webkit.org/show_bug.cgi?id=263945
rdar://117556294

Reviewed by Keith Miller.
Reviewed by Mark Lam.

Reflect.construct can churn the cached internalFunctionAllocationStructure
when calling the target's prototype getter, causing us to fail a debug assert.
This isn't really a problem though, since accidentally making a second structure
shouldn't break anything (like our watchpoints or structure transition logic).

We just add an extra check to silence the debug assert and be slightly more 
optimal.

* JSTests/stress/reflect-construct-reenter-prototype-get-different-global.js: 
Added.
(newTarget):
(get let):
* JSTests/stress/reflect-construct-reenter-prototype-get.js: Added.
(newTarget):
(get let):
* Source/JavaScriptCore/runtime/InternalFunction.cpp:
(JSC::InternalFunction::createSubclassStructure):

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


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

Reply via email to