CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes45downloads
iter.js47 linesDownload Raw Back to obliterator
1/**2 * Obliterator Iter Function3 * ==========================4 *5 * Function coercing values to an iterator. It can be quite useful when needing6 * to handle iterables and iterators the same way.7 */8var Iterator = require('./iterator.js');9var support = require('./support.js');10 11var ARRAY_BUFFER_SUPPORT = support.ARRAY_BUFFER_SUPPORT;12var SYMBOL_SUPPORT = support.SYMBOL_SUPPORT;13 14function iterOrNull(target) {15  // Indexed sequence16  if (17    typeof target === 'string' ||18    Array.isArray(target) ||19    (ARRAY_BUFFER_SUPPORT && ArrayBuffer.isView(target))20  )21    return Iterator.fromSequence(target);22 23  // Invalid value24  if (typeof target !== 'object' || target === null) return null;25 26  // Iterable27  if (SYMBOL_SUPPORT && typeof target[Symbol.iterator] === 'function')28    return target[Symbol.iterator]();29 30  // Iterator duck-typing31  if (typeof target.next === 'function') return target;32 33  // Invalid object34  return null;35}36 37module.exports = function iter(target) {38  var iterator = iterOrNull(target);39 40  if (!iterator)41    throw new Error(42      'obliterator: target is not iterable nor a valid iterator.'43    );44 45  return iterator;46};47 
basant307/AI_Governance_Project · CoolFace