Changeset 283096 in webkit for trunk/Source/JavaScriptCore/bytecompiler
- Timestamp:
- Sep 26, 2021, 9:25:46 PM (4 years ago)
- Location:
- trunk/Source/JavaScriptCore/bytecompiler
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
r283095 r283096 106 106 CASE(OpJstricteq) 107 107 CASE(OpJneq) 108 CASE(OpJeqPtr)109 108 CASE(OpJneqPtr) 110 109 CASE(OpJnstricteq) … … 1497 1496 { 1498 1497 OpJneqPtr::emit(this, cond, moveLinkTimeConstant(nullptr, LinkTimeConstant::applyFunction), target.bind(this)); 1499 }1500 1501 void BytecodeGenerator::emitJumpIfSentinelString(RegisterID* cond, Label& target)1502 {1503 OpJeqPtr::emit(this, cond, emitLoad(nullptr, JSValue(vm().smallStrings.sentinelString())), target.bind(this));1504 1498 } 1505 1499 -
trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h
r283095 r283096 859 859 void emitJumpIfNotFunctionCall(RegisterID* cond, Label& target); 860 860 void emitJumpIfNotFunctionApply(RegisterID* cond, Label& target); 861 void emitJumpIfSentinelString(RegisterID* cond, Label& target);862 861 unsigned emitWideJumpIfNotFunctionHasOwnProperty(RegisterID* cond, Label& target); 863 862 void recordHasOwnPropertyInForInLoop(ForInContext&, unsigned branchOffset, Label& genericPath); -
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r283095 r283096 4228 4228 // FIXME: We should have a way to see if anyone is actually using the propertyName for something other than a get_by_val. If not, we could eliminate the toString in this opcode. 4229 4229 generator.emitEnumeratorNext(propertyName.get(), mode.get(), index.get(), base.get(), enumerator.get()); 4230 generator.emitJumpIfSentinelString(propertyName.get(), scope->breakTarget()); 4230 4231 // Note, choosing undefined or null helps please DFG's Abstract Interpreter as it doesn't distinguish null and undefined as types (via SpecOther). 4232 generator.emitJumpIfTrue(generator.emitIsUndefinedOrNull(generator.newTemporary(), propertyName.get()), scope->breakTarget()); 4231 4233 4232 4234 this->emitLoopHeader(generator, propertyName.get());
Note:
See TracChangeset
for help on using the changeset viewer.