Bug 200562

Summary: [JSC] Refactor our [[Put]] to match to the latest spec
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: JavaScriptCoreAssignee: Yusuke Suzuki <ysuzuki>
Status: NEW    
Severity: Normal    
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 199864    
Bug Blocks:    

Yusuke Suzuki
Reported 2019-08-08 21:38:29 PDT
...
Attachments
Yusuke Suzuki
Comment 1 2019-08-09 01:56:25 PDT
The refactoring design is the following, 1. Remove JSObject::put hook 2. Add JSObject::attemptToSetOwnProperty, which only does [[Put]]’s own setter part. It does not involve any [[Prototype]] traversing etc. 3. Define non-virtual JSObject::put method, which does traversing and static-property initialization too. 4. (2) is only called when the structure has some flags. This flag must be correctly maintained by structure transition. 5. (2) correctly set PutPropertySlot’s status 6. Even (2) is invoked, we still see cacheable status through PutPropertySlot. Each attemptToSetOwnProperty implementation should take care of maintaining it.
Note You need to log in before you can comment on or make changes to this bug.