哪些 ECMAScript 标准符合 Adob​​e 的 ExtendScript 实施? (如有)

Posted

技术标签:

【中文标题】哪些 ECMAScript 标准符合 Adob​​e 的 ExtendScript 实施? (如有)【英文标题】:Which ECMAScript standards comply Adobe's ExtendScript implementation? (if any) 【发布时间】:2013-06-17 20:33:23 【问题描述】:

我是一名 javascript 开发人员,刚刚开始深入研究 Adobe's ExtendScript 技术,旨在提高我的企业在 Illustrator PDF 表单生成方面的许多日常任务的工作效率和工作流程。

首先,我认为它是一些 ECMAScript 标准的实现,并添加了文档对象模型的属性实现、用于访问文件系统的 API 和其他一些东西。我希望 Creative Suite 的最新版本 (CS6) 实现了 ECMAScript 5。

我的第一个惊喜是在 Internet 上没有找到任何关于 ExtendScript 引擎实现细节的参考资料。我的第二个惊喜是,在查询 Array.prototype 获取某些 ECMAScript 5 方法时,发现它是 undefined,这让我怀疑实现的标准合规性。

如果它符合任何 ECMAScript 标准和哪个版本,任何人都可以提供有关该实现细节的任何参考吗?

非常感谢。

【问题讨论】:

您链接的页面说它是 Javascript。诚然,它可能不完全符合标准,但仍然......你为什么不直接问他们这个问题呢?毕竟,他们可能是自己的技术专家。 @Áxel 不确定,但我猜它使用的是 JavaScript 1.6。例如支持 XML/E4X 谢谢你们。 @RobertHarvey,你知道我在哪里可以问他们吗? ;) ***.com/questions/94007/… 哇@Mike'Pomax'Kamermans,没找到 【参考方案1】:

如果您查看After Effects CS6 Scripting Guide,它会说:

After Effects 脚本引擎支持第 3 版的 ECMA-262 标准,包括它的符号和词法 约定、类型、对象、表达式和语句。 ExtendScript 还实现了 E4X ECMA-357 规范,该规范 定义对 XML 格式数据的访问。

我想 Adob​​e Collection 的其余部分都是一样的。

【讨论】:

酷@Matthew Chung!在其他产品的脚本指南中找不到此内容。我什至发现对 EX4 实现细节的部分支持的模糊引用。似乎公平地说 ES3 是官方保证可以工作的——去他妈的,因为我已经发现了几个实现错误,这使得它与 ES3 不兼容,尽管 xD 别忘了向 Adob​​e 提出正式请求,以便我们可以一直编写脚本进入 21 世纪。【参考方案2】:

您可以通过包含this polyfill 的修改版本将ECMAScript 5 数组方法添加到ExtendScript。您需要进行的一项修改是在array.generics.js 的最后,删除if (document) 范围内的代码块。 (第 583 行附近)。

【讨论】:

@j-peterson 有用的提示!但这不是问题的答案,因此您应该将其添加为评论而不是答案 我使用 es5-shim.js polyfill 来获取 forEach、isArray 等。创建一个“lib”文件夹,放入 shim,然后将其添加到脚本顶部某处:var scriptsFolder = (new File($.fileName)).parent;$.evalFile(scriptsFolder + "/lib/es5-shim.js");

以上是关于哪些 ECMAScript 标准符合 Adob​​e 的 ExtendScript 实施? (如有)的主要内容,如果未能解决你的问题,请参考以下文章

ECMASCript 2019可能会有哪些特性?

ECMAScript 2022 会有哪些新特性?

Diff ECMAScript® 2019

第1660期 Diff ECMAScript® 2019

Javascript基础

15. 精读《TC39 与 ECMAScript 提案》