whole_func_string: function makeComputedObservable(ctx) {
      let computedInfo = ctx.$rawComputed || {};
      if (typeof computedInfo === 'function') {
          ctx.$rawComputed = computedInfo = computedInfo();
      }
  
      let observer = new ComputedObserver(ctx, computedInfo);
      let ctxProps = {};
      Object.keys(computedInfo).forEach(k => {
          ctxProps[k] = {
              get: observer.getGetter(k),
              set: observer.getSetter(k),
              enumerable: true
          };
      });
      Object.defineProperties(ctx, ctxProps);
      return observer;
  }
func_code_string: function makeComputedObservable(ctx) {
      let computedInfo = ctx.$rawComputed || {};
      if (typeof computedInfo === 'function') {
          ctx.$rawComputed = computedInfo = computedInfo();
      }
  
      let observer = new ComputedObserver(ctx, computedInfo);
      let ctxProps = {};
      Object.keys(computedInfo).forEach(k => {
          ctxProps[k] = {
              get: observer.getGetter(k),
              set: observer.getSetter(k),
              enumerable: true
          };
      });
      Object.defineProperties(ctx, ctxProps);
      return observer;
  }
func_documentation_string: Make computed props observable
  
  @inner
  @param {Object} ctx the component instance context
  @return {Observer} the observer