code: function createIterator(options) {
        options.shadowedProps = shadowedProps;
        options.support = support;
  
        // create the function factory
        var factory = Function(
            'errorClass, errorProto, hasOwnProperty, isArguments, isObject, objectProto, ' +
            'nonEnumProps, stringClass, stringProto, toString',
          'return function(' + options.args + ') {\n' + iteratorTemplate(options) + '\n}'
        );
  
        // return the compiled function
        return factory(
          errorClass, errorProto, hasOwnProperty, isArguments, isObject, objectProto,
          nonEnumProps, stringClass, stringProto, toString
        );
      }
docs: Creates compiled iteration functions.
  
  @private
  @param {Object} [options] The compile options object.
  @param {string} [options.args] A comma separated string of iteration function arguments.
  @param {string} [options.init] The string representation of the initial `result` value.
  @param {string} [options.loop] Code to execute in the object loop.
  @param {boolean} [options.useHas] Specify using `hasOwnProperty` checks in the object loop.
  @returns {Function} Returns the compiled function.