code: function forOwn(object, callback) {
        object = Object(object);
  
        try {
          // Avoid problems with iterators.
          // See https://github.com/ringo/ringojs/issues/157 for more details.
          if (support.iterators && _.isFunction(object.__iterator__)) {
            var iterator = support.descriptors
              ? getDescriptor(object, '__iterator__')
              : object.__iterator__;
  
            object.__iterator__ = null;
            delete object.__iterator__;
  
            if (object.__iterator__) {
              throw 1;
            }
            object = new Iterator(object);
            if (support.descriptors) {
              setDescriptor(object, '__iterator__', iterator);
            } else {
              object.__iterator__ = iterator;
            }
          }
          // Some objects like Firefox 3's `XPCSafeJSObjectWrapper.prototype` may
          // throw errors when attempting to iterate over them.
          else {
            for (var key in object) {
              break;
            }
          }
        } catch(e) {
          return;
        }
        if (iterator) {
          for (key in object) {
            // Iterators will assign an array to `key`.
            callback(key[1], key[0]);
          }
        }
        else {
          var index = -1,
              props = _.keys(object),
              length = props.length;
  
          while (++index < length) {
            // Some properties like Firefox's `console.constructor` or IE's
            // `element.offsetParent` may throw errors when accessed.
            try {
              key = props[index];
              var value = object[key];
            } catch(e) {
              continue;
            }
            callback(value, key);
          }
        }
      }
docs: /*------------------------------------------------------------------------ 
  Iterates over an object's own properties, executing the `callback` for each.
  
  @private
  @param {Object} object The object to iterate over.
  @param {Function} callback A function executed per own property.