Underscore.js, почему `isFunction` использует` || false`?

Необязательное переопределение дляisFunction(object) в Underscore.js (репо ссылка на определение) гласит:

// 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;
    };
}

Что меня смущает, так это|| falseзачем это нужно после сравнения строк? посколькуtypeof всегда возвращает строку не должно быть никакой двусмысленности?
Комментарий гласит, что переопределение исправляет некоторыеtypeof ошибки, есть ли случаи на перечисленных платформах, когдаtypeof не возвращает строку?

Ответы на вопрос(1)

Ваш ответ на вопрос