code: function isTerminal(value) {
  	if (typeof value !== 'object') return true;
  
  	if (value === null) return true;
  	if (Array.isArray(value)) return false;
  
  	var proto = Object.getPrototypeOf(value);
  	return proto !== Object.prototype && proto !== null;
  }
docs: Returns true if the given value is considered a terminal value for traversal operations.
  Terminal values are as follows:
  - Any scalars (anything isScalar() returns true for)
  - Any non-plain objects, other than arrays
  
  @method isTerminal
  @param {Mixed} value
  @return {Boolean}