Bug 234538

Summary: [WebIDL] Eagerly allocate element wrappers onto a butterfly storage of a static NodeList
Product: WebKit Reporter: Alexey Shvayka <ashvayka>
Component: BindingsAssignee: Alexey Shvayka <ashvayka>
Status: ASSIGNED ---    
Severity: Normal CC: cdumez, esprehn+autocc, ews-watchlist, ggaren, kangil.han, keith_miller, mark.lam, msaboff, sbarati, tzagallo, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Bug Depends on: 218849    
Bug Blocks:    
Attachments:
Description Flags
WIP none

Description Alexey Shvayka 2021-12-20 17:38:50 PST
Preliminary microbenchmark results suggest 65% speed-up if a static NodeList is iterated at least once.
Comment 1 Radar WebKit Bug Importer 2021-12-27 17:39:27 PST
<rdar://problem/86946513>
Comment 2 Alexey Shvayka 2022-01-06 11:53:01 PST
Created attachment 448520 [details]
WIP
Comment 3 Geoffrey Garen 2022-01-06 12:23:13 PST
Comment on attachment 448520 [details]
WIP

View in context: https://bugs.webkit.org/attachment.cgi?id=448520&action=review

> Source/JavaScriptCore/runtime/JSTypeInfo.h:113
> +    bool getOwnPropertySlotByIndexIsWrongAboutReadOnly() const { return isSetOnFlags2<GetOwnPropertySlotByIndexIsWrongAboutReadOnly>(); }

I'd suggest a name that describes what is true rather than what is false. Maybe something like "IndexedPropertiesAreReadOnly" or "PutByIndexOverrideWillProhibitWrites" or something like that.
Comment 4 Alexey Shvayka 2022-08-01 13:34:33 PDT
Pull request: https://github.com/WebKit/WebKit/pull/2915