7.3.17 CreateListFromArrayLike ( obj [ , elementTypes ] )
抽象操作 CreateListFromArrayLike 用于创建一个 List 值,它的元素由类似数组的对象 obj 的索引属性提供。 可选参数 elementTypes 是一个包含 ECMAScript 语言类型的名称的列表,这些名称允许用于创建的 List 的元素值。 此抽象操作执行以下步骤:
- 如果没有传递 elementTypes,则 elementTypes 为 «Undefined,Null,Boolean,String,Symbol,Number,Object»。
- 如果 Type(obj) 不是 Object 类型,则抛出一个 TypeError 错误。
- 使 len 变为? ToLength(? Get(obj, "length"))。
- 使 list 变为一个新的空 List。
使 index 变为 0。
当 index < len 时重复以下操作,
a. 使 indexName 变为 ! ToString(index)。
b. 使 next 变为? Get(obj, indexName)。
c. 如果 Type(next) 不是 elementTypes 的一个元素,那么抛出一个 TypeError 错误。
d. 将 next 附加为 list 的最后一个元素。
e. 设置 index 为 index + 1。
7.返回 list。