support nodejs node green es7 es6 node.js ecmascript-harmony

node.js - green - nodejs es7 support



Habilitar proxies de Harmony en nodejs (5)

Harmony Proxies no funcionará tan bien para los nodejs porque son efectivamente llamadas de función de tipo síncrono. Es decir, no puede implementar un método proxy que sea asíncrono.

Consulte este repositorio de GitHub para ver ejemplos: https://github.com/mschwartz/SilkJS-Harmony

¿Es posible habilitar los proxies Harmony de EcmaScript 6 en nodejs? Si es así, ¿cuáles son los pros y los contras? ¿Y hay alguna documentación sobre cómo usarlos? Gracias !


Puede usar pimped-proxy, que es una implementación liviana de proxies, lo que hace que la declaración sea más fácil y compatible con ES5. A diferencia del Proxy nativo, solo puede hacer proxy de las propiedades conocidas en el momento de la creación.

https://github.com/Boulangerie/pimped-proxy


Recomiendo harmony-reflect , lo que facilita, por ejemplo, la configuración de capturas get / set:

ACTUALIZACIÓN cuidadosa, a continuación es CoffeeScript

require ''harmony-reflect'' handler = get: ( target, name ) -> console.log ''get'' name return target[ name ] set: ( target, name, value ) -> console.log ''set'' name target[ ''%is-clean'' ] = no if value isnt target[ name ] if value is undefined then delete target[ name ] else target[ name ] = value return value clean = ( x ) -> x[ ''%is-clean'' ] = yes return x p = Proxy {}, handler p[ ''a'' ] = 1 p[ ''b'' ] = undefined console.log p[ ''a'' ], p[ ''b'' ] console.log "c" of p, p[ ''c'' ] console.log p clean p p[ ''a'' ] = 1 console.log p p[ ''a'' ] = 42 console.log p

lo anterior es el código inceptivo para hacer ''persistencia de objeto transparente'' en JavaScript. Al utilizar harmony-reflect , se vuelve trivial hacer que todas las acciones get y set en un objeto sean interceptadas. En esta demostración, establecemos un atributo %is-clean para que podamos probar si los miembros del objeto han sido cambiados, y también eliminar miembros que se han establecido en indefinido.


Proxy ahora está disponible de forma nativa en las versiones de Nodo> = 6.


Invocar nodo con node --harmony-proxies debería hacer el truco.

Pros: los proxies son una característica muy poderosa cuando realmente los necesitas.

Contras: los proxies son una característica demasiado poderosa cuando no los necesitas (lo que debería ser la mayor parte del tiempo). Además, la implementación aún debe considerarse experimental.

En cuanto a la documentación, todo lo que realmente existe es la wiki de Harmony, en particular esta página, que refleja la implementación actual de proxies en V8 (y, por lo tanto, nodo):

http://wiki.ecmascript.org/doku.php?id=harmony:proxies