From c79d1bcaff48e1a1c956ef26229857c3b0e0dedd Mon Sep 17 00:00:00 2001 From: preciz Date: Fri, 3 Apr 2026 14:17:22 +0200 Subject: [PATCH] Optimize class_attribute_list iodata construction Avoids unnecessary list wrapping and uses ?\s instead of " " to build flatter iodata, yielding a ~10% speedup when encoding class attributes. --- lib/phoenix_live_view/html_engine.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/phoenix_live_view/html_engine.ex b/lib/phoenix_live_view/html_engine.ex index c517817852..139f120375 100644 --- a/lib/phoenix_live_view/html_engine.ex +++ b/lib/phoenix_live_view/html_engine.ex @@ -186,8 +186,8 @@ defmodule Phoenix.LiveView.HTMLEngine do class_attribute_list(t, class_attribute_list(h, acc)) end - defp class_attribute_list([h | t], []), do: class_attribute_list(t, [to_string(h)]) - defp class_attribute_list([h | t], acc), do: class_attribute_list(t, [acc, " ", to_string(h)]) + defp class_attribute_list([h | t], []), do: class_attribute_list(t, to_string(h)) + defp class_attribute_list([h | t], acc), do: class_attribute_list(t, [acc, ?\s, to_string(h)]) @doc false def empty_attribute_encode(nil), do: ""