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; +}