docs: function ___wrapConstructor(constructorInner, name) {
  
      var proto = constructorInner.prototype;
      var inner = (function(p) {
          function f() {};
          f.prototype = p.prototype;
          return new f;
      })(proto);
  
      function Outer() {
          constructorInner.apply(this, arguments);
          let that = this;
  
          var loop = function(key){
              if (proto.hasOwnProperty(key) && typeof proto[key] === 'function') {
                  that[key] = function () { 
                      return ___call(proto[key], name + '.' + key, that, arguments); 
                  }
              }
          };
  
          for (var key in proto) {
              loop(key);
          }
      }
  
      Outer.prototype = inner;
      return Outer;
  }