diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index 9404b20a3c1..30ee6747dda 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -1173,6 +1173,7 @@ impl HTMLImageElement {
// Step 2 for
fn react_to_decode_image_sync_steps(&self) {
let document = document_from_node(self);
+ let elem = self.upcast::();
// Step 2.1 of
if !document.is_fully_active() ||
matches!(self.current_request.borrow().state, State::Broken)
@@ -1183,6 +1184,10 @@ impl HTMLImageElement {
State::CompletelyAvailable
) {
self.resolve_image_decode_promises();
+ } else if !elem.has_attribute(&local_name!("src")) &&
+ !elem.has_attribute(&local_name!("srcset"))
+ {
+ self.reject_image_decode_promises();
}
}