lowleveljs
Version:
1. 使用`@babel/parser`解析出js代码的语法树 2. 把所有的功能语句编译成最基础的操作指令列表 3. 编写解释器来运行这些基础操作指令
25 lines (21 loc) • 658 B
JavaScript
const {run, require_lljs}=require('../../')
const maskstr=0
const bindVars={
A: 2,
B: 3,
shared: {}, // 共享对象可实现内外交互
}
// node环境下以下语句等效
/*
run(maskstr, {
content: require('fs').readFileSync('test.bin'),
filename: 'test.bin',
}, bindVars)
*/
run(maskstr, 'test.bin', bindVars)
// 浏览器环境则参数2传Uint8Array
console.log(bindVars.shared.G())
// 可以使用require_lljs这个方法来引用一个编译后的nodejs模块
const addMod=require_lljs(maskstr, 'addmod.bin')
const subMod=require_lljs(maskstr, 'submod.bin')
console.log(addMod(4, 9), subMod.subFunc(10, 3))