问题标签 [duktape]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 关于 Javascript 引擎错误的问题
我有一个关于 Javascript 引擎错误的问题。这可能是一个非常具体的问题,以前有没有人看到过这个错误?请你帮忙看看好吗?
这是错误消息:
这是我构建的内容/方式:
这段源代码抱怨:
javascript - 使用 Babel *from vanilla js* 将如何使用已翻译成 vanilla JS 的 ES6 模块
所以我正在编写一个使用多个文件和依赖项的 ES6 应用程序。我使用 webpack 将其捆绑到单个 bundle.js 中。从这里我想通过 Babel 运行它以在 VM (Duktape) 中获取 ES5 JS。从这里我可以成功运行 JS,但是我想通过在末尾附加额外的 JS 来实际实例化我最初创建的类这个生成的 ES5 代码。
通常,我的最终输出文件 built.js 可能需要像这样:
然后我会像这样使用它:
但是,我需要从同一个 JS 字符串访问 MyLib,而不是使用 require 或 import。Babelfied 输出没有有意义的名称或任何简单地在 vanilla JS 中实例化“类”的方式。我将如何使用附加到此文件末尾的 ES5 模块?
javascript - 如何在 Duktape 中使用 typescript 模块
我正在尝试在游戏引擎中使用 JS 作为脚本语言,TypeScript 位于顶部。作为运行时,我使用Duktape。我是一个关于 JavaScript 的完全菜鸟,目前我正试图围绕我如何启用一个工作流来让人们可以#include(需要等)其他文件。
出于测试目的,我从两个简单的 TypeScript 文件开始:
脚
巴茨
现在我通过 TypeScript 的 Transpile 函数(来自 typescriptServices.js)得到:
Foo.js
酒吧.js
然后我想通过 Duktape 执行 Bar.js。我读了这篇文章,所以我的理解是有多种方法可以使包含其他文件工作,但这个似乎专门使“require”函数工作,所以这听起来很适合 TypeScript 为我生成的 JS 代码。因此,我创建了一个 Duktape 上下文,在其上调用 duk_module_duktape_init 并注册了一个“modSearch”函数等。但在它实际到达 Bar.js 的“require”部分之前,Duktape 已经失败并显示消息“ReferenceError:标识符”出口未定义”。
如前所述,我对 JS 和 TS 真的很陌生,可能对整个工作有错误的想法,所以请随意提出完全不同的方法。我所关心的是用户可以将代码拆分为多个文件,并以某种方式引用这些文件,以便 VS Code 等工具可以找出这些引用并提供它们的功能来开发代码。我不在乎我最终是使用“require”还是“import”,以及我是否可以使用所有 TS 功能或只是一些子集。
长话短说,我做错了什么,我怎样才能做到这一点?
c++ - 如何让 Duktape 在 Mac 68k 上运行(就像在 PPC 上一样?)
我正在编写一个在 MacOS 7.x - 9.x 上运行的小应用程序(使用 Macintosh Toolbox),我决定包含 Duktape。
我使用在 MacOS 9 上运行的 CodeWarrior 6.0。
我使用低内存配置,在此处找到。
当我为 PPC 编译时,它运行完美——但是当我为 68k 编译时,我得到了很多奇怪的行为和崩溃。
例如,如果我要调用duk_peval_string
以下内容:
var i = 3;
<- 没有错误
var i = 3; function a() { return 4; }
<- 没有错误
var i = 3; function a() { return 4; } i = a();
<-- "ReferenceError: -4e+0"
function a() { return 4; } i = a();
<-- 启动时崩溃
我已启用自测 ( DUK_USE_SELF_TESTS
) 以尝试找出可能发生的情况 - 在处理器设置下启用8-Byte Doubles
和更改Struct Alignment
to PowerPC
(而不是 68K 设置)会导致 Duktape 通过测试 - 但它仍然无法解决问题.
定义__m68k__
(或不定义)似乎不会影响任何事情。
我知道这是一个很长的机会,但是在花了大约 4 个小时更改了我在 IDE 和 duk_config 上可以找到的几乎所有设置之后,我没有想法 - 所以任何帮助将不胜感激。
javascript - Duktape 有在 Linux 中执行外部程序的功能吗?
我在 Linux 上使用 Duktape(命令行,而不是浏览器),
并希望我的代码在 Linux 中执行外部程序,例如ls
.
我浏览了 Duktape 的网站,寻找这个解释器和编译器支持的 JavaScript 函数的参考,
但找不到任何东西。
我确实在那里找到了一个 API 参考,但这似乎是在谈论解释器/编译器库提供给外部调用者的调用
函数,而不是解释器/编译器运行的 JavaScript 程序内部使用的函数。
有谁知道是否有办法在 Linux 中的 Duktape 中执行外部程序,
如果有,1-2 行示例代码将非常有帮助。
谢谢
duktape - 在 duktape 的致命处理程序中打印函数调用堆栈
我想在 duktape 的致命处理程序中打印函数调用堆栈:
这是一个触发致命错误的示例 JS 脚本:
在此示例中,致命函数将仅打印故障 lineNumber,但不打印调用堆栈。任何帮助表示赞赏。
javascript - 如何在 Duktape 中使用多个 js 文件?
我在嵌入式 MCU 中使用 Duktape。对于测试用例,我有: main.js 文件:
test.js 文件:
均编译为全局默认代码,main.js 使用 duk_call(ctx, 0); 执行
问题是调用 test() 函数时会引发错误。
我也尝试过使用
在 test.js 代码中,但它也不起作用。
我的理解是这两个文件都有单独的执行上下文。这就是功能无法访问的原因。
但是,将代码拆分为 Duktape 的多个文件的正确方法是什么?
PS 我的目标是避免使用全局上下文,因为在文档中据说这样访问变量很慢,这就是 main.js 看起来那样的原因。
PPS 我确定 test() 函数无法访问,但我不知道如何编写 js 代码以便一切正常。
PPPS print() 是一个输出到 esp32 串口的 C 函数,它可以工作。甚至 main.js 也可以在没有 test() 函数调用的情况下工作。
javascript - 如何在 Duktape 中实现非阻塞事件循环?
我将 Duktape 嵌入到运行 FreeRTOS 的 esp32 中。
而且我坚持实现非阻塞事件循环。
据我了解,在异步收益方面实现事件循环非常简单。但它不是很好,因为它总是会加载 CPU,即使除了等待事件发生之外没有真正发生任何事情。我正在考虑将另一个 Duktape 线程添加到运行我的应用程序的 Duktape 堆中。并使这个单独的 Duktape 线程由另一个使用互斥锁作为同步的 RTOS 任务运行。
但也有人写道,这可能会导致垃圾收集问题。
而且据我了解,我需要在绑定到堆内 js 函数的每个本机 C 函数中使用互斥锁,这有点不方便。
也许我错过了一些更简单的方法来创建这样一个事件循环?
我需要事件循环:为 GUI 执行回调并运行计时器。但是当我无事可做时,我需要它睡觉。