Bug 172411

Summary: [JSC] Speedup Object.assign for slow case by using propertyIsEnumerable
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: New BugsAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED FIXED    
Severity: Normal CC: buildbot, commit-queue, fpizlo, keith_miller, mark.lam, msaboff, rniwa, saam, sam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Yusuke Suzuki
Reported 2017-05-19 23:35:23 PDT
[JSC] Speedup Object.assign for slow case by using propertyIsEnumerable
Attachments
Patch (8.05 KB, patch)
2017-05-19 23:39 PDT, Yusuke Suzuki
no flags
Yusuke Suzuki
Comment 1 2017-05-19 23:39:58 PDT
Yusuke Suzuki
Comment 2 2017-05-20 12:34:40 PDT
Comment on attachment 310765 [details] Patch Thanks!
WebKit Commit Bot
Comment 3 2017-05-20 13:02:42 PDT
Comment on attachment 310765 [details] Patch Clearing flags on attachment: 310765 Committed r217191: <http://trac.webkit.org/changeset/217191>
WebKit Commit Bot
Comment 4 2017-05-20 13:02:44 PDT
All reviewed patches have been landed. Closing bug.
Saam Barati
Comment 6 2017-05-20 15:26:17 PDT
Comment on attachment 310765 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=310765&action=review > Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp:811 > + bool enumerable = object->getOwnPropertyDescriptor(exec, propertyName, descriptor) && descriptor.enumerable(); You should release the scope before this call.
Yusuke Suzuki
Comment 7 2017-05-20 15:30:00 PDT
Comment on attachment 310765 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=310765&action=review >> Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp:811 >> + bool enumerable = object->getOwnPropertyDescriptor(exec, propertyName, descriptor) && descriptor.enumerable(); > > You should release the scope before this call. Nice. And we need to add scope.release() in objectProtoFuncPropertyIsEnumerable too. I'll fix it as a follow-up patch.
Yusuke Suzuki
Comment 8 2017-05-20 15:40:46 PDT
Yusuke Suzuki
Comment 9 2017-05-21 07:40:00 PDT
It seems that this significantly optimizes Speedometer React-Redux-TodoMVC. From 603.9000000000015 ms to 530.0000000000073 ms! (r217184 v.s. r217194) This further motivates us to introduce more optimizations for Object.assign.
Saam Barati
Comment 10 2017-05-21 13:02:12 PDT
(In reply to Yusuke Suzuki from comment #9) > It seems that this significantly optimizes Speedometer React-Redux-TodoMVC. > From 603.9000000000015 ms to 530.0000000000073 ms! (r217184 v.s. r217194) > This further motivates us to introduce more optimizations for Object.assign. Nice.
Note You need to log in before you can comment on or make changes to this bug.