Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
APPEND_OPCODES.add(Op.Primitive, (vm, { op1: primitive }) => {
let stack = vm.stack;
let flag = primitive & 7; // 111
let value = primitive >> 3;
switch (flag) {
case PrimitiveType.NUMBER:
stack.push(value);
break;
case PrimitiveType.FLOAT:
stack.push(vm.constants.getFloat(value));
break;
case PrimitiveType.STRING:
stack.push(vm.constants.getString(value));
break;
case PrimitiveType.BOOLEAN_OR_VOID:
switch (value) {
case 0: stack.push(false); break;
case 1: stack.push(true); break;
case 2: stack.push(null); break;
case 3: stack.push(undefined); break;
}
break;
}
});
(vm, { op1: primitive }) => {
let stack = vm.stack;
let flag = primitive & 7; // 111
let value = primitive >> 3;
switch (flag) {
case PrimitiveType.NUMBER:
stack.push(value);
break;
case PrimitiveType.FLOAT:
stack.push(vm[CONSTANTS].getNumber(value));
break;
case PrimitiveType.STRING:
stack.push(vm[CONSTANTS].getString(value));
break;
case PrimitiveType.BOOLEAN_OR_VOID:
stack.pushEncodedImmediate(primitive);
break;
case PrimitiveType.NEGATIVE:
stack.push(vm[CONSTANTS].getNumber(value));
break;
case PrimitiveType.BIG_NUM:
stack.push(vm[CONSTANTS].getNumber(value));
break;
}
},