Underscore.js, warum verwendet `isFunction`` || false`?

Die optionale Überschreibung fürisFunction(object) in Underscore.js repo Link zur Definition) lautet wie folgt:

// Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,
// IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).
var nodelist = root.document && root.document.childNodes;
if (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {
    _.isFunction = function(obj) {
        return typeof obj == 'function' || false;
    };
}

Was ich verwirrt bin, ist das|| false, warum ist das nach einem Stringvergleich nötig? Schon seittypeof gibt immer einen String zurück, bei dem es keine Mehrdeutigkeit geben sollte?
Der Kommentar besagt, dass das Überschreiben einige @ behetypeof Bugs, gibt es Fälle auf den aufgelisteten Plattformen, wenntypeof gibt keinen String zurück?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage