Files
ladybird/Tests/LibJS/Bytecode/input/computed-member-access.js
Andreas Kling 49f2f1e7cd LibJS: Skip unnecessary Mov in emit_load_from_reference for reads
When MemberExpression::generate_bytecode calls emit_load_from_reference,
it only uses the loaded_value and discards the reference operands. For
computed member expressions (e.g. a[0]), this was generating an
unnecessary Mov to save the property register for potential store-back.

Add a ReferenceMode parameter to emit_load_from_reference. When LoadOnly
is passed, the computed property path skips the register save and Mov.
2026-02-15 23:21:46 +01:00

14 lines
308 B
JavaScript

// Test that computed member reads don't generate an unnecessary Mov
// to save the property register (only needed for store-back operations).
function computed_read(a) {
return a[0];
}
function computed_read_expression(a, i) {
return a[i];
}
computed_read([1]);
computed_read_expression([1], 0);