RESOLVED FIXED 131579
Make NodeList.length inline-cacheable by JSC.
https://bugs.webkit.org/show_bug.cgi?id=131579
Summary Make NodeList.length inline-cacheable by JSC.
Andreas Kling
Reported 2014-04-11 19:26:48 PDT
NodeList.length currently isn't inline-cacheable because CodeGeneratorJS.pm makes everything that has and index or named getter uncacheable. I don't think we need to be doing that.
Attachments
Patch (8.06 KB, patch)
2014-04-11 19:29 PDT, Andreas Kling
no flags
Patch (1.63 KB, patch)
2014-04-11 19:30 PDT, Andreas Kling
ggaren: review+
buildbot: commit-queue-
Archive of layout-test-results from webkit-ews-15 for mac-mountainlion-wk2 (514.39 KB, application/zip)
2014-04-11 20:34 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-03 for mac-mountainlion (536.97 KB, application/zip)
2014-04-11 21:08 PDT, Build Bot
no flags
Patch (2.04 KB, patch)
2014-04-11 21:33 PDT, Andreas Kling
no flags
Patch (2.86 KB, patch)
2014-04-11 21:35 PDT, Andreas Kling
benjamin: review+
Andreas Kling
Comment 1 2014-04-11 19:29:43 PDT
Andreas Kling
Comment 2 2014-04-11 19:30:18 PDT
Geoffrey Garen
Comment 3 2014-04-11 19:47:24 PDT
Comment on attachment 229194 [details] Patch r=me
Build Bot
Comment 4 2014-04-11 20:33:59 PDT
Comment on attachment 229194 [details] Patch Attachment 229194 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/5534621794041856 New failing tests: fast/dom/SelectorAPI/resig-SelectorsAPI-test.xhtml
Build Bot
Comment 5 2014-04-11 20:34:04 PDT
Created attachment 229195 [details] Archive of layout-test-results from webkit-ews-15 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-15 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 6 2014-04-11 21:08:40 PDT
Comment on attachment 229194 [details] Patch Attachment 229194 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/6509598697586688 New failing tests: fast/dom/SelectorAPI/resig-SelectorsAPI-test.xhtml
Build Bot
Comment 7 2014-04-11 21:08:48 PDT
Created attachment 229197 [details] Archive of layout-test-results from webkit-ews-03 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-03 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Andreas Kling
Comment 8 2014-04-11 21:22:01 PDT
Comment on attachment 229194 [details] Patch I have a cleaner fix.
Andreas Kling
Comment 9 2014-04-11 21:33:56 PDT
Created attachment 229198 [details] Patch Better patch: just mark the slot cacheable when we find a builtin that takes precedence over a named/indexed item.
Andreas Kling
Comment 10 2014-04-11 21:35:37 PDT
Created attachment 229199 [details] Patch (With updated bindings test results this time.)
Oliver Hunt
Comment 11 2014-04-11 21:39:16 PDT
Comment on attachment 229199 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=229199&action=review > Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:407 > push(@getOwnPropertySlotImpl, " const ${namespaceMaybe}HashTableValue* entry = getStaticValueSlotEntryWithoutCaching<$className>(exec, propertyName);\n"); Do we still want getStaticValueSlotEntryWithoutCaching?
Andreas Kling
Comment 12 2014-04-11 21:46:29 PDT
Comment on attachment 229199 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=229199&action=review >> Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:407 >> push(@getOwnPropertySlotImpl, " const ${namespaceMaybe}HashTableValue* entry = getStaticValueSlotEntryWithoutCaching<$className>(exec, propertyName);\n"); > > Do we still want getStaticValueSlotEntryWithoutCaching? I think so. Plain getStaticValueSlot will fall back to the parent's getOwnPropertySlot, that's not what we want right?
Oliver Hunt
Comment 13 2014-04-11 22:14:30 PDT
(In reply to comment #12) > (From update of attachment 229199 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=229199&action=review > > >> Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:407 > >> push(@getOwnPropertySlotImpl, " const ${namespaceMaybe}HashTableValue* entry = getStaticValueSlotEntryWithoutCaching<$className>(exec, propertyName);\n"); > > > > Do we still want getStaticValueSlotEntryWithoutCaching? > > I think so. Plain getStaticValueSlot will fall back to the parent's getOwnPropertySlot, that's not what we want right? Haha, the sole point of getStaticValueSlotEntryWithoutCaching is to get the property getter (and setter?) without taking a property slot and doing setCacheableCustom
Andreas Kling
Comment 14 2014-04-11 23:00:07 PDT
Note You need to log in before you can comment on or make changes to this bug.