#[derive(Clone, Debug)]
pub struct UpVarDef {
pub capture_local: bool,
pub upidx: usize,
}
#[derive(Clone, Copy, Debug)]
pub enum Instr {
ArbInt(usize),
Array(usize),
Block(usize),
GlobalLookup(usize),
ClosureReturn(usize),
Double(f64),
Dummy,
InstVarLookup(usize),
InstVarSet(usize),
Int(isize),
Pop,
Return,
Send(usize, usize),
String(usize),
SuperSend(usize, usize),
Symbol(usize),
LocalVarLookup(usize),
LocalVarSet(usize),
UpVarLookup(usize),
UpVarSet(usize),
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum Primitive {
Add,
And,
As32BitSignedValue,
As32BitUnsignedValue,
AsDouble,
AsInteger,
AsString,
AsSymbol,
At,
AtPut,
AtRandom,
BitXor,
Class,
Cos,
Concatenate,
Div,
DoubleDiv,
ErrorPrint,
ErrorPrintln,
Equals,
Exit,
Fields,
FromString,
FullGC,
Global,
GlobalPut,
GreaterThan,
GreaterThanEquals,
Halt,
HasGlobal,
Hashcode,
Holder,
Inspect,
InstVarAt,
InstVarAtPut,
InstVarNamed,
InvokeOnWith,
IsDigits,
IsLetters,
IsWhiteSpace,
#[cfg(feature = "krun_harness")]
KrunInit,
#[cfg(feature = "krun_harness")]
KrunDone,
#[cfg(feature = "krun_harness")]
KrunMeasure,
#[cfg(feature = "krun_harness")]
KrunGetCoreCyclesDouble,
#[cfg(feature = "krun_harness")]
KrunGetNumCores,
#[cfg(feature = "krun_harness")]
KrunGetWallclock,
Length,
Load,
LoadFile,
LessThan,
LessThanEquals,
Methods,
Mod,
Mul,
Name,
NotEquals,
New,
NewArray,
ObjectSize,
Perform,
PerformInSuperClass,
PerformWithArguments,
PerformWithArgumentsInSuperClass,
PositiveInfinity,
PrimSubstringFromTo,
PrintNewline,
PrintStackTrace,
PrintString,
RefEquals,
Rem,
Restart,
Round,
Shl,
Shr,
Signature,
Sin,
Sqrt,
Sub,
Superclass,
Ticks,
Time,
Value(u8),
}