diff --git a/dom/base/DOMIntersectionObserver.cpp b/dom/base/DOMIntersectionObserver.cpp index cb624fb17d..0834bc05c9 100644 --- a/dom/base/DOMIntersectionObserver.cpp +++ b/dom/base/DOMIntersectionObserver.cpp @@ -411,7 +411,13 @@ DOMIntersectionObserver::Update(nsIDocument* aDocument, DOMHighResTimeStamp time double targetArea = targetRect.width * targetRect.height; double intersectionArea = !intersectionRect ? 0 : intersectionRect->width * intersectionRect->height; - double intersectionRatio = targetArea > 0.0 ? intersectionArea / targetArea : 0.0; + + double intersectionRatio; + if (targetArea > 0.0) { + intersectionRatio = intersectionArea / targetArea; + } else { + intersectionRatio = intersectionRect.isSome() ? 1.0 : 0.0; + } size_t threshold = -1; if (intersectionRatio > 0.0) {