Что возвращает FunctionDeclarations? [Ошибка?] - PullRequest
0 голосов
/ 15 мая 2018

Я сделал 2 примера для демонстрации моего вопроса:

/// first script
function a(){}
/// Outputs: undefined

/// second script
{
   function a(){}
}
/// Outputs: f a(){}

Вы можете запустить оба примера в chrome dev-tools. Теперь давайте посмотрим на спецификации:

14.1.21 Семантика времени выполнения: оценка

FunctionDeclaration: functionBindingIdentifier (FormalParameters) {FunctionBody}

  1. Возвращает NormalCompletion (пусто).

NOTE 1 An alternative semantics is provided in B.3.3.

FunctionDeclaration: function (FormalParameters) {FunctionBody}

  1. Возвращает NormalCompletion (пусто).

Таким образом, вы можете видеть, что FunctionDeclaration должна возвращать Completion([[Value]]: empty)

Хром дев-инструменты лежат?

P.S Firefox во втором примере outputs: undefined

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...