Automatische Semikolon-Einfüge- und Rückgabeanweisungen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Welche Regeln gelten für das automatische Einfügen von Semikolons (ASI) in JavaScript? 4 Antworten

Wie Sie vielleicht wissen, versucht ECMAscript intelligent zu sein und wird automatisch eingefügtSemikolons wenn du die nicht explizit geschrieben hast. Einfaches Beispiel

function foo() {
    var bar = 5

    return bar
}

wird weiterhin wie erwartet funktionieren. Aber es gibt einige Einschränkungen, wenn Sie sich darauf verlassen. Wenn wir diese Funktion so umschreiben

function foo() {
    var bar = 5

    return
    {
        bar: bar
    }
}

..diese Funktion würde jetzt zurückkehrenundefined weil der Interpreter das Semikolon direkt nach dem einfügtreturn Anweisung (aus diesem Grund sollten Sie geschweifte Klammern immer in dieselbe Zeile wie eine Anweisung setzen).

Wenn ich das alles weiß, frage ich mich jetzt, wiesicher a return Aussage wie die folgende ist, über Browser und Versionen

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

    return a 
            && b
            && c;
}

Ich habe gerade ein ähnliches geschriebenreturn statement in einer Produktionsumgebung. Nur weil ich wusste, dass die "Probleme" mit ECMAscript beim Einfügen von Semikolons nicht so klug sind, frage ich mich jetzt, ob dieser Code zu 100% funktioniert. In meinen ersten Tests mit FF / Chrome / IE (neueste Versionen) scheint das völlig in Ordnung zu sein, aber ist es das wirklich?

Tut dasautomatisches Einfügen von Semikolons "Aufwachen", wenn es etwas anderes als das gibtreturn Aussage in dieser Zeile? Kann jemand Details dazu auf Implementierungsebene bereitstellen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage