| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 'use strict';var GetIntrinsic = require('get-intrinsic');var callBound = require('call-bind/callBound');var $TypeError = GetIntrinsic('%TypeError%');var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf');var $push = callBound('Array.prototype.push');var Get = require('./Get');var IsArray = require('./IsArray');var ToLength = require('./ToLength');var ToString = require('./ToString');var Type = require('./Type');// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylikemodule.exports = function CreateListFromArrayLike(obj) {	var elementTypes = arguments.length > 1		? arguments[1]		: ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object'];	if (Type(obj) !== 'Object') {		throw new $TypeError('Assertion failed: `obj` must be an Object');	}	if (!IsArray(elementTypes)) {		throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array');	}	var len = ToLength(Get(obj, 'length'));	var list = [];	var index = 0;	while (index < len) {		var indexName = ToString(index);		var next = Get(obj, indexName);		var nextType = Type(next);		if ($indexOf(elementTypes, nextType) < 0) {			throw new $TypeError('item type ' + nextType + ' is not a valid elementType');		}		$push(list, next);		index += 1;	}	return list;};
 |