Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function evaluate(customNode: ?Array): ?StackLocal {
let n = [node];
if (typeof customNode !== "undefined") {
n = customNode;
}
const memory = new Memory({ initial: 100 });
const allocator = createAllocator(memory);
const code = n;
// $FlowIgnore
code.push(t.instruction("end"));
return partialEvaluation.evaluate(allocator, code);
}
const argValues = args.map(expr => {
const code = [expr];
addEndInstruction(code);
const evaluation = partialEvaluation.evaluate(allocator, code);
if (evaluation !== undefined) {
// Pass the raw value here since we need the LongNumber representation
// It's only meant for testing
if (expr.object === "i64") {
return evaluation.value._value;
}
return evaluation.value.toString();
}
});
function assert_return(node) {
const [action, ...args] = node.args;
addEndInstruction(args);
const expectedRes = partialEvaluation.evaluate(allocator, args);
if (action.type === "Instr" && action.id === "invoke") {
const actualRes = invoke(action);
assertSameStackLocal(actualRes, expectedRes);
} else if (action.type === "Instr" && action.id === "get") {
let id;
if (action.args.length === 2) {
id = action.args[1];
} else {
id = action.args[0];
}
// find export in instantiated module
const module = instantiatedModules.find(
const argValues = args.map(expr => {
const evaluation = partialEvaluation.evaluate(allocator, [expr]);
if (evaluation !== undefined) {
// Pass the raw value here since we need the LongNumber representation
// It's only meant for testing
if (expr.object === "i64") {
return evaluation.value._value;
}
return evaluation.value.toString();
}
});
function assert_return(node) {
const [action, ...args] = node.args;
let expectedRes;
const expectedEvaluation = partialEvaluation.evaluate(allocator, args);
if (expectedEvaluation !== undefined) {
expectedRes = expectedEvaluation.value.toString();
}
if (action.type === "Instr" && action.id === "invoke") {
const actualRes = invoke(action);
assert(
actualRes == expectedRes,
`expected "${expectedRes}", "${actualRes}" given`
);
} else if (action.type === "Instr" && action.id === "get") {
let id;
if (action.args.length === 2) {