@@ -505,6 +505,8 @@ const eceval_controller =
505505
506506"ev_sequence_start",
507507 assign("unev", list(op("sequence_statements"), reg("comp"))),
508+ test(list(op("is_empty_sequence"), reg("unev"))),
509+ branch(label("ev_empty_sequence")),
508510 save("continue"),
509511
510512"ev_sequence",
@@ -526,6 +528,10 @@ const eceval_controller =
526528 restore("continue"),
527529 go_to(label("eval_dispatch")),
528530
531+ "ev_sequence_empty",
532+ assign("val", constant(undefined)),
533+ go_to(reg("continue")),
534+
529535 "ev_conditional",
530536 save("comp"), // save expression for later
531537 save("env"),
@@ -675,6 +681,7 @@ const eceval_operations =
675681 list("first_statement" , first_statement),
676682 list("rest_statements" , rest_statements),
677683 list("is_last_statement" , is_last_statement),
684+ list("is_empty_sequence" , is_empty_sequence),
678685 list("sequence_statements" , sequence_statements),
679686
680687 // eval functions from meta-circular evaluator
0 commit comments