tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit b2239a2304b0cb1ce21718cd19095b5a5971fa6f
parent c390eba46da784f544d496cda4a989dba5ab95dc
Author: Jan de Mooij <jdemooij@mozilla.com>
Date:   Fri, 12 Dec 2025 10:35:55 +0000

Bug 2005479 part 8 - Use generate_lir: true for DeleteProperty and DeleteElement. r=iain

The LIR instructions had a different name (with a Call prefix) and this patch fixes that too.

Differential Revision: https://phabricator.services.mozilla.com/D276052

Diffstat:
Mjs/src/jit/CodeGenerator.cpp | 4++--
Mjs/src/jit/LIROps.yaml | 15---------------
Mjs/src/jit/Lowering.cpp | 8++++----
Mjs/src/jit/MIROps.yaml | 4++++
4 files changed, 10 insertions(+), 21 deletions(-)

diff --git a/js/src/jit/CodeGenerator.cpp b/js/src/jit/CodeGenerator.cpp @@ -18464,7 +18464,7 @@ void CodeGenerator::visitNewPrivateName(LNewPrivateName* ins) { callVM<Fn, NewPrivateName>(ins); } -void CodeGenerator::visitCallDeleteProperty(LCallDeleteProperty* lir) { +void CodeGenerator::visitDeleteProperty(LDeleteProperty* lir) { pushArg(ImmGCPtr(lir->mir()->name())); pushArg(ToValue(lir->value())); @@ -18476,7 +18476,7 @@ void CodeGenerator::visitCallDeleteProperty(LCallDeleteProperty* lir) { } } -void CodeGenerator::visitCallDeleteElement(LCallDeleteElement* lir) { +void CodeGenerator::visitDeleteElement(LDeleteElement* lir) { pushArg(ToValue(lir->index())); pushArg(ToValue(lir->value())); diff --git a/js/src/jit/LIROps.yaml b/js/src/jit/LIROps.yaml @@ -2629,21 +2629,6 @@ call_instruction: true mir_op: true -- name: CallDeleteProperty - result_type: WordSized - operands: - value: BoxedValue - call_instruction: true - mir_op: DeleteProperty - -- name: CallDeleteElement - result_type: WordSized - operands: - value: BoxedValue - index: BoxedValue - call_instruction: true - mir_op: DeleteElement - - name: ObjectToIterator result_type: WordSized operands: diff --git a/js/src/jit/Lowering.cpp b/js/src/jit/Lowering.cpp @@ -6229,15 +6229,15 @@ void LIRGenerator::visitAssertShape(MAssertShape* ins) { } void LIRGenerator::visitDeleteProperty(MDeleteProperty* ins) { - LCallDeleteProperty* lir = - new (alloc()) LCallDeleteProperty(useBoxAtStart(ins->value())); + LDeleteProperty* lir = + new (alloc()) LDeleteProperty(useBoxAtStart(ins->value())); defineReturn(lir, ins); assignSafepoint(lir, ins); } void LIRGenerator::visitDeleteElement(MDeleteElement* ins) { - LCallDeleteElement* lir = new (alloc()) LCallDeleteElement( - useBoxAtStart(ins->value()), useBoxAtStart(ins->index())); + LDeleteElement* lir = new (alloc()) + LDeleteElement(useBoxAtStart(ins->value()), useBoxAtStart(ins->index())); defineReturn(lir, ins); assignSafepoint(lir, ins); } diff --git a/js/src/jit/MIROps.yaml b/js/src/jit/MIROps.yaml @@ -2875,6 +2875,8 @@ name: PropertyName* strict: bool result_type: Boolean + possibly_calls: true + generate_lir: true - name: DeleteElement operands: @@ -2883,6 +2885,8 @@ arguments: strict: bool result_type: Boolean + possibly_calls: true + generate_lir: true - name: SetPropertyCache gen_boilerplate: false