src/DynamicState.js
/**
   * Define a new property. When this property is updated (through this class) then all of the 
   * listeners will fire. If the property already exists, then it will remain as is (i.e. the given
   * value will be ignored). Defining a property will not trigger the listeners.
   * @param {string} property - The name of the property.
   * @param {*} value 
   */
Define a new property. When this property is updated (through this class) then all of the
listeners will fire. If the property already exists, then it will remain as is . Defining a property will not trigger the listeners.
@param {string} property - The name of the property.
@param {*} value
Define a new property . When this property is updated ( through this class ) then all of the listeners will fire . If the property already exists then it will remain as is . Defining a property will not trigger the listeners . @param { string } property - The name of the property . @param { * } value
defineProperty(property, value) {
    if (!this.hasOwnProperty(property)) {
      Object.defineProperty(this, property, {
        set: function(value) { this._setProperty(property, value) },
        get: function() { return this.properties[property] }
      })
      this.properties[property] = value
    }
  }
defineProperty ( property , value ) { if ( ! this . hasOwnProperty ( property ) ) { Object . defineProperty ( this , property , { set : function ( value ) { this . _setProperty ( property , value ) } , get : function ( ) { return this . properties [ property ] } } ) this . properties [ property ] = value } }
Define a new property.
Define a new property .