diff options
| author | Mel <einebeere@gmail.com> | 2022-05-27 23:34:40 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-27 23:34:40 +0000 |
| commit | 83d1dc87f3336d70ccda476627c70c282b7b6e11 (patch) | |
| tree | 70610879d3de1ddf02bbe9067076fe65b52979a9 /pkg/lang/vm/value/data.go | |
| parent | 47c4cd3705bee9d7154c42ce95aef6f8a19e0661 (diff) | |
| download | jinx-83d1dc87f3336d70ccda476627c70c282b7b6e11.tar.zst jinx-83d1dc87f3336d70ccda476627c70c282b7b6e11.zip | |
Function envs and value escaping
Diffstat (limited to 'pkg/lang/vm/value/data.go')
| -rw-r--r-- | pkg/lang/vm/value/data.go | 11 |
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) } |
