gpt4 book ai didi

javascript - 在 v8 中实现无限列表

转载 作者:行者123 更新时间:2023-12-01 00:13:19 25 4
gpt4 key购买 nike

我是一名计算机科学专业的学生,​​作为学校项目的一部分,我被要求在 v8 引擎中找到漏洞,进行一些非常好的优化或添加新功能。

我选择添加一个新功能,如下:

function* numbers() {
i = 1;
while (true) {
yield i++;
}
}

var gen = numbers();

var l = [...gen];

var n = l[42];

用文字来说,我希望能够使用解构语法来创建一个可以容纳无限数量对象并访问它们的列表。

可以在 Haskell 中做到这一点,我想尝试用 JavaScript 做同样的事情。

如果 v8 的开发人员能够为我指明正确的方向,那就太好了。

我已经有了一个工作环境,可以编译引擎,读取源代码,并在带有符号的d8二进制文件上运行调试器。

最佳答案

这里是 V8 开发人员。

首先:需要明确的是,stackoverflow 并不是一台可以帮你完成作业的机器。 (你只是要求“正确的方向”,没关系。)

其次:V8 按照规范实现 JavaScript,因此任何任意的“新功能”都不会出现在我们的存储库中,请注意这一点。

第三:Keith有几个优点。特别是,您建议的语法已经是有效的 JavaScript,并且会急切地评估生成器。您的想法是在生成器产生无限的值流时切换到惰性求值吗?退后一步,思考一下这个想法的含义。

最后,如果您想出了可行的语法/语义,那么在 V8 中执行此操作仍然是一项艰巨的工作,因为没有类似的先例。您可能想要使用元素拦截器,并将生成器存储在私有(private)属性中。我认为使用代理在纯 JavaScript 中填充整个内容会容易得多。

(重新考虑您对项目的选择可能是一个好主意,但这取决于您。这也是一个相当时髦的项目描述开始......他们认为“找到漏洞或漏洞有多难”进行一些非常好的优化”?如果您发现了漏洞,请执行let us know!)

关于javascript - 在 v8 中实现无限列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59933887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com