Articles of ecmascript harmony

jslint +节点 – 和谐

如何让jslint和node –harmony相处? 当我用和谐标志运行节点时,我得到像这样的jslint错误: #1 Expected an identifier and instead saw 'let'. 总结一下,我希望jslint认识到我正在使用ES6扩展。 有没有办法?

可以调用模块或类在node.js / Javascript中截获

在PHP中,每个类都包含一个“magic”__call函数。 使用这个可以dynamic地截取所有对类的调用。 例如使用 class TestClass { public function __call($functionname, $arguments) { .. functionname called } } 见http://www.php.net/manual/en/language.oop5.overloading.php#object.call 在JavaScript / Node.js中有类似的可能吗? 要么在一个模块(按需求加载)或类? 更新:感谢所有的评论。 这在纯JavaScript中似乎不可行。 至less目前。 正如bfavaretto指出的,这可以通过在Node.js中启用和声代理来完成。 请参阅在nodejs中启用Harmony代理 。 这个问题似乎是调用JavaScript对象时获取通知的重复。 可能相关: __noSuchMethod__ ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/noSuchMethod ),标记为非标准。

使用–harmony-generators编译节点默认情况下

我正在尝试使用–harmony –harmony-generators标志默认始终打开来构build节点v0.11.12-release。 我想我可以编辑这一行的值是true ,但是当我这样做时,我会得到下面的错误,每当我运行节点。 Extension or internal compilation error. Segmentation fault: 11 我尝试编辑:deps / v8 / src / flag-definitions.h DEFINE_bool(harmony_generators, true, "enable harmony generators") 有任何想法吗? 非常感谢。

使用node.js,nodeunit和ES6 / Harmony

现在我有一个使用node.js和nodeunit的unit testing构build环境。 非常高兴与这些,但现在我需要TCO。 我知道TCO已经join了ES6标准,但我不知道如何让它与我的项目一起使用。 尝试了和谐标志,但无法使它与nodeunit一起工作。 任何帮助? 得到了在这里使用和谐的想法: Node.js尾巴优化:可能与否? 我喜欢这些家伙想的方式,但是我不能做第一个答案,因为那么其他在这个项目上的工作也将被迫改变他们的nodeunit.cmd文件(这可能搞砸了他们正在处理的其他项目),第二个答案似乎不起作用: NodeUnit启用和声function

for-of循环中的节点–harmony不适用于数组

当我用–harmony选项启动节点v0.11.14 REPL并尝试for-for循环时,我得到: > for (var i of [3, 4, 5]) console.log(i); TypeError: undefined is not a function 同样的套。 但是它可以很好地处理发电机: > function* Counter() { var n=3; while (n < 7) { yield n++; } } > var c = new Counter(); > for (var i of c) console.log(i); 3 4 5 6 尽pipeecmascript wiki页面的第一个例子是: for (word […]

在Openshift和谐

我想在Openshift Online PaaS上获得一个简单的生成器函数。 我按照nodejs-custom-version-openshift的说明运行节点0.12而不是默认的0.10,并在server.js的底部添加了一个简单的生成器函数。 我按照指示添加了harmony标志,它在npm start和node server.js本地工作。 然而在Openshift上我得到: DEBUG: Program node –harmony server.js exited with code 8 DEBUG: Starting child process with 'node –harmony server.js' /var/lib/openshift/0000000000700003a/app-root/runtime/repo/server.js:33 function* idMaker(){ ^ SyntaxError: Unexpected token * 在Openshift上还有另一种更好的方法来使用和谐/发电机吗?

Nodejs中的地图集合Harmony / ES6破坏了吗?

似乎Nodejs 0.10.20中的Map已经损坏。 我用–harmony(包括–harmony_collections标志)启动它。 请参阅http://dailyjs.com/2012/10/15/preparing-for-esnext/ 。 下面的例子在Firefox 20.0中运行。 在Nodejs控制台中,我执行以下操作 > var map = new Map([[“name”,“Nicholas”],[“title”,“Author”]]); 未定义 >地图 {} 所以contsructor初始化似乎没有工作。 然后我按照Firefox的例子,他们大多不工作: > console.log(map.has(“name”)); // true 假 未定义 > console.log(map.get(“name”)); //“尼古拉斯” 未定义 未定义 > console.log(map.has(“title”)); // true 假 未定义 > console.log(map.get(“title”)); //“作者” 未定义 未定义 > console.log(map.size()); // 2 TypeError:对象#没有方法“大小” 在复制:1:17 在REPLServer.self.eval(repl.js:110:21) 在repl.js:249:20 在REPLServer.self.eval(repl.js:122:7) 在界面。 (repl.js:239:12) 在Interface.EventEmitter.emit(events.js:95:17) 在Interface._onLine(readline.js:202:10) 在Interface._line(readline.js:531:8) […]

编写一个将module.exports设置为生成器函数的NPM模块是否可行?

如果你想发布一个sorting了IO的模块,是否可以编写, ./sequenced_actions.js module.exports = function * () {} 从而允许类似的东西, co( function * { yield require('./sequenced_actions'); } )();

在节点0.11中使用ES6箭头函数w / Foo.prototype

我得到了我在使用原型扩展中使用箭头函数的意外行为。 function ES6Example(){} ES6Example.prototype.foo = function(bar){ return ((baz) => { console.log(this) this.bar = baz })(bar) } var es6Example = new ES6Example es6Example.foo('qux') console.info(es6Example.bar) 上面的代码导致全局上下文被打印出来, es6Example.bar也是未定义的。 这是旧的行为。 基于我在MDN中看到的文档,我期望这个绑定到实例。 我正在使用和谐标志使用节点v0.11.15运行上面的代码。 请注意,下面的工作: function ES6Example(){ this.foo = baz => { this.bar = baz } }

如何在node.js中使用promise

所以,我有一个承诺支持nodejs: $ node -v v0.11.11 但是,当我尝试使用承诺我有一个错误: $ node –harmony test.js require, module, __filename, __dirname) { var promise = new Promise(fu ^ ReferenceError: Promise is not defined at Object.<anonymous> (/home/just-boris/coding/test.js:1:89) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:349:32) at Function.Module._load (module.js:305:12) at Function.Module.runMain (module.js:490:10) at startup (node.js:123:16) at node.js:1128:3 源代码在我的要点 我做错了什么? 此外,我尝试运行生成器示例 ,它的工作,所以这意味着es6function启用,除了承诺