Inserção automática de ponto-e-vírgula e instruções de retorno [duplicado]

Esta questão já tem uma resposta aqui:

Quais são as regras para a inserção automática de ponto-e-vírgula (ASI) do JavaScript? 4 respostas

Como você deve saber, o ECMAscript tenta ser inteligente e irá inserir automaticamenteponto e vírgula se você não escreveu isso explicitamente. Exemplo simples

function foo() {
    var bar = 5

    return bar
}

ainda funcionará como esperado. Mas há algumas ressalvas se você confiar nisso. Se nós reescrevermos essa função assim

function foo() {
    var bar = 5

    return
    {
        bar: bar
    }
}

..que função retornaria agoraundefined porque o intérprete iria inserir esse ponto e vírgula logo após oreturn declaração (essa é uma razão pela qual você sempre deve trazer chaves na mesma linha que uma instrução).

No entanto, sabendo tudo isso eu estou querendo saber agora comoseguro a return declaração como a seguinte, em navegadores e versões

function foo() {
    var a = true,
        b = true,
        c = false;

    return a 
            && b
            && c;
}

Eu acabei de escrever um similarreturn statement em um ambiente de produção. Só porque eu sabia sobre os "problemas" com ECMAscript sendo não tão esperto sobre a inserção de ponto-e-vírgula Eu estou querendo saber agora, se esse código funciona 100%. Nos meus primeiros testes em FF / Chrome / IE (versões mais recentes), isso parece estar totalmente bem, mas será mesmo?

Oinserção automática de ponto-e-vírgula "acordar" se houver outra coisa que não seja oreturn declaração nessa linha? Alguém pode fornecer detalhes de nível de implementação sobre isso?

questionAnswers(3)

yourAnswerToTheQuestion