Saltar al contenido principal

Contenido adicional para "Entendiendo la especificación ECMAScript, parte 2"

· 3 min de lectura
[Marja Hölttä](https://twitter.com/marjakh), espectador especulativo de especificaciones

¿Por qué es o2.foo una AssignmentExpression?

o2.foo no parece una AssignmentExpression ya que no hay asignación. ¿Por qué es una AssignmentExpression?

La especificación permite en realidad una AssignmentExpression tanto como argumento como en el lado derecho de una asignación. Por ejemplo:

function simple(a) {
console.log('El argumento fue ' + a);
}
simple(x = 1);
// → Registra “El argumento fue 1”.
x;
// → 1

…y…

x = y = 5;
x; // 5
y; // 5

o2.foo es una AssignmentExpression que no asigna nada. Esto se deduce de las siguientes producciones gramaticales, cada una tomando el caso "más simple" hasta la última:

Una AssignmentExpression no necesita tener una asignación, también puede ser simplemente una ConditionalExpression:

AssignmentExpression : ConditionalExpression

(También hay otras producciones, aquí mostramos solo la relevante.)

Una ConditionalExpression no necesita tener una condicional (a == b ? c : d), también puede ser simplemente una ShortcircuitExpression:

ConditionalExpression : ShortCircuitExpression

Y así sucesivamente:

ShortCircuitExpression : LogicalORExpression

LogicalORExpression : LogicalANDExpression

LogicalANDExpression : BitwiseORExpression

BitwiseORExpression : BitwiseXORExpression

BitwiseXORExpression : BitwiseANDExpression

BitwiseANDExpression : EqualityExpression

EqualityExpression : RelationalExpression

RelationalExpression : ShiftExpression

Lanzamiento de V8 v8.1

· 2 min de lectura
Dominik Inführ, el hombre internacional (de la internacionalización) misterioso

Cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se crea a partir del maestro Git de V8 inmediatamente antes de un hito de Chrome Beta. Hoy nos complace anunciar nuestra más reciente rama, V8 versión 8.1, que estará en beta hasta su lanzamiento en coordinación con Chrome 81 estable en varias semanas. V8 v8.1 está lleno de todo tipo de novedades para desarrolladores. Este artículo ofrece un adelanto de algunos de los aspectos destacados antes del lanzamiento.

Entendiendo la especificación ECMAScript, parte 1

· 10 min de lectura
[Marja Hölttä](https://twitter.com/marjakh), espectadora de especificaciones especulativas

Todos los episodios

En este artículo, tomamos una función simple de la especificación y tratamos de entender la notación. ¡Vamos allá!

Prefacio

Incluso si conoces JavaScript, leer la especificación del lenguaje, Especificación del lenguaje ECMAScript, o simplemente la especificación ECMAScript, puede ser bastante desalentador. Al menos así me sentí cuando la leí por primera vez.

Lanzamiento de V8 v8.0

· 6 min de lectura
Leszek Swirski, V8vo de su nombre

Finalmente está aquí. Cada lanzamiento de V8, cada seis semanas cuando ramificamos como parte de nuestro proceso de lanzamiento, surge la pregunta sobre qué pasará cuando V8 llegue a la versión 8. ¿Tendremos una fiesta? ¿Lanzaremos un nuevo compilador? ¿Saltaremos las versiones 8 y 9 y nos quedaremos eternamente en una versión X de V8? Finalmente, después de más de 10 años de trabajo, en nuestro post número 100 del blog, nos complace anunciar nuestra rama más reciente, V8 versión 8.0 V8, y finalmente podemos responder a esa pregunta:

Fuera de la web: binarios independientes de WebAssembly usando Emscripten

· 14 min de lectura
Alon Zakai

Emscripten siempre se ha centrado principalmente en compilar para la Web y otros entornos JavaScript como Node.js. Pero a medida que WebAssembly comienza a ser utilizado sin JavaScript, surgen nuevos casos de uso, y por eso hemos estado trabajando en el soporte para emitir Wasm independiente desde Emscripten, que no depende del runtime de JavaScript de Emscripten. ¡Esta publicación explica por qué eso es interesante!

Lanzamiento de V8 v7.9

· 6 min de lectura
Santiago Aboy Solanes, extraordinario compresor de punteros

Cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se ramifica del maestro de Git de V8 inmediatamente antes de un hito de Chrome Beta. Hoy estamos complacidos de anunciar nuestra rama más reciente, V8 versión 7.9, que está en beta hasta su lanzamiento en coordinación con Chrome 79 Stable en varias semanas. V8 v7.9 está lleno de novedades de cara al desarrollador. Esta publicación proporciona un adelanto de algunos de los aspectos destacados en anticipación al lanzamiento.

Mejorando las expresiones regulares de V8

· 8 min de lectura
Patrick Thier y Ana Peško, expresadores regulares de opiniones sobre expresiones regulares

En su configuración predeterminada, V8 compila las expresiones regulares a código nativo en la primera ejecución. Como parte de nuestro trabajo en V8 sin JIT, introdujimos un intérprete para expresiones regulares. Interpretar expresiones regulares tiene la ventaja de usar menos memoria, pero conlleva una penalización de rendimiento. En esta publicación de blog describimos cómo aprovechamos las ventajas de interpretar expresiones regulares mientras mitigamos las desventajas.

Versión V8 v7.8

· 7 min de lectura
Ingvar Stepanyan ([@RReverser](https://twitter.com/RReverser)), el hechicero perezoso

Cada seis semanas, creamos una nueva rama de V8 como parte de nuestro proceso de lanzamiento. Cada versión se deriva de la rama principal de Git de V8 justo antes de un hito beta de Chrome. Hoy estamos encantados de anunciar nuestra rama más reciente, V8 versión 7.8, que está en beta hasta su lanzamiento en coordinación con Chrome 78 Stable dentro de algunas semanas. V8 v7.8 está lleno de todo tipo de novedades orientadas a desarrolladores. Este artículo ofrece un adelanto de algunos de los puntos destacados en anticipación del lanzamiento.

Un V8 más ligero

· 13 min de lectura
Mythri Alle, Dan Elphick, y [Ross McIlroy](https://twitter.com/rossmcilroy), observadores del peso de V8

A finales de 2018 iniciamos un proyecto llamado V8 Lite, con el objetivo de reducir drásticamente el uso de memoria de V8. Inicialmente, este proyecto fue concebido como un modo Lite separado de V8 específicamente orientado a dispositivos móviles con poca memoria o casos de uso en integradores que priorizan el ahorro de memoria sobre la velocidad de ejecución. Sin embargo, en el proceso de este trabajo, nos dimos cuenta de que muchas de las optimizaciones de memoria que habíamos hecho para este modo Lite podrían trasladarse al V8 regular, beneficiando a todos sus usuarios.

La historia de un límite de rendimiento en V8 para React

· 19 min de lectura
Benedikt Meurer ([@bmeurer](https://twitter.com/bmeurer)) y Mathias Bynens ([@mathias](https://twitter.com/mathias))

Anteriormente, discutimos cómo los motores de JavaScript optimizan el acceso a objetos y arreglos mediante el uso de Shapes y Inline Caches, y exploramos cómo los motores aceleran el acceso a las propiedades de prototipo en particular. Este artículo describe cómo V8 elige representaciones en memoria óptimas para varios valores de JavaScript, y cómo eso impacta en la maquinaria de formas, todo lo cual ayuda a explicar un reciente límite de rendimiento en V8 en el núcleo de React.