Ответ 1
Да. Из spec,
- Пусть выбранный будет результатом вызова внутреннего метода callbackfn [[Call]] с T как это значение и список аргументов, содержащий значения kValue, k и O.
Если ToBoolean (выбрано) true, тогда
- Вызвать внутренний метод [[DefineOwnProperty]] A с аргументами ToString (to), Дескриптор свойств {[[Value]]: kValue, [[Writable]]: true, [[Enumerable]]: true, [[Конфигурируемый]]: true} и false.
- Увеличить на 1.
Таким образом, элементы в возвращаемом массиве имеют тот же порядок, что и в исходном.