code: function(hasCustomMarkup, labelAttrs, defaultLabelAttrs, builtinDefaultLabelAttrs) {
  
          if (labelAttrs === null) return null;
          if (labelAttrs === undefined) {
  
              if (defaultLabelAttrs === null) return null;
              if (defaultLabelAttrs === undefined) {
  
                  if (hasCustomMarkup) return undefined;
                  return builtinDefaultLabelAttrs;
              }
  
              if (hasCustomMarkup) return defaultLabelAttrs;
              return joint.util.merge({}, builtinDefaultLabelAttrs, defaultLabelAttrs);
          }
  
          if (hasCustomMarkup) return joint.util.merge({}, defaultLabelAttrs, labelAttrs);
          return joint.util.merge({}, builtinDefaultLabelAttrs, defaultLabelAttrs, labelAttrs);
      }
docs: merge default label attrs into label attrs keep `undefined` or `null` because `{}` means something else