Added test to ensure that release notes are parsed properly Updated to latest dependencies to fix security vulnerability Updated GH Actions Workflow to run test before updating tag Updated README.md to reflect proper whatsnew documentation.
36 lines
874 B
JavaScript
36 lines
874 B
JavaScript
'use strict';
|
|
|
|
var GetIntrinsic = require('../GetIntrinsic');
|
|
|
|
var $TypeError = GetIntrinsic('%TypeError%');
|
|
|
|
var getIteratorMethod = require('../helpers/getIteratorMethod');
|
|
var AdvanceStringIndex = require('./AdvanceStringIndex');
|
|
var Call = require('./Call');
|
|
var GetMethod = require('./GetMethod');
|
|
var IsArray = require('./IsArray');
|
|
var Type = require('./Type');
|
|
|
|
// https://ecma-international.org/ecma-262/6.0/#sec-getiterator
|
|
|
|
module.exports = function GetIterator(obj, method) {
|
|
var actualMethod = method;
|
|
if (arguments.length < 2) {
|
|
actualMethod = getIteratorMethod(
|
|
{
|
|
AdvanceStringIndex: AdvanceStringIndex,
|
|
GetMethod: GetMethod,
|
|
IsArray: IsArray,
|
|
Type: Type
|
|
},
|
|
obj
|
|
);
|
|
}
|
|
var iterator = Call(actualMethod, obj);
|
|
if (Type(iterator) !== 'Object') {
|
|
throw new $TypeError('iterator must return an object');
|
|
}
|
|
|
|
return iterator;
|
|
};
|