function getTagAttributes(tagName) {
        var tag;

        if (!cachedAttributes.hasOwnProperty(tagName)) {
            tag = tagData.tags[tagName];
            cachedAttributes[tagName] = [];
            if (tag.attributes) {
                cachedAttributes[tagName] =  cachedAttributes[tagName].concat(tag.attributes);
            }
            tag.attributeGroups.forEach(function (group) {
                if (tagData.attributeGroups.hasOwnProperty(group)) {
                    cachedAttributes[tagName] = cachedAttributes[tagName].concat(tagData.attributeGroups[group]);
                }
            });
            cachedAttributes[tagName] = _.uniq(cachedAttributes[tagName].sort(), true);
        }
        return cachedAttributes[tagName];
    }
function getTagAttributes(tagName) {
        var tag;

        if (!cachedAttributes.hasOwnProperty(tagName)) {
            tag = tagData.tags[tagName];
            cachedAttributes[tagName] = [];
            if (tag.attributes) {
                cachedAttributes[tagName] =  cachedAttributes[tagName].concat(tag.attributes);
            }
            tag.attributeGroups.forEach(function (group) {
                if (tagData.attributeGroups.hasOwnProperty(group)) {
                    cachedAttributes[tagName] = cachedAttributes[tagName].concat(tagData.attributeGroups[group]);
                }
            });
            cachedAttributes[tagName] = _.uniq(cachedAttributes[tagName].sort(), true);
        }
        return cachedAttributes[tagName];
    }
function getTagAttributes ( tagName ) { var tag ; if ( ! cachedAttributes . hasOwnProperty ( tagName ) ) { tag = tagData . tags [ tagName ] ; cachedAttributes [ tagName ] = [ ] ; if ( tag . attributes ) { cachedAttributes [ tagName ] = cachedAttributes [ tagName ] . concat ( tag . attributes ) ; } tag . attributeGroups . forEach ( function ( group ) { if ( tagData . attributeGroups . hasOwnProperty ( group ) ) { cachedAttributes [ tagName ] = cachedAttributes [ tagName ] . concat ( tagData . attributeGroups [ group ] ) ; } } ) ; cachedAttributes [ tagName ] = _ . uniq ( cachedAttributes [ tagName ] . sort ( ) , true ) ; } return cachedAttributes [ tagName ] ; }
Returns a list of attributes used by a tag.

@param {string} tagName name of the SVG tag.
@return {Array.<string>} list of attributes.
Returns a list of attributes used by a tag .
Get tag attributes