在node.js中在运行时启用和声代理

时间:2013-06-30 20:57:45

标签: javascript node.js ecmascript-harmony

我有一个用于节点的RPC库,现在它使用远程对象的和声代理(如果它们可用)(通过检查是否存在Proxy全局)。

我希望能够在运行时打开和声代理,也就是说,在未使用--harmony-proxy标志启动的节点进程中。这可能吗?

我知道有很好的理由这样做,我并不在乎:-P

编辑正如答案中所指出的,node.js代理使用较旧的规范。我可以使用像https://github.com/tvcutsem/harmony-reflect这样的垫片来解决这个问题,但这仍需要--harmony标志来启用底层代理支持,我想知道是否可以在进程中启用它没有--harmony标志开始。

2 个答案:

答案 0 :(得分:3)

代理的版本取决于您使用master还是v0.10。最新稳定(v0.10)使用3.14分支,而开发(master)使用v8 bleeding_edge(目前位于3.20)。所以更正确的问题是,“v8实现了什么版本的代理?”

正在对代理实现进行工作,但它现在是一个移动目标。在错误跟踪器(http://code.google.com/p/v8/issues/detail?id=1543)中引用代理实现票证,看起来将会发生另一轮更改。所以要小心即将开发。

至于在应用程序而不是命令行中启用代理,我相信您必须编写本机模块并使用V8::SetFlagsFromString方法(https://github.com/v8/v8/blob/f281162/include/v8.h#L4341-L4344)。如果你需要一个例子,我可能会抽出时间来鞭打一个。

答案 1 :(得分:2)

Node.js实现了较旧的代理规范。不要使用它们。

https://groups.google.com/forum/?fromgroups=#!topic/nodejs/LPD8ut33-hg