From 8d46fe01583dad0d442083b30e942c0c80f194ce Mon Sep 17 00:00:00 2001 From: Denis Pushkarev Date: Wed, 27 Dec 2023 05:28:11 +0700 Subject: [PATCH] use `toObject` at the first place for the expected errors order --- packages/core-js/internals/collection-from.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/core-js/internals/collection-from.js b/packages/core-js/internals/collection-from.js index 1b0c3d5a280c..06d7f9895ef0 100644 --- a/packages/core-js/internals/collection-from.js +++ b/packages/core-js/internals/collection-from.js @@ -2,17 +2,19 @@ // https://tc39.github.io/proposal-setmap-offrom/ var bind = require('../internals/function-bind-context'); var anObject = require('../internals/an-object'); +var toObject = require('../internals/to-object'); var iterate = require('../internals/iterate'); module.exports = function (C, adder, ENTRY) { return function from(source /* , mapFn, thisArg */) { + var O = toObject(source); var length = arguments.length; var mapFn = length > 1 ? arguments[1] : undefined; var mapping = mapFn !== undefined; var boundFunction = mapping ? bind(mapFn, length > 2 ? arguments[2] : undefined) : undefined; var result = new C(); var n = 0; - iterate(source, function (nextItem) { + iterate(O, function (nextItem) { var entry = mapping ? boundFunction(nextItem, n++) : nextItem; if (ENTRY) adder(result, anObject(entry)[0], entry[1]); else adder(result, entry);