Вопрос не в том, что содержат эти сущности. Вопрос в плане их использования. Т.е. какой смысл от VarDeclaredNames, если в VarScopeDeclarations содержится и имена (хотя бы можно извлечь) (То же касается LexicallyDeclaredNames, LexicallyScopeDeclarations)
Например
VarDeclaredNames, LexicallyDeclaredNames, VarScopeDeclarations, LexicallyScopeDeclarationsVarDeclaredNames, LexicallyDeclaredNames, VarScopeDeclarations, LexicallyScopeDeclarationsVarScopeDeclarations, LexicallyScopeDeclarationsLexicallyScopeDeclarationsVarDeclaredNames, VarScopeDeclarations, LexicallyScopeDeclarations@zeroflag Ну: VarScopeДекларации (список) - function a (){/*code*/}, var c = 10 VarDeclaredNames (список) -"a","c"
Хорошо, но вопрос был в том, что означает предложение? И если вы знаете разницу, то каков ваш настоящий вопрос?
@zeroflagL Вопрос в плане их использования Зачем в спецификации используются VarDeclaredNames, если VarScopeDeclarations содержит информации намного больше и в алгоритмах спецификации это видно. Посмотрите GlobalDeclarationInstatiation, где VarScopeDeclarations используется для создания привязок (для извлечения имен)
Так проще. Если вам нужно работать с именами, вы можете сделать это напрямую.
@zeroflagL Правда? Я про это и спрашиваю! Зачем использовать такие имена, как VarDeclaredNames? Я уже говорил, что имена можно получить из VarScopeDeclarations (что и сделано в спецификации). Тогда в чем смысл? При необходимости могу указать места.
Задача спецификации - быть как можно более ясной. Кто-то, реализующий эту логику, будет на 100% свободен поделиться логикой для нее и вполне может это сделать, но это не значит, что для языка спецификаций это имеет смысл.
Если для задачи требуются только имена, извлекать имена из большего списка неэффективно. В этом случае более эффективно иметь список только с заранее извлеченными именами.
@TinyGiant Если вы говорите, что лучше использовать список имен заранее, так как меньше времени на извлечение, то почему список имен не везде используется, но есть места, где используется список объявлений, из которых извлекаются имена ?
@MaximPro Мне нужно было бы более внимательно изучить спецификацию и, возможно, реализацию, но я предполагаю, что это связано с тем, что в этих случаях требуется больше информации, чем просто имена.





Что вы имеете в виду под "какой смысл от VarDeclaredNames, если в VarScopeDeclarations содержится и имена"?