UNPKG

microvium

Version:

A compact, embeddable scripting engine for microcontrollers for executing small scripts written in a subset of JavaScript.

47 lines (46 loc) 1.8 kB
/// <reference types="node" /> import { mvm_TeError, mvm_TeType, vm_VMExportID, vm_HostFunctionID } from "./runtime-types"; import { MemoryStats } from "../lib"; export declare enum CoverageCaseMode { NORMAL = 1, UNTESTED = 2, UNIMPLEMENTED = 3, TABLE = 4 } export declare type HostFunction = (args: Value[]) => Value; export declare type ResolveImport = (hostFunctionID: vm_HostFunctionID) => HostFunction; export declare type CoverageCallback = (id: number, mode: CoverageCaseMode, indexInTable: number, tableSize: number, line: number) => void; export declare const NativeVM: NativeVMClass; export interface NativeVMClass { new (snapshotBytecode: Buffer, resolveImport: ResolveImport): NativeVM; setCoverageCallback(callback: CoverageCallback | undefined): void; readonly MVM_PORT_INT32_OVERFLOW_CHECKS: boolean; } export interface NativeVM { resolveExport(exportID: vm_VMExportID): Value; call(func: Value, args: Value[]): Value; uint8ArrayFromBytes(data: Buffer): Value; typeOf(value: Value): mvm_TeType; newBoolean(value: boolean): Value; newNumber(value: number): Value; newString(value: string): Value; runGC(squeeze: boolean): void; createSnapshot(): Buffer; getMemoryStats(): MemoryStats; asyncStart(): Value; stopAfterNInstructions(n: number): void; getInstructionCountRemaining(): number; readonly undefined: Value; } export declare class VMError extends Error { errorCode: mvm_TeError; constructor(errorCode: mvm_TeError, message?: string | undefined); } export interface Value { readonly raw: number; readonly type: mvm_TeType; toString(): string; toNumber(): number; toBoolean(): boolean; uint8ArrayToBytes(): Buffer; }