ECMAScript 5 фактически был разработан таким образом, чтобы реализации не нужно было «обновлять для запуска» на нем .
Есть несколько изменений в существующем поведении, но в основном ES5 добавляет новые собственные объекты (например, Object.create
, Array.prototype.map
, String.prototype.trim
и т. Д.) И стандартизирует некоторые из существующих де-факто функций (от вездесущих) ограничителей строки в строковых литералах "," доступ к свойству по строкам "и" косвенное поведение eval "для менее популярных" методов доступа "и расширений массива / строки).
Самое большое изменение в поведении - строгий режим - было сделано по той же причине; сделать переход от ES3 к ES5 менее болезненным.
Сказав это, V8 реализует заметную часть функций ES5, включая строгий режим (одно из последних дополнений).
Если вы посмотрите на мой ES5 compat. В таблице вы можете увидеть функции 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 , включая строгий режим;)