gpt4 book ai didi

javascript - 动态创建函数的源映射

转载 作者:数据小太阳 更新时间:2023-10-29 05:24:36 25 4
gpt4 key购买 nike

JavaScript 允许您在运行时使用 new Function(...) 或 eval 创建新函数。以这种方式创建的函数是否可以设置源映射之类的东西?也就是说,设置据称从中加载它的源文件的名称,以及不同的源代码行号。

如果没有通用的解决方案,那么可能会有针对特定 JavaScript 引擎的特定解决方案。

最佳答案

对于评估代码,您可以简单地添加:

//# sourceMappingURL=<url>
//# sourceURL=<filename.js>

到您正在评估的代码的底部。对于 sourceMappingURL,您将发送 data url ,因为您自然不会在某处托管现有源 map ,您将动态生成它。

将您的原始源放在源映射中的 sourcesContent 字段中,将源映射中的 file 字段设置为您在 sourceURL 中设置的任何内容,这样就可以了去。

我目前试图让它在函数构造函数中工作的尝试失败了,这是一种耻辱 - 在这种情况下,在 Edge 和 Chrome 中,原始来源都被正确列出,但行号信息似乎被破坏了(指令指针总是指向最后一行)。我目前正在调查此事。但是,源映射规范确实暗示了包含源映射的函数构造函数:

If the generated code is being evaluated as a string with the eval() function or via new Function(), then the source origin will be the page’s origin.

这让我相信要么我在做一些愚蠢的事情,要么这个功能没有得到很好的支持。

关于javascript - 动态创建函数的源映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49463047/

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