diff options
| author | Mel <einebeere@gmail.com> | 2022-05-31 01:01:32 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-31 01:02:20 +0000 |
| commit | 338744d066704e48e22d8ec56a43acb4b20da7f1 (patch) | |
| tree | b508eb6764efc64ac611b6ea063ab44d9e6b0a9c /pkg/lang/vm/value/cells.go | |
| parent | 78a29c41098db5e5f8291e0345a3cd443c52b329 (diff) | |
| download | jinx-338744d066704e48e22d8ec56a43acb4b20da7f1.tar.zst jinx-338744d066704e48e22d8ec56a43acb4b20da7f1.zip | |
Add untyped Objects (for now)
Diffstat (limited to 'pkg/lang/vm/value/cells.go')
| -rw-r--r-- | pkg/lang/vm/value/cells.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/pkg/lang/vm/value/cells.go b/pkg/lang/vm/value/cells.go index a700940..5abb032 100644 --- a/pkg/lang/vm/value/cells.go +++ b/pkg/lang/vm/value/cells.go @@ -31,6 +31,24 @@ func (s StringCell) Get() string { return string(s) } +type ObjectCell struct { + Members map[string]Value +} + +func (o ObjectCell) DropCell(m mem.Mem) { + for _, v := range o.Members { + v.Drop(m) + } +} + +func (o ObjectCell) MatchingCellKind() mem.CellKind { + return mem.CellKindObject +} + +func (o ObjectCell) Get() map[string]Value { + return o.Members +} + type TypeCell Type func (t TypeCell) DropCell(m mem.Mem) { |
