Sha256: 7865ece7e5b577baebea18226b6f4dbc82e41661f435fd1252c981c3d9790124

Contents?: true

Size: 1.46 KB

Versions: 108

Compression:

Stored size: 1.46 KB

Contents

'use strict';

var inspect = require('object-inspect');

var GetIntrinsic = require('get-intrinsic');

var $TypeError = GetIntrinsic('%TypeError%');

var Call = require('./Call');
var Get = require('./Get');
var GetIterator = require('./GetIterator');
var IsCallable = require('./IsCallable');
var IteratorClose = require('./IteratorClose');
var IteratorStep = require('./IteratorStep');
var IteratorValue = require('./IteratorValue');
var ThrowCompletion = require('./ThrowCompletion');
var Type = require('./Type');

// https://262.ecma-international.org/10.0/#sec-add-entries-from-iterable

module.exports = function AddEntriesFromIterable(target, iterable, adder) {
	if (!IsCallable(adder)) {
		throw new $TypeError('Assertion failed: `adder` is not callable');
	}
	if (iterable == null) {
		throw new $TypeError('Assertion failed: `iterable` is present, and not nullish');
	}
	var iteratorRecord = GetIterator(iterable);
	while (true) { // eslint-disable-line no-constant-condition
		var next = IteratorStep(iteratorRecord);
		if (!next) {
			return target;
		}
		var nextItem = IteratorValue(next);
		if (Type(nextItem) !== 'Object') {
			var error = ThrowCompletion(new $TypeError('iterator next must return an Object, got ' + inspect(nextItem)));
			return IteratorClose(iteratorRecord, error);
		}
		try {
			var k = Get(nextItem, '0');
			var v = Get(nextItem, '1');
			Call(adder, target, [k, v]);
		} catch (e) {
			return IteratorClose(iteratorRecord, ThrowCompletion(e));
		}
	}
};

Version data entries

108 entries across 27 versions & 2 rubygems

Version Path
immosquare-cleaner-0.1.32 node_modules/es-abstract/2022/AddEntriesFromIterable.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2019/AddEntriesFromIterable.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2020/AddEntriesFromIterable.js
immosquare-cleaner-0.1.32 node_modules/es-abstract/2021/AddEntriesFromIterable.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2021/AddEntriesFromIterable.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2019/AddEntriesFromIterable.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2020/AddEntriesFromIterable.js
immosquare-cleaner-0.1.31 node_modules/es-abstract/2022/AddEntriesFromIterable.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2021/AddEntriesFromIterable.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2019/AddEntriesFromIterable.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2020/AddEntriesFromIterable.js
immosquare-cleaner-0.1.30 node_modules/es-abstract/2022/AddEntriesFromIterable.js
immosquare-cleaner-0.1.29 node_modules/es-abstract/2019/AddEntriesFromIterable.js
immosquare-cleaner-0.1.29 node_modules/es-abstract/2020/AddEntriesFromIterable.js
immosquare-cleaner-0.1.29 node_modules/es-abstract/2021/AddEntriesFromIterable.js
immosquare-cleaner-0.1.29 node_modules/es-abstract/2022/AddEntriesFromIterable.js
immosquare-cleaner-0.1.28 node_modules/es-abstract/2019/AddEntriesFromIterable.js
immosquare-cleaner-0.1.28 node_modules/es-abstract/2020/AddEntriesFromIterable.js
immosquare-cleaner-0.1.28 node_modules/es-abstract/2021/AddEntriesFromIterable.js
immosquare-cleaner-0.1.28 node_modules/es-abstract/2022/AddEntriesFromIterable.js