Skip to content

Commit

Permalink
stop using Vector::unsafeAppendWithoutCapacityCheck() in ArrayPattern…
Browse files Browse the repository at this point in the history
…Node::emitDirectBinding()

https://bugs.webkit.org/show_bug.cgi?id=264549

Reviewed by Darin Adler.

* Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:
(JSC::ArrayPatternNode::emitDirectBinding):

Canonical link: https://commits.webkit.org/270530@main
  • Loading branch information
cdumez committed Nov 10, 2023
1 parent f870891 commit 8ca51dd
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5542,18 +5542,17 @@ RegisterID* ArrayPatternNode::emitDirectBinding(BytecodeGenerator& generator, Re
resultRegister = generator.emitNewArray(generator.newTemporary(), nullptr, 0, ArrayWithUndecided);
if (m_targetPatterns.size() != elements.size())
return nullptr;
Vector<RefPtr<RegisterID>> registers;
registers.reserveInitialCapacity(m_targetPatterns.size());
for (size_t i = 0; i < m_targetPatterns.size(); i++) {
registers.unsafeAppendWithoutCapacityCheck(generator.newTemporary());
generator.emitNode(registers.last().get(), elements[i]);
Vector<RefPtr<RegisterID>> registers(m_targetPatterns.size(), [&](size_t i) {
RefPtr newRegister = generator.newTemporary();
generator.emitNode(newRegister.get(), elements[i]);
if (m_targetPatterns[i].defaultValue)
assignDefaultValueIfUndefined(generator, registers.last().get(), m_targetPatterns[i].defaultValue);
assignDefaultValueIfUndefined(generator, newRegister.get(), m_targetPatterns[i].defaultValue);
if (resultRegister) {
RefPtr<RegisterID> index = generator.emitLoad(nullptr, jsNumber(i));
generator.emitDirectPutByVal(resultRegister.get(), index.get(), registers.last().get());
RefPtr index = generator.emitLoad(nullptr, jsNumber(i));
generator.emitDirectPutByVal(resultRegister.get(), index.get(), newRegister.get());
}
}
return newRegister;
});

for (size_t i = 0; i < m_targetPatterns.size(); i++) {
if (m_targetPatterns[i].pattern)
Expand Down

0 comments on commit 8ca51dd

Please sign in to comment.