mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-05-05 10:42:51 +00:00
The test262 tests under RegExp/property-escapes/generated will invoke Reflect.apply with up to 10,000 arguments at a time. In LibJS, when the call stack reached VM::call_internal, we transfer those arguments from a MarkedValueList to the execution context's arguments Vector. Because these types differ (MarkedValueList is a Vector<Value, 32>), the arguments are copied rather than moved. By changing the arguments vector to a MarkedValueList, we can properly move the passed arguments over. This shaves about 2 seconds off the following test262 test (from 15sec): RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js |
||
---|---|---|
.. | ||
Pass | ||
ASTCodegen.cpp | ||
BasicBlock.cpp | ||
BasicBlock.h | ||
Generator.cpp | ||
Generator.h | ||
Instruction.cpp | ||
Instruction.h | ||
Interpreter.cpp | ||
Interpreter.h | ||
Label.h | ||
Op.cpp | ||
Op.h | ||
PassManager.h | ||
Register.h | ||
StringTable.cpp | ||
StringTable.h |