【发布时间】:2020-01-27 15:13:58
【问题描述】:
我是一名计算机科学专业的学生,作为学校项目的一部分,我被要求在 v8 引擎中找到漏洞,进行一些非常好的优化或添加新功能。
我选择添加一个新功能,这里是:
function* numbers() {
i = 1;
while (true) {
yield i++;
}
}
var gen = numbers();
var l = [...gen];
var n = l[42];
用一句话来说,我希望有可能使用解构语法来创建一个可以容纳无限数量的对象并访问它们的列表。
在 Haskell 中可以做到这一点,我想尝试用 JavaScript 做同样的事情。
如果 v8 的开发人员可以为我指明正确的方向,那就太好了。
我已经有了工作环境,可以编译引擎,读取源码,在带符号的d8二进制文件上运行调试器。
【问题讨论】:
-
不是开发人员,但我有几点可能值得一提。 1. 解构语法,我假设您的意思是扩展语法。 2. 你如何决定这不想成为一个直接数组,因为这对于索引查找来说比迭代更快,或者这是一个后期绑定特性?记住发电机只能去 1 个方向。 IOW:使用生成器,您可以访问元素 42,但在其消失后不能访问 41,因此如果您不存储以前的值,它们将丢失。
-
您的“无限”仅限于 9007199254740992 而您的 i 变量是全局变量。
标签: javascript generator v8 destructuring