main
Last change
on this file was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago |
Update repo after prototype presentation
|
-
Property mode
set to
100644
|
File size:
1.2 KB
|
Rev | Line | |
---|
[d565449] | 1 | 'use strict';
|
---|
| 2 |
|
---|
| 3 | var $TypeError = require('es-errors/type');
|
---|
| 4 |
|
---|
| 5 | var AdvanceStringIndex = require('es-abstract/2024/AdvanceStringIndex');
|
---|
| 6 | var Call = require('es-abstract/2024/Call');
|
---|
| 7 | var GetIteratorDirect = require('./GetIteratorDirect');
|
---|
| 8 | var GetMethod = require('es-abstract/2024/GetMethod');
|
---|
| 9 | var IsArray = require('es-abstract/2024/IsArray');
|
---|
| 10 | var Type = require('es-abstract/2024/Type');
|
---|
| 11 |
|
---|
| 12 | var getIteratorMethod = require('es-abstract/helpers/getIteratorMethod');
|
---|
| 13 |
|
---|
| 14 | module.exports = function GetIteratorFlattenable(obj, stringHandling) {
|
---|
| 15 | if (Type(obj) !== 'Object') {
|
---|
| 16 | if (stringHandling === 'reject-strings' || typeof obj !== 'string') {
|
---|
| 17 | throw new $TypeError('obj must be an Object'); // step 1.a
|
---|
| 18 | }
|
---|
| 19 | }
|
---|
| 20 |
|
---|
| 21 | var method = void undefined; // step 2
|
---|
| 22 |
|
---|
| 23 | // method = GetMethod(obj, Symbol.iterator); // step 5.a
|
---|
| 24 | method = getIteratorMethod(
|
---|
| 25 | {
|
---|
| 26 | AdvanceStringIndex: AdvanceStringIndex,
|
---|
| 27 | GetMethod: GetMethod,
|
---|
| 28 | IsArray: IsArray
|
---|
| 29 | },
|
---|
| 30 | obj
|
---|
| 31 | );
|
---|
| 32 |
|
---|
| 33 | var iterator;
|
---|
| 34 | if (typeof method === 'undefined') { // step 3
|
---|
| 35 | iterator = obj; // step 3.a
|
---|
| 36 | } else { // step 4
|
---|
| 37 | iterator = Call(method, obj); // step 4.a
|
---|
| 38 | }
|
---|
| 39 |
|
---|
| 40 | if (Type(iterator) !== 'Object') {
|
---|
| 41 | throw new $TypeError('iterator must be an Object'); // step 5
|
---|
| 42 | }
|
---|
| 43 | return GetIteratorDirect(iterator); // step 6
|
---|
| 44 | };
|
---|
Note:
See
TracBrowser
for help on using the repository browser.