Bug 256026

Summary: Investigate fast path for Object.assign({}, nonEmptyObject)
Product: WebKit Reporter: Jarred Sumner <jarred>
Component: JavaScriptCoreAssignee: Yijia Huang <yijia_huang>
Status: NEW ---    
Severity: Normal CC: ashvayka, mark.lam, webkit-bug-importer, ysuzuki
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Jarred Sumner 2023-04-26 21:28:23 PDT
The following common pattern could possibly be optimized further:

```
Object.assign({}, nonEmptyObject);
```

If we know that {} is an empty final object, could we reuse nonEmptyObject's JSC::Structure?


> https://github.com/WebKit/WebKit/pull/13220#issuecomment-1524421218
> I think probably opposite case is getting many benefit from the past optimizations already, but we could get better by detecting empty object of the target in DFG / FTL and change it to object-cloning fast path. Can you file a bugzilla to track this kind of possibility?
Comment 1 Radar WebKit Bug Importer 2023-05-03 21:29:22 PDT
<rdar://problem/108875645>
Comment 2 Yijia Huang 2023-08-30 11:52:09 PDT
Pull request: https://github.com/WebKit/WebKit/pull/17242
Comment 3 Yijia Huang 2023-09-05 09:26:30 PDT
Pull request: https://github.com/WebKit/WebKit/pull/17312