您现在的位置是:首页 > 文章详情

Rat Javascript - 小型javascript/ecmascript解释器

日期:2023-09-27点击:201

RATJS是一个用C语言实现的小型javascript/ecmascript解释器。你可以用它来运行自己的javascript程序,也可以将它作为脚本引擎嵌入自己开发的程序中。

下载

https://gitee.com/gongke1978/ratjs

特性

  • 兼容ECMA262标准第14版
    • Symbol
    • Generator
    • Promise
    • Async function
    • Arrow function
    • Async module
    • Big integer
    • Typed array
    • Array buffer/Shared array buffer
    • DataView
    • Atomics
    • Map/Set/WeakSet/WeakMap
    • WeakRef/FinalizationRegistry
    • Private identifier
    • Multiply realm
    • Module/Async module
  • 扩展
    • Hash bang 注释
    • Native module
    • JSON module
    • File system functions
    • FileState object
    • File object
    • Directory object
  • 完全用C语言实现
  • 低占用空间
  • 丰富的配置选项

依赖

  • icu4c: 当配置选项设置 ENC_CONV=icu 后需要此库
  • gmp: 当配置选项设置 ENABLE_BIG_INT=gmp 后需要此库

构建

RATJS 使用 GNU make 作为代码构建工具。 在构建时需要安装以下的库和对应的头文件:

  • c-json
  • libyaml: 如果需要生成 test262 测试程序需要此库

配置选项

显示全部配置选项:

$ make help 

在Linux系统中构建

项目配置。

$ make config 

生成RATJS链接库和可执行程序。

$ make 

安装RATJS连接库和可执行程序。

$ make install 

清除构建中间文件。

$ make clean 

清除构建目录。

$ make dist-clean 

在Windows系统中构建

在Windows系统中构建需要安装MinGW开发环境。

项目配置。

$ make ARCH=win config 

生成RATJS链接库和可执行程序。

$ make 

安装RATJS连接库和可执行程序。

$ make install 

清除构建中间文件。

$ make clean 

清除构建目录。

$ make dist-clean 

使用

执行javascript

运行可执行程序"ratjs"解释你的javascript脚本。

运行 “js”脚本:

$ ratjs -s your_script.js arguments... 

"ratjs"会家在并运行脚本"your_script.js"。如果脚本中定义了函数"main","main"函数将被调用且"arguments"将作为函数的参数被传入。

将"js"脚本作为ECMA262模块运行:

$ ratjs your_module.js arguments 

"ratjs"将加载、链接并执行模块"your_module.js"。如果模块中定义了函数"main","main"函数将被调用且"arguments"将作为函数的参数被传入。

将参数字符串作为脚本源码调用"eval()"运行:

$ ratjs -e "script_string" 

显示可执行程序"ratjs"的全部选项:

$ ratjs --help 

嵌入程序

首先,在你的程序中包含头文件"ratjs.h"。然后通过调用 RATJS API加载并执行javascript脚本。

#include <ratjs.h> ... RJS_Runtime *rt; RJS_Value *source, *script; rt = rjs_runtime_new(); rjs_realm_load_extension(rt, NULL); source = rjs_value_stack_push(rt); script = rjs_value_stack_push(rt); rjs_string_from_enc_chars(rt, source, "print(\"hello, world!\")", -1, NULL); rjs_script_from_string(rt, script, source, NULL, RJS_FALSE); rjs_script_evaluation(rt, script, NULL); rjs_runtime_free(rt); 

将你的程序连接库"libratjs"。

$ gcc -o your_program -lratjs -lm your_program_source.c 

运行命令"doxygen"生成RATJS的API文档。

你可以参考"demo"目录下的示例程序学习如何将RATJS嵌入你的程序中。

许可证

RATJS采用许可证MIT license发布。

原文链接:https://my.oschina.net/u/6929349/blog/10114674
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章