OP_MEMBER, OP_SETMEMBER, OP_LOCAL, OP_SETLOCAL, OP_NEWVEC, OP_VAPPEND,
OP_NEWHASH, OP_HAPPEND, OP_MARK, OP_UNMARK, OP_BREAK, OP_SETSYM, OP_DUP2,
OP_INDEX, OP_BREAK2, OP_PUSHEND, OP_JIFTRUE, OP_JIFNOT, OP_FCALLH,
- OP_MCALLH, OP_XCHG2, OP_UNPACK, OP_SLICE, OP_SLICE2
+ OP_MCALLH, OP_XCHG2, OP_UNPACK, OP_SLICE, OP_SLICE2, OP_BIT_AND, OP_BIT_OR,
+ OP_BIT_XOR, OP_BIT_NEG
};
struct Frame {
// A hash of symbol names
naRef symbols;
+ // Vector/hash containing objects which should not be freed by the gc
+ // TODO do we need a separate vector and hash?
naRef save;
+ naRef save_hash;
+ int next_gc_key;
struct Context* freeContexts;
struct Context* allContexts;