         preprocessAndValidate function passed to the setter
         animations
 
+  Virtual property getter-function-only (if the 'options' passed in is actually a function)
+
+    If you pass in a function only when defining a virtual property, you are setting the getter.
+    Thus you can define a virtual property with just a getter.
+
   Virtual vs Concrete properties:
 
     * Virutal props don't have default values

    * getter - you must specify a custom getter, see getter option above
    * setter specification/semantics are a little different. See setter option above

  ###
  @_defineElementProperty: (externalName, options={})  ->
    internalName = propInternalName externalName

    ]).join "\n"
    eval functionString


  virtualPropertySecondPassMetaProperties = []
  virtualPropertySecondPassValues = []
  _initProperties: (options) ->
    {metaProperties} = @

    unless @__proto__.hasOwnProperty "_initPropertiesAuto"
      @__proto__._initPropertiesAuto = @class._generateSetPropertyDefaults()

    @_initPropertiesAuto options

