From 9b3d4accd9db6250677aeb30c9e77724f71f0e50 Mon Sep 17 00:00:00 2001 From: Guillaume Hivert Date: Tue, 17 Sep 2024 18:38:02 +0200 Subject: [PATCH] Remove `fold_right` functions to avoid stack overflows on JS --- sketch/src/sketch/internals/style.gleam | 2 +- sketch_lustre/src/sketch/lustre/element.gleam | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sketch/src/sketch/internals/style.gleam b/sketch/src/sketch/internals/style.gleam index 980ca39..e3f8fd4 100644 --- a/sketch/src/sketch/internals/style.gleam +++ b/sketch/src/sketch/internals/style.gleam @@ -101,7 +101,7 @@ pub fn compute_properties( indent: Int, ) -> #(Cache, ComputedProperties) { let init = init_computed_properties(indent) - use #(cache, acc), prop <- list.fold_right(properties, #(cache, init)) + use #(cache, acc), prop <- list.fold(list.reverse(properties), #(cache, init)) case prop { NoStyle -> #(cache, acc) Property(_, _, _) -> #(cache, handle_property(acc, prop)) diff --git a/sketch_lustre/src/sketch/lustre/element.gleam b/sketch_lustre/src/sketch/lustre/element.gleam index 097f6eb..51db1e2 100644 --- a/sketch_lustre/src/sketch/lustre/element.gleam +++ b/sketch_lustre/src/sketch/lustre/element.gleam @@ -163,7 +163,7 @@ pub fn unstyled(cache: Cache, element: Element(msg)) { } fn unstyled_children(cache, children) { - list.fold_right(children, #(cache, []), fn(acc, child) { + list.fold(list.reverse(children), #(cache, []), fn(acc, child) { let #(cache, children) = acc let #(cache, child) = unstyled(cache, child) #(cache, [child, ..children])