问题标签 [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 回答
108 浏览

duktape - 具有本机 duktape/C 函数的继承和构造函数链

duktape wiki中描述了使用本机函数来实现类构造函数。然而,剩下的是如何实现类层次结构。

当为派生类调用原生构造函数时,如何处理 duktape 中的继承链?在 Javascript 中,您通常会执行以下操作:

你将如何在 duktape 中实现它?我们不能使用duk_call()因为我们没有调用方法。

0 投票
1 回答
111 浏览

duktape - 如何为 duktape 编写中央函数调度程序?

情况是这样的:我想对我在对象 + 原型上定义的所有函数使用单个 duktape/C 函数。为此,我有一个函数映射,它采用函数名称和回调(std::function实际上是 a),并且可以轻松地进行一些常见处理并具有更简单的回调(甚至可以为此使用就地 lambda)。

这已经很好地工作了,但有一个问题:不同对象上的相同命名函数。为了消除歧义,我现在使用对象(或原型,它也是一个对象)的堆指针作为进一步的限定符。因此,当调用我的中央 duktape/C 函数时,我首先查看该函数是否是全局的(即在全局对象上定义)。如果失败,我会得到this绑定并使用它的堆指针进行查找。如果这也失败了,我会遍历原型链,看看是否可以在其中一个原型上找到函数。

这适用于 99%,除非我没有this绑定(或错误的绑定,例如 for Function.prototype.apply())。

我的问题是:如何在我的中央 duktape/C 回调中获取函数的原始原型?

0 投票
2 回答
524 浏览

duktape - Duktape 可以使用 javascript websocket 库或任何形式的套接字库吗?

我正在尝试将 duktape 用作嵌入式 JS 引擎,但是我似乎无法使用通常在基于浏览器的 JS 引擎中工作的 Websockets。duktape 是否支持 JavaScript 代码中的这个或任何其他网络协议?

0 投票
1 回答
84 浏览

android-ndk - 将 duktape 与 android ndk 集成

我正在尝试将 duktape 与 android jni 集成。我的 jni 的 android.mk 非常标准:

当我尝试 ty 编译我的本机项目时,我收到此错误:

错误是指 duk_config.h 中的这些行

那么我应该使用带有一些特定标志的 configure.py 还是修复 android.mk ...?

0 投票
1 回答
275 浏览

duktape - duktape 如何在 duktape c 函数中解析字符串对象类型的参数(类似数字对象)

如何在 duktape c 函数中检查字符串对象/数字对象参数类型并解析来自字符串对象/数字对象的值。有像 duk_is_object() 这样的通用 api,但我需要正确的对象类型来解析值。

0 投票
1 回答
128 浏览

javascript - 使用带有 Visual Studio Code/JS 的非标准内置函数添加自动完成

Visual Studio 代码似乎对 javascript 自动完成有很好的支持,但我有一个项目使用 duktape 从我的应用程序中导出一个庞大且不断增长的对象库。

随着更多功能的导出,该库正在快速增长,我想知道是否有可能以某种方式导入或使 VS 代码的智能感知器了解一组“内置”对象。这些对象本身没有来源。它们通过 duktape 的 API 调用导出。我可以遍历全局对象空间并转储所有已知对象的名称并以任意方式打印它们。

我正在寻找一种方法来使全局对象转储(同样,它可以以任何格式工作)对智能感知或任何其他自动完成引擎有用。

0 投票
0 回答
190 浏览

javascript - duktape 引用计数器和终结器 C/C++

我正在使用 duktape 绑定我的 C++ 对象,并且我想在不再使用实例时自动删除它们。我试图为这些对象设置终结器,但由于某种原因,终结器仅在上下文被销毁时才被调用,这对于全局对象来说很好,但对于像这样的情况却不是:

一旦 foo 函数结束,就不需要保留 MyObject 的实例,但由于某种原因,没有调用终结器。据我所知,duktape 有某种引用计数系统,所以应该有一种方法可以理解对象引用何时变为零(因此我的对象最终可以从内存中删除),但是如何?难道我做错了什么?

0 投票
2 回答
494 浏览

go - go-duktape 调用函数的例子

go-duktape存储库没有“问题”部分或无论如何都可以寻求帮助。

自述文件中没有有用的示例。

我正在尝试在 javascript 文件中定义一个函数(带有参数和返回值)并从 go 调用这个函数。

Javascript 文件:

事情的进展会是什么样子?

0 投票
1 回答
1274 浏览

duktape - 将参数传递给 js 脚本并获取结果的 duktape 示例

嗨所以我在看 duktape,但我似乎找不到一个简单的例子来做类似的事情:

  • 预编译一些js。
  • 传递该 js 一些输入,例如字符串和数字并运行它。
  • 得到那个js的结果。

似乎示例从这里是如何评估 js 到这里是如何从 js 调用 C 函数,也许我错过了。

好吧,在抨击 API 文档和反复试验之后,我最终得到了类似的东西:

虽然我注意到如果 JS 有错误我得到一个段错误,也许我应该检查一些东西?

这也是缓存JS的正确方法吗?

0 投票
1 回答
249 浏览

android - 如何配置 Duktape?

Duktape 似乎没有将 Android 作为开箱即用的平台。我应该如何配置它以便能够自己构建一个本地 c/c++ 共享库,以便在 Android 上运行?请让我知道不同的标志,以使其使用最小的库文件进行配置和编译。