问题标签 [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.

0 投票
1 回答
575 浏览

javascript - duktape 搜索引擎。C中的本机实现

我试图实现一个原生 C duktape modSearch,但我被卡住了。我阅读了 DUKtape 文档并查看了https://github.com/svaarala/duktape/issues/194,但我仍然无法使其工作。

我创建了一个使用实现 modSearch 的简单测试,以下是详细信息:

  • 我有一个实现平方函数的简单 javascript。我称它为 testR.js:

    export.area = function(r){ return r*r; };

- 使用上述简单函数的文件称为 usetestR.js:

现在使用 duktape,我开始在 C 中实现函数 modSearch,如下所示:

mod_search

当我运行代码时,这就是我所拥有的:

你能帮我指出问题出在哪里吗?谢谢

0 投票
1 回答
1034 浏览

javascript - 如何从 Duktape 中运行的 JavaScript 代码读取文件?

我正在尝试将一些代码从 Node.js 移植到 Duktape - Duktape 是否具有与 Node 的fs.readFileSync等效的功能?

0 投票
1 回答
1864 浏览

javascript - duktape 暴露一个 C++ 对象(方法 + 属性)

我正在尝试将我的对象导出到 javascript,但我仍然不知道如何绑定属性“getter”和“setter”。银:

当我的引擎在外部操纵对象属性时,我猜我不应该将其设置为“常量”。我想将这两种方法绑定为 setter 和 getter,这样当执行上述脚本时,它将调用这些方法:

这可以通过 duktape 实现吗?每次我的引擎从 c++ 代码外部更改属性值时,我是否必须更新 javascript 堆中的值?

0 投票
1 回答
565 浏览

arrays - Duktape/C 数组元素访问器

我正在尝试实现类似于 HTMLCollection 的东西,它是一个可以在没有 JS 操作的情况下丢失/获得元素的数组。

像上面那样做,我得到一个对象,我可以在该对象上读取 my_array.length 属性并通过调用方法 my_array.item(index) 获取一个项目。但是我没有通过使用 my_array[index] 得到一个项目。如果我将上面的第一行替换为

我收到一个错误,即长度属性不可配置。有没有可能实现我想要的?具有“惰性”元素绑定的数组?我的印象是 NetSurf 以某种方式设法做到了这一点,但还没有完全弄清楚如何......

0 投票
2 回答
450 浏览

javascript - 如何在android中运行javascript并将地图作为参数传递

我正在尝试在 android 中运行 javascript,发现 Rhino 和 Duktape 提供了在没有 WebView 的情况下运行的功能。但似乎他们都没有明确的方法将可变数量的键值对作为参数传递给我的 js 函数。这个论点看起来像:

js端看起来像

有什么解决方法吗?

0 投票
1 回答
699 浏览

javascript - 如何在 duktape 中添加、修改或删除对象的属性

我正在尝试编写一个带有 1 个传递参数的 C 函数。这个参数必须是一个对象。我想在 C 代码中修改这个对象,如下所示:

有人可以提供一个小例子,如何做到这一点?当然,我可以编写一个返回新对象的 C 函数,然后在本机 JavaScript 中编写一个变通函数,但是在 C 内部有什么方法可以做到这一点?

0 投票
1 回答
323 浏览

duktape - 如何最好地对 Duktape 的引擎设置处理限制?

我意识到使用DUK_USE_EXEC_TIMEOUT_CHECK是实验性的(从 1.5 开始),但我不清楚如何最好地利用它。我要做的是对操作码执行施加硬性限制,以防止不良脚本通过无限循环、大型处理块等杀死我的进程。我已经定义了我认为合适的内容,即:

问题:我有很多上下文,但udata不足以区分它们。不过,这对于我的需求可能不是必需的。

问题:函数在意想不到的地方被调用,比如在调用过程中duk_create_heap,甚至是简单的duk_peval_string调用,我无法知道为什么。

duk__executor_interrupt通过修改代码以传递线程/上下文interrupt_init成员,我已经将我认为现在可以让我通过的东西拼凑起来,如下所示:

似乎当它不为零时,我已经达到了一些内部操作码处理限制。这听起来对吗?

然后我的超时例程如下所示:

谢谢!

0 投票
2 回答
321 浏览

c++ - duktape 关闭注册

我有 C++ 项目,我正在使用 duktape JS 库。我需要在 JS 中注册全局函数,并使用该函数将指向对象的指针保存为闭包数据,以便在调用函数时访问该指针。

我知道如何在 lua c api 中做到这一点:

首先我将指针作为闭包数据推送,然后是指向函数的指针。我在 duktape api 中需要相同的功能。

你能给我看一些闭包注册和访问它的代码吗?

0 投票
1 回答
433 浏览

duktape - 为特定平台构建 Duktape (ARM 32/ ARM 64)

我将使用 Duktape 对 ARM 32/64 平台进行 javascript 评估。我只想为特定的平台和架构构建 Duktape,而不是针对所有范围。

看来,我可以成功构建它:

arm32_config.yaml

通常构建通行证。太好了!

在 Raspberry Pi 上(仅用于测试):

我有一个hello.c

Makefile.hello文件:

它也有效!

但是当我尝试启动程序时 ./hello我总是收到: 分段错误

请指出我的错误吗?我错过了什么?先感谢您!

ps:gcc版本4.9.2(Raspbian 4.9.2-10)

0 投票
1 回答
111 浏览

duktape - 如何获取任何 DukTape “事物”(包括数组或对象)的唯一 ID?

我正在为(某些)JavaScript/DukTape 对象开发(有限的)C++ 酸洗/序列化程序。我想跟踪已写入的对象。对于“正常”对象,我(认为我)可以用隐藏的 \xFF 字段/属性(也许)标记它们并使用它。

我(现在)正在尝试存储数组。我需要/想要一种方法(来自 C/C++)来“标记”具有 GUID 的数组或找到某种对它们唯一的“实例 ID”值。

这是 DukTape 支持的东西吗?