V8 Internals - Manejo de funciones anónimas

Para la historia completa, echa un vistazomi otra pregunta.

Básicamente, le pregunté si era más eficiente usar funciones nombradas en los controladores de socket para el siguiente código:

<code>var app = require('express').createServer()
var io = require('socket.io').listen(app);

app.listen(8080);

// Some unrelated stuff

io.sockets.on('connection', function (socket) {
    socket.on('action1', function (data) {
        // logic for action1
    });

    socket.on('action2', function (data) {
        // logic for action2
    });

    socket.on('disconnect', function(){
        // logic for disconnect
    });
});
</code>

La respuesta general fue sí (vea el enlace anterior para obtener más detalles), pero el siguiente comentario fue publicado porMaestro de ladrones:

No estoy familiarizado con los componentes internos de V8, pero podría ser lo suficientemente inteligente como para compilar la función una vez y reutilizarla cada vez, solo con un alcance diferente adjunto.

Así que ahora esa es mi pregunta. ¿Es V8 lo suficientemente inteligente como para compilar funciones anónimas una vez y reutilizarlas con diferentes ámbitos en situaciones donde las funciones anónimas normalmente llevan a la creación de varias instancias de funciones? Por ejemplo, arriba esperaría el controlador para elconnection evento que se creará una vez, pero los controladores paraaction1, action2ydisconnect Para ser creado para cada conexión. En la otra pregunta, esto se resolvió con funciones nombradas, pero estoy más interesado si es necesario en V8 o si va a hacer algunas optimizaciones.

Respuestas a la pregunta(1)

Su respuesta a la pregunta