code: function safeMixin(target, source) {
          var name, t;
          // add props adding metadata for incoming functions skipping a constructor
          for (name in source) {
              t = source[name];
              if ((t !== op[name] || !(name in op)) && name !== cname) {
                  if (opts.call(t) === "[object Function]") {
                      // non-trivial function method => attach its name
                      t.nom = name;
                  }
                  target[name] = t;
              }
          }
          return target;
      }
docs: implementation of safe mixin function