RESOLVED FIXED 185348
[JSC] Object.assign for final objects should be faster
https://bugs.webkit.org/show_bug.cgi?id=185348
Summary [JSC] Object.assign for final objects should be faster
Yusuke Suzuki
Reported 2018-05-05 01:17:04 PDT
[JSC] Object.assign for final objects should be faster
Attachments
WIP (8.10 KB, patch)
2018-05-05 01:22 PDT, Yusuke Suzuki
no flags
WIP (8.21 KB, patch)
2018-05-05 01:24 PDT, Yusuke Suzuki
no flags
WIP (8.59 KB, patch)
2018-05-05 01:37 PDT, Yusuke Suzuki
no flags
Archive of layout-test-results from ews205 for win-future (12.76 MB, application/zip)
2018-05-05 04:07 PDT, EWS Watchlist
no flags
Patch (17.36 KB, patch)
2018-05-05 20:33 PDT, Yusuke Suzuki
no flags
Patch (17.23 KB, patch)
2018-05-05 20:41 PDT, Yusuke Suzuki
no flags
Patch (18.03 KB, patch)
2018-05-05 21:13 PDT, Yusuke Suzuki
no flags
Patch (19.11 KB, patch)
2018-05-09 01:17 PDT, Yusuke Suzuki
saam: review+
Yusuke Suzuki
Comment 1 2018-05-05 01:22:56 PDT
Yusuke Suzuki
Comment 2 2018-05-05 01:24:09 PDT
Yusuke Suzuki
Comment 3 2018-05-05 01:37:41 PDT
EWS Watchlist
Comment 4 2018-05-05 04:07:11 PDT
Comment on attachment 339639 [details] WIP Attachment 339639 [details] did not pass win-ews (win): Output: http://webkit-queues.webkit.org/results/7575044 New failing tests: http/tests/security/video-poster-cross-origin-crash2.html
EWS Watchlist
Comment 5 2018-05-05 04:07:22 PDT
Created attachment 339645 [details] Archive of layout-test-results from ews205 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews205 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Yusuke Suzuki
Comment 6 2018-05-05 20:33:33 PDT
Yusuke Suzuki
Comment 7 2018-05-05 20:41:54 PDT
Yusuke Suzuki
Comment 8 2018-05-05 21:13:56 PDT
Saam Barati
Comment 9 2018-05-08 08:36:42 PDT
Comment on attachment 339671 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=339671&action=review > Source/JavaScriptCore/runtime/ObjectConstructor.cpp:316 > + if (!source->staticPropertiesReified()) { Why do this instead of just walk them? JSObject::getOwnPropertyNames walks these instead of reifying them > Source/JavaScriptCore/runtime/ObjectConstructor.cpp:344 > + structure->forEachProperty(vm, [&] (const PropertyMapEntry& entry) -> bool { Do you want to ignore private symbols here? > Source/JavaScriptCore/runtime/ObjectConstructor.cpp:360 > + targetCanPerformFastPut = false; Make sure you have a test for exactly this if you don’t already
Yusuke Suzuki
Comment 10 2018-05-09 01:17:23 PDT
Comment on attachment 339671 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=339671&action=review Thanks! >> Source/JavaScriptCore/runtime/ObjectConstructor.cpp:316 >> + if (!source->staticPropertiesReified()) { > > Why do this instead of just walk them? JSObject::getOwnPropertyNames walks these instead of reifying them We would like to reflect static properties first before checking structure's flags since structure's flag would not reflect the properties defined by static properties. >> Source/JavaScriptCore/runtime/ObjectConstructor.cpp:344 >> + structure->forEachProperty(vm, [&] (const PropertyMapEntry& entry) -> bool { > > Do you want to ignore private symbols here? Nice catch! Fixed, and added the test for this. >> Source/JavaScriptCore/runtime/ObjectConstructor.cpp:360 >> + targetCanPerformFastPut = false; > > Make sure you have a test for exactly this if you don’t already I've added the test.
Yusuke Suzuki
Comment 11 2018-05-09 01:17:53 PDT
Yusuke Suzuki
Comment 12 2018-05-10 20:28:20 PDT
Ping?
Saam Barati
Comment 13 2018-05-10 20:33:19 PDT
Comment on attachment 339943 [details] Patch r=me
Yusuke Suzuki
Comment 14 2018-05-10 20:38:16 PDT
Radar WebKit Bug Importer
Comment 15 2018-05-10 20:40:20 PDT
Note You need to log in before you can comment on or make changes to this bug.