microvium
Version:
A compact, embeddable scripting engine for microcontrollers for executing small scripts written in a subset of JavaScript.
34 lines (33 loc) • 1.26 kB
TypeScript
/// <reference types="node" />
import * as VM from './virtual-machine-types';
import * as IL from './il';
import { StringifyILOpts } from './stringify-il';
export declare const ENGINE_MAJOR_VERSION = 8;
export declare const HEADER_SIZE = 28;
export declare const ENGINE_MINOR_VERSION = 0;
/**
* A snapshot represents the state of the machine captured at a specific moment
* in time.
*
* Note: Handles are not part of the snapshot. Handles represent references from
* the host into the VM. These references are severed at the time that VM is
* snapshotted.
*/
export interface SnapshotIL {
globalSlots: Map<VM.GlobalSlotID, VM.GlobalSlot>;
functions: Map<IL.FunctionID, IL.Function>;
exports: Map<IL.ExportID, IL.Value>;
allocations: Map<IL.AllocationID, IL.Allocation>;
flags: Set<IL.ExecutionFlag>;
builtins: {
arrayPrototype: IL.Value;
promisePrototype: IL.Value;
asyncContinue: IL.Value;
asyncCatchBlock: IL.Value;
asyncHostCallback: IL.Value;
};
}
export declare function stringifySnapshotIL(snapshot: SnapshotIL, opts?: StringifyILOpts): string;
export declare function validateSnapshotBinary(bytecode: Buffer): {
err: string;
} | undefined;