Как создать совершенно новое ключевое слово в JavaScript? - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь выяснить, как достигается работа для любых новых ключевых слов в Javascript.

Например, для ES6 функции Arrow нельзя использовать в качестве функций конструктора с новым ключевым словом. Кроме того, свойство prototype не существует для функции стрелки. Я знаю, что они связывают это с лексическим выражением. Это отличается от того, что мы имеем для нормальной функции конструктора.

Итак, как наш браузер понимает функцию стрелки. Как понять, как работает функция стрелки.

Как новые функции добавляются в JavaScript и как это понимают браузеры?

1 Ответ

2 голосов
/ 11 февраля 2020

Как новые функции добавляются в JavaScript и как браузеры понимают это?

Новый синтаксис (например, функции стрелок) и объекты (например, Promises) добавляются в язык через процесс TC39 , администрируемый комитетом Ecma TC39.

Комитет Ecma TC39 отвечает за развитие языка программирования ECMAScript и разработку спецификации.

Вы можете увидеть ссылку там для общего обзора различных этапов, которые предложение должно пройти до go, чтобы быть добавленным к языку. После добавления в язык новое ключевое слово или объект будет подробно описан в официальной спецификации , которая предназначена для описания всех подробностей того, как что-то реализовано. Большое внимание уделяется тому, чтобы сделать вещи как можно более детерминированными c; ради совместимости между средами комитет должен выяснить точную семантику для максимально возможного количества ситуаций. Умные люди, как правило, занимают много дискуссий и размышлений.

После того, как описание предложения было в основном завершено, и предложение перешло на Стадию 3 (более подробно описано в первой ссылке), ожидается, что среды начнут его реализовывать. Так, например, в этот момент вы можете ожидать, что Chrome (V8) и / или Firefox в конечном итоге начнут поставлять новые версии браузера, которые содержат поддержку нового синтаксиса (ключевое слово, объект и т. Д. c), возможно, за флагом.

После того, как в предложении будет несколько реализаций "в поле", и все будет работать так, как нужно, редакторы ECMAScript интегрируют новое предложение в официальную спецификацию и предложение можно сказать, что он «закончен».

Другое резюме процесса можно найти здесь .


В частности, для функций со стрелками они были добавлены в ES2015, поэтому где-то около 2015 года браузеры начали модифицировать свои интерпретаторы Javascript для обработки функций стрелок, как того требует спецификация. Большинство версий браузера после 2015 года понимают функции стрелок; браузеров до 2015 года нет. (Так, например, IE11, начиная с 2013 года, не понимает и никогда не поймет функции стрелок - спецификация для функций стрелок вышла после публикации версии браузера)

...