diff --git a/Tests/LibWeb/Layout/expected/css-rect-value-with-calc-dont-crash.txt b/Tests/LibWeb/Layout/expected/css-rect-value-with-calc-dont-crash.txt
new file mode 100644
index 00000000000..9e323a97139
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/css-rect-value-with-calc-dont-crash.txt
@@ -0,0 +1,10 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 800x600 [BFC] children: not-inline
+ BlockContainer
at (8,8) content-size 784x0 children: not-inline
+ BlockContainer at (8,8) content-size 784x0 children: inline
+ TextNode <#text>
+
+ViewportPaintable (Viewport<#document>) [0,0 800x600]
+ PaintableWithLines (BlockContainer) [0,0 800x600]
+ PaintableWithLines (BlockContainer) [8,8 784x0]
+ PaintableWithLines (BlockContainer
) [8,8 784x0]
diff --git a/Tests/LibWeb/Layout/input/css-rect-value-with-calc-dont-crash.html b/Tests/LibWeb/Layout/input/css-rect-value-with-calc-dont-crash.html
new file mode 100644
index 00000000000..39cd4a6310c
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/css-rect-value-with-calc-dont-crash.html
@@ -0,0 +1,6 @@
+
+
diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
index 888813b8cc1..d53df351411 100644
--- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
+++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
@@ -2710,7 +2710,10 @@ RefPtr Parser::parse_rect_value(TokenStream& toke
auto maybe_length = parse_length(argument_tokens);
if (!maybe_length.has_value())
return nullptr;
- // FIXME: Support calculated lengths
+ if (maybe_length.value().is_calculated()) {
+ dbgln("FIXME: Support calculated lengths in rect(): {}", maybe_length.value().calculated()->to_string());
+ return nullptr;
+ }
params.append(maybe_length.value().value());
}
argument_tokens.skip_whitespace();