code: function extend(prototype, api) {
      if (prototype && api) {
        // use only own properties of 'api'
        Object.getOwnPropertyNames(api).forEach(function(n) {
          // acquire property descriptor
          var pd = Object.getOwnPropertyDescriptor(api, n);
          if (pd) {
            // clone property via descriptor
            Object.defineProperty(prototype, n, pd);
            // cache name-of-method for 'super' engine
            if (typeof pd.value == 'function') {
              // hint the 'super' engine
              pd.value.nom = n;
            }
          }
        });
      }
      return prototype;
    }
docs: copy own properties from 'api' to 'prototype, with name hinting for 'super'