Bug 180644 - [JSC] Optimize Object.assign by single transition acceleration
Summary: [JSC] Optimize Object.assign by single transition acceleration
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Yusuke Suzuki
URL:
Keywords: InRadar
Depends on:
Blocks: 185350
  Show dependency treegraph
 
Reported: 2017-12-11 06:04 PST by Yusuke Suzuki
Modified: 2018-05-05 06:19 PDT (History)
7 users (show)

See Also:


Attachments
Patch (3.46 KB, patch)
2017-12-11 06:07 PST, Yusuke Suzuki
no flags Details | Formatted Diff | Diff
Patch (1.88 KB, patch)
2017-12-12 23:44 PST, Yusuke Suzuki
sbarati: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yusuke Suzuki 2017-12-11 06:04:06 PST
[JSC] Optimize Object.assign by single transition acceleration and reify shortcut
Comment 1 Yusuke Suzuki 2017-12-11 06:07:05 PST
Created attachment 328962 [details]
Patch
Comment 2 Saam Barati 2017-12-11 11:34:07 PST
Comment on attachment 328962 [details]
Patch

I’m r- because I don’t want to add more code for this reification method table. I’ve already spoken to JF and other folks offline about removing this call from this code path. I think the right answer is to either:
- Call defineOwnProperty for static getter/setters on classes. We can probably keep calling putDirect when defining it on an object literal since plain objects don’t have lazy properties. 
- move this reification call into define_getter_setter_by_id
Comment 3 Yusuke Suzuki 2017-12-12 18:11:43 PST
(In reply to Saam Barati from comment #2)
> Comment on attachment 328962 [details]
> Patch
> 
> I’m r- because I don’t want to add more code for this reification method
> table. I’ve already spoken to JF and other folks offline about removing this
> call from this code path. I think the right answer is to either:
> - Call defineOwnProperty for static getter/setters on classes. We can
> probably keep calling putDirect when defining it on an object literal since
> plain objects don’t have lazy properties. 
> - move this reification call into define_getter_setter_by_id

Hm, ok, I'll drop this part from my patch. Yeah, this reification method is called in putDirect path, so everytime we put non-indexed property, this function is called. We should remove or alleviate this.
Comment 4 Yusuke Suzuki 2017-12-12 23:44:12 PST
Created attachment 329210 [details]
Patch
Comment 5 Yusuke Suzuki 2017-12-12 23:51:22 PST
Committed r225840: <https://trac.webkit.org/changeset/225840>
Comment 6 Radar WebKit Bug Importer 2017-12-12 23:52:15 PST
<rdar://problem/36015370>