我想在 GJS 中实现字典和集合,但唯一可用的比较运算符Object
是===
,所以如果我在标准 JavaScript 中实现它们,当Object
s 用作键时它们会很慢。GJS 使用尚无 Map 和 Set 的官方独立 SpiderMonkey 版本 (1.8.5)。引入允许比较对象身份的 API 的最佳方法是什么?
- 我可以为 GJS 编写一个 C 模块,允许获取和比较对象标识
- 也许我可以使用指向
JSObject
s 的指针。- 能保证SpiderMonkey不会动
JSObject
吗? - C 标准不允许比较不是来自同一个块的指针。
- 并且新的 64 位计算机具有不适合
double
53 位整数的 64 位地址。
- 能保证SpiderMonkey不会动
- 我可以手动将对象与数字关联起来。
- 如何在
JSObject
不添加 JavaScript 可见的属性的情况下将任意数据与任意现有数据相关联?
- 如何在
- 也许我可以使用指向
- 或者也许有一个特定于 SpiderMonkey 的扩展,它允许我在纯 JavaScript 中完成它而无需编写 C 模块?