code: function extractAttributes(attrSet) {
  		var reAttrName = /^[\w\-:\$@]+\.?$/;
  		return splitAttributes(attrSet).map(function(attr) {
  			// attribute name: [attr]
  			if (reAttrName.test(attr)) {
  				var value = '';
  				if (attr.charAt(attr.length - 1) == '.') {
  					// a boolean attribute
  					attr = attr.substr(0, attr.length - 1);
  					value = attr;
  				}
  				return {
  					name: attr,
  					value: value
  				};
  			}
  
  			// attribute with value: [name=val], [name="val"]
  			if (~attr.indexOf('=')) {
  				var parts = attr.split('=');
  				return {
  					name: parts.shift(),
  					value: unquote(parts.join('='))
  				};
  			}
  
  			// looks like it’s implied attribute
  			return {
  				name: DEFAULT_ATTR_NAME,
  				value: unquote(attr)
  			};
  		});
  	}
docs: Extract attributes and their values from attribute set:
  <code>[attr col=3 title="Quoted string"]</code> (without square braces)
  @param {String} attrSet
  @returns {Array}