docs: function injectableWrapper(obj, provide, injects, isTransientScope) {
      // TODO(@davequick): discuss with @halfspiral whether isTransientScope might just better
      // be an array of Annotations
      var wrappedObject = function wrapOrCreateObject() {
        if(isFunction(obj) && (exists(obj.$provide) || exists(obj.$inject) || provide || injects)){
          var instance = Object.create(obj.prototype);
          return obj.apply(instance,arguments) || instance;
        }
        return obj;
      };
      return _wrapper(obj, wrappedObject, provide, injects, isTransientScope);
    }