Code coverage report for harmonizer/util/iterators.js

Statements: 100% (39 / 39)      Branches: 100% (18 / 18)      Functions: 100% (17 / 17)      Lines: 100% (39 / 39)      Ignored: none     

All files » harmonizer/util/ » iterators.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100  1 56 56 26   56   1 19 19 105                 1 1 1 4                 1 1 1 4                       1 2 2 8                 1 1 1 4                 1 1 1 4 1         3 3                 1 1 21   1 2   1 2  
'use strict';
var iterator = function (next) {
  var it = { next: next };
  it['@@iterator'] = function () {
    return it;
  };
  return it;
};
var arrayValuesNext = function (array) {
  var i = 0;
  return function () {
    return i === array.length ? {
      value: void 0,
      done: true
    } : {
      value: array[i++],
      done: false
    };
  };
};
var arrayKeysNext = function (array) {
  var i = 0;
  return function () {
    return i === array.length ? {
      value: void 0,
      done: true
    } : {
      value: i++,
      done: false
    };
  };
};
var arrayEntriesNext = function (array) {
  var i = 0;
  return function () {
    return i === array.length ? {
      value: void 0,
      done: true
    } : {
      value: [
        i,
        array[i++]
      ],
      done: false
    };
  };
};
var objectValuesNext = function (object) {
  var keys = Object.keys(object), i = 0;
  return function () {
    return i === keys.length ? {
      value: void 0,
      done: true
    } : {
      value: object[keys[i++]],
      done: false
    };
  };
};
var objectKeysNext = function (object) {
  var keys = Object.keys(object), i = 0;
  return function () {
    return i === keys.length ? {
      value: void 0,
      done: true
    } : {
      value: keys[i++],
      done: false
    };
  };
};
var objectEntriesNext = function (object) {
  var keys = Object.keys(object), i = 0;
  return function () {
    if (i === keys.length) {
      return {
        value: void 0,
        done: true
      };
    }
    var key = keys[i++], value = object[key];
    return {
      value: [
        key,
        value
      ],
      done: false
    };
  };
};
exports.iterator = iterator;
exports.values = function values(object) {
  return iterator(object instanceof Array ? arrayValuesNext(object) : objectValuesNext(object));
};
exports.keys = function keys(object) {
  return iterator(object instanceof Array ? arrayKeysNext(object) : objectKeysNext(object));
};
exports.entries = function entries(object) {
  return iterator(object instanceof Array ? arrayEntriesNext(object) : objectEntriesNext(object));
};