Eva*_*oll 15 javascript google-chrome v8 ecma262 ecmascript-5
我注意到v8在ECMAScript第5版问题上相当沉默.
V8按照ECMA-262第3版中的规定实施ECMAScript,并在Windows XP和Vista,Mac OS X 10.5(Leopard)以及使用IA-32或ARM处理器的Linux系统上运行.
即使是bug跟踪器似乎很安静......
V8是ECMAScript的实现,而不是JavaScript.后者是Mozilla制作的ECMAScript的非标准化扩展.V8旨在与JSC(WebKit/Safari中的ECMAScript实现)兼容插件.因此,它实现了许多ECMAScript的非标准扩展,这些扩展也在JSC中,其中大多数也是Mozilla的JavaScript语言.没有计划添加JSC中没有的非标准功能到V8.
有趣的是,他在2010年10月8日撰写了这篇文章,当时ECMAScript 5于2009年12月发布,两个月前发布了Javascript 1.8.5(ECMAScript 5的超集).
那么问题仍然是谷歌何时更新v8以在ECMAScript第5版上运行?是否有计划升级到最新的ECMAScript标准化?
kan*_*gax 27
ECMAScript 5实际上是以这种方式设计的,因此实现不需要在其上"更新以运行".
有在现有的行为一些变化,但主要是ES5增加了新的原生对象(例如Object.create,Array.prototype.map,String.prototype.trim等)和标准化现有的一些事实上的功能(从"对字符串属性访问"无处不在"的字符串文字行终止符",和"间接评估行为"到较不流行的"访问者"和数组/字符串扩展).
行为的最大变化 - 严格模式 - 出于同样的原因选择加入; 从ES3到ES5的过渡不那么痛苦.
话虽如此,V8确实实现了一大堆ES5功能,包括严格模式(最新增加的功能之一).
如果你看看我的ES5 compat.表格中你可以看到Chrome中实现的ES5功能 - 这应该与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})()
^^^^
Run Code Online (Sandbox Code Playgroud)
所以你有它.V8绝对实现了大部分ES5功能,包括严格模式;)
| 归档时间: |
|
| 查看次数: |
4451 次 |
| 最近记录: |