diff options
Diffstat (limited to 'pkg/lang/vm')
| -rw-r--r-- | pkg/lang/vm/stack.go | 4 | ||||
| -rw-r--r-- | pkg/lang/vm/vm.go | 5 |
2 files changed, 7 insertions, 2 deletions
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(), } } |
