public override bool TryIteratorStep(out ObjectInstance nextItem) { if (_iterator.MoveNext()) { nextItem = new ValueIteratorPosition(_engine, (string)_iterator.Current); return(true); } nextItem = KeyValueIteratorPosition.Done; return(false); }
public virtual bool TryIteratorStep(out ObjectInstance nextItem) { if (_enumerable.MoveNext()) { nextItem = new ValueIteratorPosition(_engine, _enumerable.Current); return(true); } nextItem = ValueIteratorPosition.Done; return(false); }
public override bool TryIteratorStep(out ObjectInstance nextItem) { if (_enumerator.MoveNext()) { var value = _enumerator.Current; nextItem = new ValueIteratorPosition(_engine, FromObject(_engine, value)); return(true); } nextItem = KeyValueIteratorPosition.Done(_engine); return(false); }
public override bool TryIteratorStep(out ObjectInstance nextItem) { if (_position < _set._set._list.Count) { var value = _set._set[_position]; _position++; nextItem = new ValueIteratorPosition(_engine, value); return(true); } nextItem = KeyValueIteratorPosition.Done; return(false); }
public override bool TryIteratorStep(out ObjectInstance nextItem) { uint len; if (_typedArray is not null) { _typedArray._viewedArrayBuffer.AssertNotDetached(); len = _typedArray.Length; } else { len = _operations.GetLength(); } if (!_closed && _position < len) { JsValue value; if (_typedArray is not null) { nextItem = _kind switch { ArrayIteratorType.Key => new ValueIteratorPosition(_engine, _position), ArrayIteratorType.Value => new ValueIteratorPosition(_engine, _typedArray[(int)_position]), _ => new KeyValueIteratorPosition(_engine, _position, _typedArray[(int)_position]) }; } else { _operations.TryGetValue(_position, out value); if (_kind == ArrayIteratorType.Key) { nextItem = new ValueIteratorPosition(_engine, _position); } else if (_kind == ArrayIteratorType.Value) { nextItem = new ValueIteratorPosition(_engine, value); } else { nextItem = new KeyValueIteratorPosition(_engine, _position, value); } } _position++; return(true); } _closed = true; nextItem = KeyValueIteratorPosition.Done(_engine); return(false); }
public override bool TryIteratorStep(out ObjectInstance nextItem) { var length = _operations.GetLength(); if (!_closed && _position < length) { nextItem = new ValueIteratorPosition(_engine, _position++); return(true); } _closed = true; nextItem = KeyValueIteratorPosition.Done; return(false); }
public override bool TryIteratorStep(out ObjectInstance nextItem) { if (!_closed && _position < _values.Count) { var value = _values[_position]; _position++; nextItem = new ValueIteratorPosition(_engine, value); return(true); } _closed = true; nextItem = KeyValueIteratorPosition.Done; return(false); }