code: function Scope(context, parent, meta) {
  	// The object that will be looked on for values.
  	// If the type of context is TemplateContext, there will be special rules for it.
  	this._context = context;
  	// The next Scope object whose context should be looked on for values.
  	this._parent = parent;
  	// If this is a special context, it can be labeled here.
  	// Options are:
  	// - `viewModel` - This is a viewModel. This is mostly used by can-component to make `scope.vm` work.
  	// - `notContext` - This can't be looked within using `./` and `../`. It will be skipped.
  	//   This is for virtual contexts like those used by `%index`. This is very much like
  	//   `variable`.  Most things should switch to `variable` in the future.
  	// - `special` - This can't be looked within using `./` and `../`. It will be skipped.
  	//   This is for reading properties on the scope {{scope.index}}. It's different from variable
  	//   because it's never lookup up like {{key}}.
  	// - `variable` - This is used to define a variable (as opposed to "normal" context). These
  	//   will also be skipped when using `./` and `../`.
  	this._meta = meta || {};
  
  	// A cache that can be used to store computes used to look up within this scope.
  	// For example if someone creates a compute to lookup `name`, another compute does not
  	// need to be created.
  	this.__cache = {};
  }
docs: ## Scope Represents a node in the scope tree.