From 0a7927ed8257857c8d114387f12844312f6da51c Mon Sep 17 00:00:00 2001 From: Mel Date: Wed, 18 May 2022 02:19:35 +0200 Subject: Start call stack with at least one frame --- pkg/lang/vm/stack.go | 4 ++++ pkg/lang/vm/vm.go | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'pkg/lang/vm') diff --git a/pkg/lang/vm/stack.go b/pkg/lang/vm/stack.go index 433c0b7..1d028e5 100644 --- a/pkg/lang/vm/stack.go +++ b/pkg/lang/vm/stack.go @@ -4,6 +4,10 @@ import "jinx/pkg/lang/vm/value" type CallStack []*LocalStack +func NewCallStack() CallStack { + return []*LocalStack{{}} +} + func (cs *CallStack) Push() { *cs = append(*cs, &LocalStack{}) } diff --git a/pkg/lang/vm/vm.go b/pkg/lang/vm/vm.go index 434eae3..a6e1fb8 100644 --- a/pkg/lang/vm/vm.go +++ b/pkg/lang/vm/vm.go @@ -13,8 +13,9 @@ type VM struct { func New(code *code.Code) *VM { return &VM{ - code: code, - pc: 0, + code: code, + pc: 0, + stack: NewCallStack(), } } -- cgit 1.4.1