internal IteratorInstance Construct(ObjectInstance array, ArrayIteratorType kind)
        {
            var instance = new ArrayLikeIterator(Engine, array, kind)
            {
                _prototype = this
            };

            return(instance);
        }
            public ArrayLikeIterator(Engine engine, ObjectInstance objectInstance, ArrayIteratorType kind) : base(engine)
            {
                _kind       = kind;
                _typedArray = objectInstance as TypedArrayInstance;
                if (_typedArray is null)
                {
                    _operations = ArrayOperations.For(objectInstance);
                }

                _position = 0;
            }