about summary refs log tree commit diff
path: root/pkg/lang/vm/value/data.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/lang/vm/value/data.go')
-rw-r--r--pkg/lang/vm/value/data.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/pkg/lang/vm/value/data.go b/pkg/lang/vm/value/data.go
index fecf8cf..a49753e 100644
--- a/pkg/lang/vm/value/data.go
+++ b/pkg/lang/vm/value/data.go
@@ -91,13 +91,22 @@ func (a ArrayData) Push(m *mem.Mem, v Value) {
 type NullData struct{}
 
 type FunctionData struct {
-	pc int
+	pc  int
+	env mem.Ptr
 }
 
 func (f FunctionData) Pc() int {
 	return f.pc
 }
 
+func (f FunctionData) Env() mem.Ptr {
+	return f.env
+}
+
+func (f FunctionData) WithEnv(env mem.Ptr) FunctionData {
+	return FunctionData{pc: f.pc, env: env}
+}
+
 func (f FunctionData) String(_ *mem.Mem) string {
 	return fmt.Sprintf("<fn %d>", f.pc)
 }