2

我想在 GJS 中实现字典和集合,但唯一可用的比较运算符Object===,所以如果我在标准 JavaScript 中实现它们,当Objects 用作键时它们会很慢。GJS 使用尚无 Map 和 Set 的官方独立 SpiderMonkey 版本 (1.8.5)。引入允许比较对象身份的 API 的最佳方法是什么?

  • 我可以为 GJS 编写一个 C 模块,允许获取和比较对象标识
    • 也许我可以使用指向JSObjects 的指针。
      • 能保证SpiderMonkey不会动JSObject吗?
      • C 标准不允许比较不是来自同一个块的指针。
      • 并且新的 64 位计算机具有不适合double53 位整数的 64 位地址。
    • 我可以手动将对象与数字关联起来。
      • 如何在JSObject不添加 JavaScript 可见的属性的情况下将任意数据与任意现有数据相关联?
  • 或者也许有一个特定于 SpiderMonkey 的扩展,它允许我在纯 JavaScript 中完成它而无需编写 C 模块?
4

0 回答 0