问题标签 [spidermonkey]
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.
firefox - 如何在构建时在firefox SpiderMonkey中设置默认的js引擎?
众所周知,firefox中有几个JSengine(如SpiderMonkey,traceMonkey,jaegerMonkey等),我想知道我们在构建FF11.0或12.0时是否可以设置默认的JSengine SpiderMonkey(只有usr解释器模式)从源头?
例如,我们可以设置任何选项来实现它吗?如果可以,哪个选项可以做到?或者如果你知道其他方法,请告诉我,谢谢
javascript - 带块的常量声明
最近我正在研究 Firefox Add-on Builder SDK 源代码,并偶然发现了这样的常量声明:
我可以找到有关CommonJS Modules的信息,但是这个作业的剩余部分让我有点困惑,因为它必须是特定于语言的,我无法在谷歌上搜索任何内容。
有人可以向我指出一些解释这里发生了什么的规范/草案吗?
javascript - 编译嵌入式 SpiderMonkey 程序时出错
好的,所以我使用命令下载了 SpiderMonkey 源代码wget http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz
并解压了它。然后我通过执行以下命令成功构建了包含文件和静态库:
autoconf2.13
./configure --prefix=~/js --disable-shared-js
make
make install
现在我尝试使用命令编译以下代码g++ -I/home/aaditmshah/js/include/js -L/home/aaditmshah/js/lib -lmozjs185-1.0 -ldl -lm -ldl helloworld.cpp -o helloworld
:
我知道我的include
和linker
选项指向正确的目录。包含文件在/home/aaditmshah/js/include/js
,名为的静态库libmozjs185-1.0
在/home/aaditmshah/js/lib
. 但是它仍然会产生以下错误:
我想知道我缺少哪些文件。我应该重建 SpiderMonkey 并安装它/usr/local
吗?任何帮助将不胜感激。
我很确定问题不在于我使用的是静态库。我将 SpiderMonkey 重建为共享对象库,但它仍然给了我同样的错误。
javascript - 在底层,Javascript 对象是哈希表吗?
我想知道对象是如何在 Javascript 引擎(V8、Spidermonkey 等)中实现的。它们真的只是哈希表吗?如果是这样,他们如何处理碰撞?
javascript - 是否存在与引擎无关的 Reflect.parse?
Mozilla 提供了一个用于解析 Javascript 模块以生成抽象语法树的 API 。他们称之为Reflect.parse。
是否有一个 Reflect.parse 或类似的东西,用 Javascript 编写为一个独立的模块?我可以在任何 ES5 引擎上运行以生成语法树吗?失败的是,C++ 中有一个独立的工具可以为我做这件事吗?还是服务?
我尝试了 doctorjs.org 的一个非常简单的自我评估匿名函数,但它窒息了。我做错了吗?
javascript - Javascript 对象中 `get functionname() {...}` 的含义
我一直在查看 GNOME shell javascript 界面,并注意到popupMenu.js
来自类原型的以下片段(对于那些感兴趣的人):
谁能给我解释一下是什么get state() { ... }
意思?我认为一切都必须是name: value
javascript 对象中的形式吗?(如果我制作这些对象之一,我可以做obj.state
它返回我假设的内容this._switch.state
)。
请注意 GNOME 说他们使用类似于 Mozilla 的 Spidermonkey 的一种 javascript (gjs) 风格可能会有所帮助,那么这种行为是非标准的 javascript 行为和 spidermonkey/gjs 的特性吗?
另外,是否有与此相关的文档?
javascript - Get property name by id
I'm using this code to iterate over the properties passed to a native function:
This works fine to get the value of the property, however, I need the name of that property, too.
I couldn't find any of the various property-related ...ById()
functions which give me the property name.
javascript - 防止 Spidermonkey Javascript 引擎中的垃圾收集
根据 Spidermonkey 的用户指南
https://developer.mozilla.org/En/SpiderMonkey/JSAPI_User_Guide
... jsval 本身并不能保护其所指对象免受垃圾收集器的影响...
我对这句话的理解是,如果我们通过 JS_NewStringCopyZ() 创建一个 JSString,那么返回的值可以随时被 gc'ed。例如
那么我们如何防止上面的str被 gc'ed 呢?我注意到有一个JS_EnterLocalRootScope () 函数,我可以在 JSNative 函数的开头调用它。不幸的是,它现在已被弃用。那么防止gc的正确方法应该是什么?
firefox - 如何使用 Firefox 源代码中的附属 js 文件在 Firefox 中测试 jsengine?
我已经成功地从源代码构建了spidermonkey,我唯一困惑的是如何测试它的性能?幸运的是,我在FFsource code的/js/src/tests文件夹中看到了很多测试js文件,所以我可以冒险吗?这些测试文件?如何 ?
javascript - SpiderMonkey 中是否有与 PyCapsule 等效/相似的东西?
当嵌入 Python 时,有一种PyCapsule
类型可以创建一个包含 C 指针的对象,该指针不能从 Python 代码中修改,也就是说,它非常适合传递仅由 C 代码使用的东西。
由于我的应用程序还通过 SpiderMonkey 引擎支持 JavaScript,因此我正在 SpiderMonkey 中寻找类似的东西。我知道我可以JSClass
使用JSCLASS_HAS_PRIVATE
标志创建自定义,但我想知道是否还有另一种更简单/更轻量级的方法。