@@ -926,36 +926,24 @@ module Util =
926926        // | Fable.NewList (headAndTail, _) when List.contains "FABLE_LIBRARY" com.Options.Define -> 
927927        //     makeList com ctx r headAndTail 
928928        // Optimization for bundle size: compile list literals as List.ofArray 
929-         |  Replacements.ListLiteral( exprs,  t)  -> 
930-             [| List.rev exprs |>  makeArray com ctx|] 
931-             |>  libCall com ctx r " List" " newList" 
932-             // match exprs with 
933-             // | [] -> libCall com ctx r "List" "empty" [||] 
934-             // | [TransformExpr com ctx expr] -> libCall com ctx r "List" "singleton" [|expr|] 
935-             // | exprs -> [|makeArray com ctx exprs|] |> libCall com ctx r "List" "ofArray" 
936929        |  Fable.NewList ( headAndTail,  _)  -> 
937-             match  headAndTail with 
938-             |  None ->  libCall com ctx r " List" " empty" [||] 
939-             |  Some( TransformExpr com ctx head,  TransformExpr com ctx tail)  -> 
930+             let rec  getItems  acc  =  function 
931+                 |  None ->  List.rev acc,  None
932+                 |  Some( head,  Fable.Value( Fable.NewList( tail,  _),_))  ->  getItems ( head:: acc)  tail
933+                 |  Some( head,  tail)  ->  List.rev ( head:: acc),  Some tail
934+             match  getItems []  headAndTail with 
935+             |  [],  None -> 
936+                 libCall com ctx r " List" " empty" [||] 
937+             |  [ TransformExpr com ctx expr],  None -> 
938+                 libCall com ctx r " List" " singleton" [| expr|] 
939+             |  exprs,  None -> 
940+                 [| List.rev exprs |>  makeArray com ctx|] 
941+                 |>  libCall com ctx r " List" " newList" 
942+             |  [ TransformExpr com ctx head],  Some( TransformExpr com ctx tail)  -> 
940943                libCall com ctx r " List" " cons" [| head;  tail|] 
941- 
942-             // let rec getItems acc = function 
943-             //     | None -> List.rev acc, None 
944-             //     | Some(head, Fable.Value(Fable.NewList(tail, _),_)) -> getItems (head::acc) tail 
945-             //     | Some(head, tail) -> List.rev (head::acc), Some tail 
946-             // match getItems [] headAndTail with 
947-             // | [], None -> 
948-             //     libCall com ctx r "List" "empty" [||] 
949-             // | [TransformExpr com ctx expr], None -> 
950-             //     libCall com ctx r "List" "singleton" [|expr|] 
951-             // | exprs, None -> 
952-             //     [|makeArray com ctx exprs|] 
953-             //     |> libCall com ctx r "List" "ofArray" 
954-             // | [TransformExpr com ctx head], Some(TransformExpr com ctx tail) -> 
955-             //     libCall com ctx r "List" "cons" [|head; tail|] 
956-             // | exprs, Some(TransformExpr com ctx tail) -> 
957-             //     [|makeArray com ctx exprs; tail|] 
958-             //     |> libCall com ctx r "List" "ofArrayWithTail" 
944+             |  exprs,  Some( TransformExpr com ctx tail)  -> 
945+                 [| List.rev exprs |>  makeArray com ctx;  tail|] 
946+                 |>  libCall com ctx r " List" " newListWithTail" 
959947        |  Fable.NewOption ( value,  t)  -> 
960948            match  value with 
961949            |  Some ( TransformExpr com ctx e)  -> 
@@ -1210,11 +1198,11 @@ module Util =
12101198
12111199        |  Fable.ListHead -> 
12121200            // get range (com.TransformAsExpr(ctx, fableExpr)) "head" 
1213-             libCall com ctx range " List" " head " [| com.TransformAsExpr( ctx,  fableExpr)|] 
1201+             libCall com ctx range " List" " head_ " [| com.TransformAsExpr( ctx,  fableExpr)|] 
12141202
12151203        |  Fable.ListTail -> 
12161204            // get range (com.TransformAsExpr(ctx, fableExpr)) "tail" 
1217-             libCall com ctx range " List" " tail " [| com.TransformAsExpr( ctx,  fableExpr)|] 
1205+             libCall com ctx range " List" " tail_ " [| com.TransformAsExpr( ctx,  fableExpr)|] 
12181206
12191207        |  Fable.TupleIndex index -> 
12201208            match  fableExpr with 
0 commit comments