code: function(relaxed) {
              var traceArr = this.traceArr,
                  len = traceArr.length,
                  str = '',
                  n, trace, method, args;
  
              for (n=0; n<len; n++) {
                  trace = traceArr[n];
                  method = trace.method;
  
                  // methods
                  if (method) {
                      args = trace.args;
                      str += method;
                      if (relaxed) {
                          str += DOUBLE_PAREN;
                      }
                      else {
                          if (Kinetic.Util._isArray(args[0])) {
                              str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;
                          }
                          else {
                              str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;
                          }
                      }
                  }
                  // properties
                  else {
                      str += trace.property;
                      if (!relaxed) {
                          str += EQUALS + trace.val;
                      }
                  }
  
                  str += SEMICOLON;
              }
  
              return str;
          }
docs: get context trace if trace is enabled
  @method
  @memberof Kinetic.Context.prototype
  @param {Boolean} relaxed if false, return strict context trace, which includes method names, method parameters
  properties, and property values.  If true, return relaxed context trace, which only returns method names and
  properites.
  @returns {String}