function(sx, sy) {
            sy = (typeof sy === 'undefined') ? sx : sy;
            
            var transformAttr = this.attr('transform') || '',
                transform = parseTransformString(transformAttr);

            // Is it a getter?
            if (typeof sx === 'undefined') {
                return transform.scale;
            }
            
            transformAttr = transformAttr.replace(/scale\([^\)]*\)/g, '').trim();

            this.attr('transform', transformAttr + ' scale(' + sx + ',' + sy + ')');
            return this;
        }
function(sx, sy) {
            sy = (typeof sy === 'undefined') ? sx : sy;
            
            var transformAttr = this.attr('transform') || '',
                transform = parseTransformString(transformAttr);

            
            if (typeof sx === 'undefined') {
                return transform.scale;
            }
            
            transformAttr = transformAttr.replace(/scale\([^\)]*\)/g, '').trim();

            this.attr('transform', transformAttr + ' scale(' + sx + ',' + sy + ')');
            return this;
        }
function ( sx , sy ) { sy = ( typeof sy === 'undefined' ) ? sx : sy ; var transformAttr = this . attr ( 'transform' ) || '' , transform = parseTransformString ( transformAttr ) ; // Is it a getter? if ( typeof sx === 'undefined' ) { return transform . scale ; } transformAttr = transformAttr . replace ( / scale\([^\)]*\) / g , '' ) . trim ( ) ; this . attr ( 'transform' , transformAttr + ' scale(' + sx + ',' + sy + ')' ) ; return this ; }
Note that `scale` as the only transformation does not combine with previous values.
Note that scale as the only transformation does not combine with previous values .