Почему я не могу передать console.log в качестве аргумента обратного вызова в Chrome (и Safari)?

Следующий фрагмент выдаст ошибку в Chrome (и Safari), пока он работает в Firefox.

Я ожидаю, что в консоли javascript будет показано 2 числа, но в Chrome я получаю только первое, а затемUncaught TypeError: Illegal invocation

// a generic promise that return a random float
var makePromise = function() {
  return $.Deferred().resolve(Math.random());
}

// This works in all browsers
makePromise().then(function(d) {
  console.log(d);
});
// This works in firefox only
makePromise().then(console.log);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Почему это происходит?

Примечание: мой вопрос не совпадает сэтот вопрос.

Обновить

Спасибо за комментарии и ответ на использованиеconsole.log в качестве обратного вызова нужно сделать

makePromise().then(console.log.bind(console));

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

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