code: function (object, property, value) {
          if (object[OBSERVER_PROPERTY]) {
              var exists = ownProperty.call(object, property), oldVal = object[property], sz1 = object.length, chgset=null;
              object[property] = value;
  
              if (!exists) {
                  chgset=[changeDesc(object, property, value, oldVal, "new")];
              } else if (oldVal !== value) {
                  // do nothing if the value did not change or was not created:
                  chgset=[changeDesc(object, property, value, oldVal, "updated")];
              }
              if (object.constructor === Array) {
                  var sz2 = object.length;
                  if (sz1 !== sz2) {
                      if (!chgset) {
                          chgset=[];
                      }
                      chgset.push(changeDesc(object, "length", sz2, sz1, "updated"));
                  }
              }
              if (chgset) {
                  callObservers(object, chgset);
              }
          } else {
              object[property] = value;
          }
          return value;
      }
docs: Sets a value in a JSON object (including arrays) and automatically notifies all observers of the change