From c9da4fcf2613fe3175ae8013847c6f8ea2794f35 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Thu, 9 Dec 2021 18:47:43 +0100 Subject: [PATCH] Stack utilities --- packages/core/src/runtime/stack.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/core/src/runtime/stack.ts b/packages/core/src/runtime/stack.ts index de4e50c..059c340 100644 --- a/packages/core/src/runtime/stack.ts +++ b/packages/core/src/runtime/stack.ts @@ -41,3 +41,21 @@ export function dropNonEmpty(s: NonEmptyStack, n: number): NonEmptyStack(s: Stack): number { + let count = 0; + while (s !== null) { + count++; + s = s.rest; + } + return count; +} + +export function toArray(s: Stack): T[] { + const result = []; + while (s !== null) { + result.push(s.item); + s = s.rest; + } + return result; +}