From 50d50fdf1c882ce0f3972853d252f9ffe5048427 Mon Sep 17 00:00:00 2001 From: Jan de Mooij Date: Tue, 16 Mar 2021 08:21:52 +0000 Subject: [PATCH] Bug 1697803 - Use DOM getter optimization for GetProp on WindowProxy too. r=evilpie This is similar to what we do for GetName already. Differential Revision: https://phabricator.services.mozilla.com/D108429 --- js/src/jit/CacheIR.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/js/src/jit/CacheIR.cpp b/js/src/jit/CacheIR.cpp index de5d3650ce7d..ce7ec8f8463c 100644 --- a/js/src/jit/CacheIR.cpp +++ b/js/src/jit/CacheIR.cpp @@ -1141,11 +1141,19 @@ AttachDecision GetPropIRGenerator::tryAttachWindowProxy(HandleObject obj, maybeEmitIdGuard(id); ObjOperandId windowObjId = GuardAndLoadWindowProxyWindow(writer, objId, windowObj); - ValOperandId receiverId = writer.boxObject(windowObjId); - EmitCallGetterResult(cx_, writer, windowObj, holder, shape, windowObjId, - receiverId, mode_); - trackAttached("WindowProxyGetter"); + if (CanAttachDOMGetterSetter(cx_, JSJitInfo::Getter, windowObj, shape, + mode_)) { + EmitCallDOMGetterResult(cx_, writer, windowObj, holder, shape, + windowObjId); + trackAttached("WindowProxyDOMGetter"); + } else { + ValOperandId receiverId = writer.boxObject(windowObjId); + EmitCallGetterResult(cx_, writer, windowObj, holder, shape, windowObjId, + receiverId, mode_); + trackAttached("WindowProxyGetter"); + } + return AttachDecision::Attach; }