eval5是基于TypeScript编写的JavaScript解释器,100%支持ES5语法。
支持浏览器、node.js、小程序等 JavaScript 运行环境 。
项目地址: https://github.com/bplok20010/eval5
使用场景
- 浏览器环境中需要沙盒环境来执行JavaScript代码
- 浏览器环境控制代码执行时长
- 不支持eval/Function的JavaScript运行环境,如:微信小程序
更新日志
1.4.5
- 修复with语句中函数调用时丢失this信息
1.4.4
- 修复在未使用try-catch情况下出现异常时导致下次调用evaluate时的变量声明错乱问题。
1.4.3
- 修复 WithStatement 中赋值不生效问题。
- rootContext创建调整为:Object.create(options.rootContext),防污染。
1.4.2
- 新增内置对象:URIError RangeError SyntaxError ReferenceError
- 修复 assignment 表达式触发对象的getter方法调用
1.4.1
- 修复再次执行事超时机制失效问题
- 修复函数表达式赋值时引起的返回值错乱问题
1.4.0
- 解释器内部eval/Function重写
- 新增参数 options.rootContext
- 新增参数 options.global