V8 Internals - manuseio de funções anônimas

Para a história completa, confiraminha outra pergunta.

Basicamente, eu perguntei se era mais eficiente usar funções nomeadas nos manipuladores de soquete para o seguinte 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>

A resposta geral foi sim (veja o link acima para mais detalhes), mas o seguinte comentário foi postado porThiefMaster:

Eu não estou familiarizado com internals V8, mas pode ser inteligente o suficiente para compilar a função uma vez e reutilizá-lo toda vez, apenas com um escopo diferente anexado.

Então agora essa é a minha pergunta. O V8 é inteligente o suficiente para compilar funções anônimas uma vez e reutilizá-las com escopos diferentes em situações nas quais funções anônimas normalmente levam à criação de várias instâncias de função? Por exemplo, acima eu esperaria que o manipulador para oconnection evento a ser criado uma vez, mas os manipuladores paraaction1, action2edisconnect a ser criado para cada conexão. Na outra questão, isso foi resolvido com funções nomeadas, mas estou mais interessado se isso for necessário no V8 ou se ele fizer algumas otimizações.

questionAnswers(1)

yourAnswerToTheQuestion