[webkit-reviews] review granted: [Bug 212519] [JSC] for-in should allocate new temporary register for base : [Attachment 400615] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri May 29 14:42:57 PDT 2020


Saam Barati <sbarati at apple.com> has granted Yusuke Suzuki <ysuzuki at apple.com>'s
request for review:
Bug 212519: [JSC] for-in should allocate new temporary register for base
https://bugs.webkit.org/show_bug.cgi?id=212519

Attachment 400615: Patch

https://bugs.webkit.org/attachment.cgi?id=400615&action=review




--- Comment #4 from Saam Barati <sbarati at apple.com> ---
Comment on attachment 400615
  --> https://bugs.webkit.org/attachment.cgi?id=400615
Patch

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

Nice!

r=me

> Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1855
> +    auto canUseFastHasOwnProperty = [&] {

nice!

> Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1865
> +	       return
generator.variable(generator.propertyNames().thisIdentifier,
ThisResolutionType::Local) == structureContext->baseVariable().value();

what happens for heap |this| inside arrow function?

> Source/JavaScriptCore/parser/ASTBuilder.h:1454
> +	   && (dot->base()->isResolveNode() || dot->base()->isThisNode())
> +	   && (!dot->base()->isResolveNode() ||
static_cast<ResolveNode*>(dot->base())->identifier() != "Reflect")) {

nit: you could make it:
((dot->base->isResolveNode() && ...->id() != "Reflect) ||
dot->base->isThisNode())
to avoid double vtable call


More information about the webkit-reviews mailing list