Ignore:
Timestamp:
Sep 27, 2021, 12:48:10 AM (4 years ago)
Author:
[email protected]
Message:

[JSC] Use op_jeq_ptr for empty JSPropertyNameEnumerator check
https://bugs.webkit.org/show_bug.cgi?id=230817

Reviewed by Saam Barati.

We use op_jeq_ptr for empty JSPropertyNameEnumerator check instead of stricteq for smaller
bytecode size and efficient branching in LLInt and Baseline. In DFG and FTL, both will get
the same nodes.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitJumpIfEmptyPropertyNameEnumerator):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ForInNode::emitBytecode):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp

    r283098 r283101  
    42174217
    42184218        enumerator = generator.emitGetPropertyEnumerator(generator.newTemporary(), base.get());
    4219         generator.moveLinkTimeConstant(propertyName.get(), LinkTimeConstant::emptyPropertyNameEnumerator);
    4220         generator.emitEqualityOp<OpStricteq>(propertyName.get(), enumerator.get(), propertyName.get());
    4221         generator.emitJumpIfTrue(propertyName.get(), scope->breakTarget());
     4219        generator.emitJumpIfEmptyPropertyNameEnumerator(enumerator.get(), scope->breakTarget());
    42224220
    42234221        generator.emitLabel(*scope->continueTarget());
Note: See TracChangeset for help on using the changeset viewer.