Что это "функция a/<()" в консоли разработчика?

Во время игры с консолью разработчика в Firefox я попытался сделать это:

var a = b => c => c;

а затем это:

a(1)

Я ожидал, что результат будет function() (соответствует c => c), но вместо этого он был отображен:

function a/<()

В чем смысл этого выражения? Это явно не законный Javascript, поскольку ни /, ни < не являются допустимыми символами для имени функции.

То же самое происходит с использованием регулярных обозначений для функций, т.е. var a = function(b) { return function(c) { return c; } }.

Вот скриншот:

введите описание изображения здесь

Изменить: я попробовал следующее

var a = b => c => d => d;
a(1)

и результат

a/</<()

что заставляет меня думать о какой-то менее известной сокращенной нотации.

Ответ 1

Комментарии на относительная проблема в bugzilla указали, что это часть соглашения об именах для анонимной функции.

В частности,

  • a/b - внутренний b of var a = function() { var b = function() {}; }
  • a< - флаги a "contributor" или в основном некоторая вспомогательная функция, которая вносит вклад в функцию с именем a, будучи анонимной внутри нее.

Итак, a/<() означает, что аномальная функция была объявлена ​​в теле a.