whole_func_string: function makePropsObservable(ctx) {
      let props = ctx.$rawProps;
      if (typeof props === 'function') {
          props = ctx.$rawProps = props();
      }
  
      if (!props) {
          return;
      }
  
      let observer = new Observer(
          ctx,
          ctx[propDataKey] || /* istanbul ignore next */ {},
          null,
          true
      );
      let propsObj = {};
  
      Object.keys(props).reduce((last, item) => {
          last[item] = true;
          return last;
      }, propsObj);
      Object.defineProperties(ctx, proxyObject(observer, propsObj));
  
      return observer;
  }
func_code_string: function makePropsObservable(ctx) {
      let props = ctx.$rawProps;
      if (typeof props === 'function') {
          props = ctx.$rawProps = props();
      }
  
      if (!props) {
          return;
      }
  
      let observer = new Observer(
          ctx,
          ctx[propDataKey] || /* istanbul ignore next */ {},
          null,
          true
      );
      let propsObj = {};
  
      Object.keys(props).reduce((last, item) => {
          last[item] = true;
          return last;
      }, propsObj);
      Object.defineProperties(ctx, proxyObject(observer, propsObj));
  
      return observer;
  }
func_documentation_string: Make props observable
  
  @inner
  @param {Object} ctx the component instance context
  @return {Observer} the observer