每当 ECMAScript 语言规范是新的时,v8 引擎是否只更新新功能?

Does the v8 engine update only new features whenever ECMAScript language specification is new?

据我所知,v8引擎是基于ECMAScript语言规范的,请问每当有新的ECMAScript发布时,你们会用新的ECMAScript开发吗?

还是只添加新添加的功能?

比如你看ES5 -> ES6,在Execution Context的情况下,组件变了,但是你全部变了吗?

(此处为 V8 开发人员。)

ECMAScript 标准本身和它的引擎实现都是通过一个接一个地添加单独的功能来发展的。

“TC39”委员会讨论新提议的功能。一旦对某个功能达成一致,就会将其添加到标准中(有关更多详细信息,请参阅他的评论中链接的“过程”文档@Bergi)。 ECMAScript 每年的“发布”只是这个持续过程的快照。

引擎通常在新功能完成前不久(以便实施反馈可以为标准化讨论提供信息)或之后不久实施新功能。

每年从头开始重写整个 JavaScript 引擎将是 巨大的 浪费:大部分语言都不会改变。此外,从头开始重写整个 JavaScript 引擎需要很多年。 (事实上​​ ,从头开始重写任何软件几乎总是一个坏主意,因为您将花费大量时间来赶上旧版本能够做的事情。增量改进几乎总是更好的策略。)

大多数引擎开发人员的时间通常花在改进对现有功能和子系统(编译器、垃圾收集器、内部对象模型等)的支持上,例如使它们更快或更有效地使用内存。