function globals() {
  return {
    range(start, stop, step) {
      if (typeof stop === "undefined") {
        stop = start;
        start = 0;
        step = 1;
      } else if (!step) {
        step = 1;
      }

      const arr = [];
      if (step > 0) {
        for (let i = start; i < stop; i += step) {
          arr.push(i);
        }
      } else {
        for (let i = start; i > stop; i += step) {
          arr.push(i);
        }
      }
      return arr;
    },

    cycler() {
      return cycler(Array.prototype.slice.call(arguments));
    },

    joiner(sep) {
      return joiner(sep);
    },
  };
}
// uses it, they will each have their own copy.
uses it, they will each have their own copy.
uses it they will each have their own copy .
function globals() {
  return {
    range(start, stop, step) {
      if (typeof stop === "undefined") {
        stop = start;
        start = 0;
        step = 1;
      } else if (!step) {
        step = 1;
      }
      const arr = [];
      if (step > 0) {
        for (let i = start; i < stop; i += step) {
          arr.push(i);
        }
      } else {
        for (let i = start; i > stop; i += step) {
          arr.push(i);
        }
      }
      return arr;
    },
    cycler() {
      return cycler(Array.prototype.slice.call(arguments));
    },
    joiner(sep) {
      return joiner(sep);
    },
  };
}
function globals ( ) { return { range ( start , stop , step ) { if ( typeof stop === "undefined" ) { stop = start ; start = 0 ; step = 1 ; } else if ( ! step ) { step = 1 ; } const arr = [ ] ; if ( step > 0 ) { for ( let i = start ; i < stop ; i += step ) { arr . push ( i ) ; } } else { for ( let i = start ; i > stop ; i += step ) { arr . push ( i ) ; } } return arr ; } , cycler ( ) { return cycler ( Array . prototype . slice . call ( arguments ) ) ; } , joiner ( sep ) { return joiner ( sep ) ; } , } ; }
uses it, they will each have their own copy.
uses it they will each have their own copy .