1

我想Reflect.parse在 Firefox 中的 JavaScript 中使用。

MDN说通过

Components.utils.import("resource://gre/modules/reflect.jsm")

但是,这会导致以下错误消息:

Error: Permission denied for <file://> to get property XPCComponents.utils

我已经在 Firefox 11 和 Aurora 中尝试过。

我怎样才能访问Reflect.parse

编辑:

错误消息是由于以下片段引起的:

Component.utils
4

1 回答 1

1

这个问题没有真正的解决方案。至少可以说,wiki 中的文档具有误导性。Reflect.parse

如果您想在 SpiderMonkey/Firefox 中使用“纯”JavaScript 解决方案,请不要依赖Reflect.parse.

我看到很多项目都使用Narcissus的解析器,我也应该这样做。

编辑: Esprima项目是 Mozilla Parser API 的出色实现。替换完我所有的 150 多个测试用例后Reflect.parse仍然esprima.parse是绿色的,除了 5 个左右处理非标准的 SpiderMonkey 扩展,如let表达式(我觉得这非常令人印象深刻)。

于 2012-04-21T06:45:50.033 回答