versions/0.2.1/oj.js
function _attributesFromObject(obj){
    if (!oj.isPlainObject(obj))
      return obj

    // Pass through non objects
    var k, v, ix,
      out = '',
      space = '',
      // Serialize attributes in order for consistent output
      attrs = _keys(obj).sort()

    for (ix = 0; ix < attrs.length; ix++){
      k = attrs[ix]
      v = obj[k]

      // Boolean attributes have no value
      if (v === true)
        out += "" + space + k

      // Other attributes have a value
      else
        out += "" + space + k + "=\"" + v + "\""

      space = ' '
    }
    return out;
  }
function _attributesFromObject(obj){
    if (!oj.isPlainObject(obj))
      return obj

    // Pass through non objects
    var k, v, ix,
      out = '',
      space = '',
      // Serialize attributes in order for consistent output
      attrs = _keys(obj).sort()

    for (ix = 0; ix < attrs.length; ix++){
      k = attrs[ix]
      v = obj[k]

      // Boolean attributes have no value
      if (v === true)
        out += "" + space + k

      // Other attributes have a value
      else
        out += "" + space + k + "=\"" + v + "\""

      space = ' '
    }
    return out;
  }
_attributesFromObject: Convert object to attribute string with no special conversions