Adobe的ExtendScript实现符合哪些ECMAScript标准?(如果有的话)

10
我是一名JavaScript开发人员,最近开始涉足Adobe的ExtendScript技术,旨在提高我们企业在Illustrator PDF表单生成方面的生产力和工作流程。
起初,我认为这是一些ECMAScript标准的实现,加上了一个文档对象模型的专有实现,用于访问文件系统和其他一些东西。我希望Creative Suite(CS6)的最新版本实现了ECMAScript 5
我的第一个惊喜是在互联网上找不到任何关于ExtendScript引擎实现细节的参考。我的第二个惊喜是当查询Array.prototype以获取一些ECMAScript 5方法时,它是undefined,这使我怀疑其符合标准的实现。
是否有人可以提供有关该实现细节、是否符合任何ECMAScript标准以及哪个版本的参考资料?
非常感谢。

1
你链接的页面说它是Javascript。虽然可能不完全符合标准,但仍然...为什么不直接问他们这个问题呢?毕竟,他们可能是自己技术领域的专家。 - Robert Harvey
1
@Áxel 我不确定,但我猜测它正在使用JavaScript 1.6。例如支持XML/E4X。 - George Profenza
谢谢大家。@RobertHarvey,你知道我可以在哪里问他们吗?;) - Áxel Costas Pena
2
https://dev59.com/BnVD5IYBdhLWcg3wGHeu - Mike 'Pomax' Kamermans
哇,@Mike'Pomax'Kamermans,没想到你找到了那个。 - Áxel Costas Pena
2个回答

11
如果你查看After Effects CS6 Scripting Guide,它说:

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

我想Adobe Collection的其余部分也是一样的。


酷!@Matthew Chung,其他产品的脚本指南上找不到这个。我甚至发现了对EX4实现细节部分支持的模糊参考。看起来可以说ES3是官方保证能够工作的 - 该死,因为我已经发现了几个实现错误,使其不兼容ES3,哈哈。 - Áxel Costas Pena
不要忘记向Adobe提交正式请求,以便我们可以脚本化进入21世纪。 - brennanyoung

5
您可以通过包含修改过的这个 polyfill,将 ECMAScript 5 数组方法添加到 ExtendScript 中。您需要进行的唯一修改是在 array.generics.js 的末尾,删除由 if (document) 作用域范围内的代码块(大约在第 583 行)。

1
@j-peterson 有用的提示!但这不是问题的答案,所以您应该将其添加为评论而不是答案。 - Áxel Costas Pena
我使用es5-shim.js polyfill来获取forEach、isArray等功能。创建一个“lib”文件夹,将shim放入其中,然后在脚本的顶部添加以下代码: var scriptsFolder = (new File($.fileName)).parent;$.evalFile(scriptsFolder + "/lib/es5-shim.js"); - brennanyoung

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接