rem: if((key === this._storeRef) || (key === this._itemId)){ 
add: if((key === this._storeRefPropName) || (key === this._itemNumPropName)){ 
context: 	_setValueOrValues: function(/* item */ item, /* attribute-name-string */ attribute, /* anything */ newValueOrValues){		this._assert(!this._saveInProgress);				// Check for valid arguments		this._assertIsItem(item);		this._assert(dojo.isString(attribute));		this._assert(typeof newValueOrValues !== "undefined");		// Make sure the user isn't trying to change the item's identity		var identifierAttribute = this._getIdentifierAttribute();		if(attribute == identifierAttribute){			throw new Error("ItemFileWriteStore does not have support for changing the value of an item's identifier.");		}		// To implement the Notification API, we need to make a note of what		// the old attribute value was, so that we can pass that info when		// we call the onSet method.		var oldValueOrValues = this._getValueOrValues(item, attribute);		var identity = this.getIdentity(item);		if(!this._pending._modifiedItems[identity]){			// Before we actually change the item, we make a copy of it to 			// record the original state, so that we'll be able to revert if 			// the revert method gets called.  If the item has already been			// modified then there's no need to do this now, since we already			// have a record of the original state.			var copyOfItemState = {};			for(var key in item){				if((key === this._storeRef) || (key === this._itemId)){					copyOfItemState[key] = item[key];				}else{					var valueArray = item[key];					var copyOfValueArray = [];					for(var i = 0; i < valueArray.length; ++i){						copyOfValueArray.push(valueArray[i]);					}					copyOfItemState[key] = copyOfValueArray;				}			}			// Now mark the item as dirty, and save the copy of the original state			this._pending._modifiedItems[identity] = copyOfItemState;		}				// Okay, now we can actually change this attribute on the item		var success = false;		if(dojo.isArray(newValueOrValues) && newValueOrValues.length === 0){			// If we were passed an empty array as the value, that counts			// as "unsetting" the attribute, so we need to remove this 			// attribute from the item.			success = delete item[attribute];			newValueOrValues = undefined; // used in the onSet Notification call below		}else{			var newValueArray = [];			if(dojo.isArray(newValueOrValues)){				var newValues = newValueOrValues;				// Unforunately, it's not safe to just do this:				//    newValueArray = newValues;				// Instead, we need to take each value in the values array and copy 				// it into the new array, so that our internal data structure won't  				// get corrupted if the user mucks with the values array *after*				// calling setValues().				for(var j = 0; j < newValues.length; ++j){					newValueArray.push(newValues[j]);				}			}else{				var newValue = newValueOrValues;				newValueArray.push(newValue);			}			item[attribute] = newValueArray;			success = true;		}		// Now we make the dojo.data.api.Notification call		this.onSet(item, attribute, oldValueOrValues, newValueOrValues); 				return success; // boolean	},
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/372e1ba59f47be8a6792557e65fc678d3ea2275e/ItemFileWriteStore.js/clean/data/ItemFileWriteStore.js