code: function Context(app, view, context, helpers) {
      this.helper = {};
      this.helper.options = createHelperOptions(app, view, helpers);
  
      this.context = context;
      utils.define(this.context, 'view', view);
      this.options = utils.merge({}, app.options, view.options, this.helper.options);
  
      // make `this.options.handled` non-enumberable
      utils.define(this.options, 'handled', this.options.handled);
  
      decorate(this.context);
      decorate(this.options);
      decorate(this);
  
      this.view = view;
      this.app = app;
      this.ctx = function() {
        return helperContext.apply(this, arguments);
      };
    }
docs: Create a new context object to expose inside helpers.
  
  ```js
  app.helper('lowercase', function(str) {
  // the 'this' object is the _helper_ context
  console.log(this);
  // 'this.app' => the application instance, e.g. templates, assemble, verb etc.
  // 'this.view' => the current view being rendered
  // 'this.helper' => helper name and options
  // 'this.context' => view context (as opposed to _helper_ context)
  // 'this.options' => options created for the specified helper being called
  });
  ```
  @param {Object} `app` The application instance
  @param {Object} `view` The view being rendered
  @param {Object} `context` The view's context
  @param {Object} `options`