whole_func_string: 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;
          }
func_code_string: 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;
          }
func_documentation_string: Note that `scale` as the only transformation does not combine with previous values.