[webkit-reviews] review granted: [Bug 158557] [WebIDL] Don't eagerly reify constructor and prototype properties : [Attachment 428167] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon May 17 13:00:53 PDT 2021
Saam Barati <sbarati at apple.com> has granted Alexey Shvayka
<shvaikalesh at gmail.com>'s request for review:
Bug 158557: [WebIDL] Don't eagerly reify constructor and prototype properties
https://bugs.webkit.org/show_bug.cgi?id=158557
Attachment 428167: Patch
https://bugs.webkit.org/attachment.cgi?id=428167&action=review
--- Comment #40 from Saam Barati <sbarati at apple.com> ---
Comment on attachment 428167
--> https://bugs.webkit.org/attachment.cgi?id=428167
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=428167&action=review
LGTM, just a few comments.
> Source/JavaScriptCore/ChangeLog:16
> + 2. Enables LazyPropertyCallback to return GetterSetter /
CustomGetterSetter, ensuring
> + correct structure flags and slot initialization.
What was it used for before? Might be worth stating that here
> Source/JavaScriptCore/runtime/JSObject.cpp:795
> + slot.disableCaching();
I wonder if long term we could have a way of telling the IC to look at the new
result from the structure lookup on the LOC below this. Right now, if we see a
different structure, we might assume a Transition. Maybe we could find a way to
tell the IC to ignore this reification just once. Might not be important now,
but maybe longer term, it would be a nice thing to do.
> Source/JavaScriptCore/runtime/JSObject.cpp:796
> + return
lookupPropertyForPut<LookupKind::StructureOnly>(vm, object,
object->structure(vm), propertyName, slot);
nit:
I think a nicer way to do this would be to just make the structure lookup a
lambda. Do away with this LookupKind enum. The main caller of this function
shouldn't worry about this implementation detail.
Then here, instead of recursing with a different enum, you can just return the
invocation of the structure lookup lambda.
> Source/JavaScriptCore/runtime/JSObject.cpp:798
> + // FIXME: Remove this after writable accessors are
introduced to static hash tables.
not sure we really need this FIXME anymore
> Source/JavaScriptCore/runtime/Lookup.h:41
> +// FIXME: Templatize HashTable and CompactHashIndex so int8_t sized values
can be used for small tables to reduce binary size.
link a bugzilla
> Source/JavaScriptCore/runtime/Lookup.h:109
> + auto isEnabledCallback =
reinterpret_cast<IsLazyPropertyEnabledCallback>(m_values.value2);
bitwise_cast
> Source/WebCore/ChangeLog:22
> + Another important advantage: a feature that was enabled after its
interface was created,
> + immediately becomes usable (no page reload needed).
except for inline caching?
More information about the webkit-reviews
mailing list