Когда v8 реализует ECMAScript 5?

Я заметил, что v8 не отвечает на вопрос о пятой редакции ECMAScript.

V8 реализует ECMAScript, как указано в ECMA-262, 3-е издание, и работает в системах Windows XP и Vista, Mac OS X 10.5 (Leopard) и Linux, использующих процессоры IA-32 или ARM.

Даже багтрекер кажется тихим...

На одну ошибку вы можете найти коммиттер, написав это:

V8 — это реализация ECMAScript, а не JavaScript. Последний является нестандартизированным расширением ECMAScript, созданным Mozilla. Версия V8 должна быть совместима по подключаемому модулю с JSC, реализацией ECMAScript в WebKit/Safari. Таким образом, он реализует ряд нестандартных расширений ECMAScript, которые также есть в JSC, и большинство из них также есть в языках JavaScript Mozilla. Не планируется добавлять в V8 нестандартные функции, которых нет в JSC.

Интересно, что он написал, что 8 октября 2010 года, когда был опубликован ECMAScript 5, в декабре 2009 года, а двумя месяцами ранее был выпущен Javascript 1.8.5 — расширенный набор ECMAScript 5.

Итак, остается вопрос, когда Google обновит v8 для работы на ECMAScript 5th edition? Есть ли вообще план перехода на последнюю стандартизацию ECMAScript?


person Evan Carroll    schedule 25.05.2011    source источник
comment
Если я не могу найти стойку, это не значит, что ты не можешь. Или, что разработчик не будет знать.   -  person Evan Carroll    schedule 26.05.2011
comment
@ Мэтт Болл P.S. Если вам не нравится вопрос - проголосуйте за него. Но не отмечайте это как ненастоящий вопрос только потому, что вам это не нравится. Это злоупотребление системой. Вопрос вполне реальный, а не расплывчатый, и на него легко и объективно ответить: когда v8 реализует ECMAScript 5?.   -  person Evan Carroll    schedule 26.05.2011
comment
А если у команды V8 нет ответа?   -  person Matt Ball    schedule 26.05.2011
comment
Вы предполагаете, что ответ может прийти только от команды v8? Это может быть в видео Google EDU, или это может быть из презентации на NodeConf 2011... Кто знает? Предположительно кто-то. Ответственность за то, чтобы все заданные вопросы были решены лицом, не являющимся членом команды, определенно не входит в обязанности спрашивающего или сообщества. Если вам не нравится вопрос, понизьте его или проигнорируйте. В конце концов на него ответят или мирно не ответят.   -  person Evan Carroll    schedule 26.05.2011


Ответы (1)


ECMAScript 5 на самом деле был разработан таким образом, что реализации не нужно «обновлять для работы» на нем.

В существующем поведении немного изменений, но в основном ES5 добавляет новые собственные объекты (например, Object.create, Array.prototype.map, String.prototype.trim и т. д.) и стандартизирует некоторые из существующих де-факто функций (от вездесущих «разделителей строк в строковых литералах», «доступа к свойствам на строки» и «косвенное поведение оценки» на менее популярные «аксессоры» и расширения массива/строки).

Самое большое изменение в поведении — строгий режим — было сделано по той же причине; сделать переход с ES3 на ES5 менее болезненным.

Сказав это, V8 действительно реализует заметную часть функций ES5, включая строгий режим (одно из недавних дополнений).

Если вы посмотрите на мою совместимость с ES5. table вы можете увидеть функции ES5, реализованные в Chrome, которые должны близко (и я думаю — полностью) соответствовать V8.

Вы также можете видеть, что поддержка строгого режима в основном реализована в Chrome, что означает, что он должен быть в V8, а также. Чтобы еще раз проверить, я просто запустил этот код в консоли (v8 v3.2.3.1) и получил SyntaxError, как и ожидалось:

> (function(){"use strict"; with({x:1}) return x})()
(shell):1: SyntaxError: Strict mode code may not include a with statement
(function(){"use strict"; with({x:1}) return x})()
                          ^^^^

Итак, у вас есть это. V8 определенно реализует большинство функций ES5, включая строгий режим ;)

person kangax    schedule 26.05.2011
comment
Я упоминал, что ваша таблица совместимости ECMAscript5 совершенно потрясающая? Видел это уже некоторое время назад, когда возникал подобный вопрос.. +1! - person Tigraine; 05.07.2011
comment
Нет with заявления! Вот почему у нас не может быть хороших вещей. Несколько тысяч человек злоупотребляют языковой особенностью, разрушая ее для остальных. - person Malvolio; 17.08.2011
comment
@Мальволио Да! Я чувствую тебя. with имеет свое применение, и в некоторых случаях это было удобно (например, этот). Но я должен признать, что это было опасно в чужих руках. - person Camilo Martin; 02.10.2012