问题标签 [javascriptcore]

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 回答
1337 浏览

javascript - JavaScriptCore 可移植性

我正在考虑在应用程序中嵌入 JavaScriptCore。我很好奇它的便携性如何?理想情况下,我希望它能够在 Linux、Windows 和 OSX 以及 Android 和 iOS 上运行。自然 OSX 和 iOS 应该没有问题,那剩下的呢?

0 投票
1 回答
1332 浏览

javascript - 在 JavaScriptCore 中的全局对象上公开字符串

我用 JavaScript 编写了一个可移植的框架,我想在各种 JavaScript 解释器 shell 环境下运行一些性能测试。为了实现这一点,我需要能够将命令行参数 (argv) 传递给脚本上下文。默认情况下,Rhino 和 Spidermonkey 解释器已经这样做了,将脚本文件之后的所有参数公开为绑定到全局对象上的“参数”标识符的数组。最初我打算为 v8 示例 shell 以及 JavaScriptCore jsc shell 带来相同的功能,但我很快意识到这需要更多的努力,而且我真的只需要最后一个命令行参数即可运行我的测试。因此,我已经能够在 v8 中使用它,将 argv 中的最后一个 char* 元素转换为 v8::

不幸的是,我在用 JavaScriptCore 完成同样的事情时遇到了更多的麻烦。我找不到太多关于 JavaScriptCore C++ API 的文档,而且 JavaScriptCore jsc 解释器(在Source/JavaScriptCore/jsc.cpp 中)中的代码比 v8 示例 shell 中的代码更难理解。

具体来说,我会感谢任何可以帮助说明以下任务的资源(文档、教程、示例代码等):

  • 从 char* 创建一个新的 JavaScriptCore JSString 实例
  • 将 JSString 实例绑定到 GlobalObject 全局对象实例上的标识符。

我打算简单地修补 jsc.cpp 的函数 jscmain:

我非常感谢任何人可以提供的任何指导。

0 投票
1 回答
862 浏览

c++ - 回调需要const函数,如何传递对象的实例成员

我在更大的 GTKmm/C++ 应用程序中使用 WebKitGTK+。我正在使用 JavaScriptCore 与其中的 WebKitWebFrame 和 JSContext 进行交互。

我现在卡住了,因为在调用 javascript 函数时我需要与 GTK GUI 组件进行交互。为此我找到了JSObjectMakeFunctionWithCallback函数。

回调必须定义为带有 def 的静态函数:

所以一切正常,除了我需要回调中的对象实例来返回我需要操作的 GUI 组件。

关于 SO 有很多类似的问题,但大多数集中在将对象实例传递给回调。我看不到使用此 API 的方法。

有任何想法吗?

0 投票
2 回答
1497 浏览

javascript - 如何列出以_func开头的所有javascript函数

是否可以在数组中列出/返回我自己的 .js 文件中以字符串“_func”开头的所有 javascript 函数?

在 WebKit 的 JSCore 中完成。

基本上,如果我的文件有一堆函数,我该如何枚举这些函数?

0 投票
5 回答
5751 浏览

html - 是否有在 V8 或 Rhino 而不是 JavaScriptCore 上运行的 HTML5 桌面应用程序框架(如 Titanium 或 Adob​​e AIR)?

我们的产品是一个桌面应用程序,由大量 HTML5 和 JavaScript 以及一个特定于平台的薄层组成,该层基本上是一个 WebKit 外壳。由于这与Appcelerator Titanium等框架的策略大致相同,而且我们在这个自定义的 WebKit shell 代码上浪费了太多精力,我们希望切换到 Titanium 或类似的框架来为我们处理。

但是,如果我们可以在此过程中选择一个不错的现代 JavaScript 引擎,那么这样的转换会更加引人注目。和 Titanium 一样,我们目前正在使用 JavaScriptCore,这很糟糕(他们仍然没有Function.prototype.bind!)。我们将采用 V8 来获得速度和现代性,或者采用 Rhino 来获得美味的 JavaScript 1.7/ECMAScript Harmony特性。

有谁知道使用这些引擎中的任何一个使用 HTML5 构建桌面应用程序的框架?或者通过某种方式让 Titanium 可以轻松工作?我在 GitHub 上看到了v8_titaniumrhino_titanium项目,但在其他任何地方都没有提到它们,也没有任何关于如何使用它们的文档。Adobe AIR WebKit 页面也没有什么令人鼓舞的地方。

0 投票
1 回答
1749 浏览

javascript - 如何使用 JavaScriptCore 框架执行 JavaScript?

我已经实现了以下代码来执行Jasmine 测试框架的 JavaScript 文件。

这是我的函数,它返回 HTML 数据......当我执行脚本时,我在异常处收到以下错误:

虽然我的脚本jasmine在第一行声明了变量。上面的代码还有什么问题???他们还有其他执行 JavaScript 的方式吗?

还有一个问题:JavaScriptCore 框架是否支持 DOM 和 HTML 的其他功能?

0 投票
1 回答
1241 浏览

build - Create static build of jsc/webkit in order to run on old machine

I'm doing performance-testing research of different JavaScript interpreters on a cluster of old Fedora machines. node/v8, rhino, and spidermonkey shells all work fine on these machines, but JavaScriptCore (jsc), which I have been able to build on my recent Ubuntu box, is missing a shared library dependency (error while loading shared libraries: libicui18n.so.44: cannot open shared object file: No such file or directory). I'd therefore like to create a static build of jsc with all dependent libraries compiled in so that I can run it on these old machines. I'm wondering if there's a way to create a static build of webkit, or just jsc, so that I can run jsc on these old machines?

0 投票
1 回答
185 浏览

javascript - 如何从 webkit 的 javascript 中获取 javascript 新对象信息?

我想将新的对象信息名称和参数提取到 HTML 页面中。如

我需要打印:

带有参数 10,20 的新对象 g

我是 Webkit 的新手。最初我想只是在 javascriptcore 中添加一个 printf 语句。我在 JavaScriptCore/runtime/FunctionConstructor.cpp ,ObjectConstructor.cpp 添加了一些 printf 语句。

但没有得到正确的结果。

我用谷歌搜索,但关于 javascriptcore 的教程很少。我希望一些专家能指出我正确的方向。

0 投票
1 回答
1543 浏览

javascript - 从 WebKit / JavaScriptCore 中的 Javascript 获取返回值

我正在使用 JavaScriptCore API 来获取 Javascript 的全局上下文。我希望能够在 C 中操纵从 Javascript 中返回的值。这是我拥有的相关代码示例:

ReturnOne() 是一个 JavaScript 函数,如下所示:

当我在函数中添加警报时,它会显示,因此我知道该函数被正确调用。我试图简单地打印出数字 1 但我得到了一个很大的负值。我没有正确解释 JSValueToNumber 吗?

任何意见,将不胜感激。谢谢。

编辑:我做了一些挖掘并找到了这个宝石 - https://lists.webkit.org/pipermail/webkit-help/2011-January/001849.html

不幸的是,我以这种方式实现我的 C 代码得到了相同的结果。我在 Javascript 中的函数返回一个原语,我想将该 Javascript 原语转换为我期望的值(在本例中为 1)。

我也可以选择从 Javascript 返回对象的替代方案,只要我能得到我期望的数值。

0 投票
1 回答
2578 浏览

c - 在 C 应用程序中嵌入 JavascriptCore

我正在尝试查找有关如何在 C 项目中嵌入 JavascriptCore 的信息。很容易找到 V8 和 SpiderMonkey 的指南,但几乎不可能找到 JSC。有谁知道在哪里看?

我宁愿不嵌入 V8,因为它是 C++,而且我听说 SpiderMonkey 的 API 很糟糕。