Home | History | Annotate | Download | only in src

Lines Matching refs:ObjectInfo

39 // 1) ObjectInfo. This represents the observed state of a given object. It
160 function ObserverIsActive(observer, objectInfo) {
161 return TypeMapIsDisjointFrom(ObjectInfoGetPerformingTypes(objectInfo),
166 var objectInfo = objectInfoMap.get(object);
167 if (IS_UNDEFINED(objectInfo)) {
171 objectInfo = {
178 objectInfoMap.set(object, objectInfo);
180 return objectInfo;
187 function ObjectInfoGetNotifier(objectInfo) {
188 if (IS_NULL(objectInfo.notifier)) {
189 objectInfo.notifier = { __proto__: notifierPrototype };
190 notifierObjectInfoMap.set(objectInfo.notifier, objectInfo);
193 return objectInfo.notifier;
196 function ObjectInfoGetObject(objectInfo) {
197 return objectInfo.object;
206 // observer is referenced directly via objectInfo.changeObservers. When a second
208 // priority -> observer and is then stored on objectInfo.changeObservers.
209 function ObjectInfoNormalizeChangeObservers(objectInfo) {
210 if (ChangeObserversIsOptimized(objectInfo.changeObservers)) {
211 var observer = objectInfo.changeObservers;
215 objectInfo.changeObservers = { __proto__: null };
216 objectInfo.changeObservers[priority] = observer;
220 function ObjectInfoAddObserver(objectInfo, callback, acceptList) {
224 if (!objectInfo.changeObservers) {
225 objectInfo.changeObservers = observer;
229 ObjectInfoNormalizeChangeObservers(objectInfo);
231 objectInfo.changeObservers[priority] = observer;
234 function ObjectInfoRemoveObserver(objectInfo, callback) {
235 if (!objectInfo.changeObservers)
238 if (ChangeObserversIsOptimized(objectInfo.changeObservers)) {
239 if (callback === ObserverGetCallback(objectInfo.changeObservers))
240 objectInfo.changeObservers = null;
246 delete objectInfo.changeObservers[priority];
249 function ObjectInfoHasActiveObservers(objectInfo) {
250 if (IS_UNDEFINED(objectInfo) || !objectInfo.changeObservers)
253 if (ChangeObserversIsOptimized(objectInfo.changeObservers))
254 return ObserverIsActive(objectInfo.changeObservers, objectInfo);
256 for (var priority in objectInfo.changeObservers) {
257 if (ObserverIsActive(objectInfo.changeObservers[priority], objectInfo))
264 function ObjectInfoAddPerformingType(objectInfo, type) {
265 objectInfo.performing = objectInfo.performing || TypeMapCreate();
266 TypeMapAddType(objectInfo.performing, type);
267 objectInfo.performingCount++;
270 function ObjectInfoRemovePerformingType(objectInfo, type) {
271 objectInfo.performingCount--;
272 TypeMapRemoveType(objectInfo.performing, type);
275 function ObjectInfoGetPerformingTypes(objectInfo) {
276 return objectInfo.performingCount > 0 ? objectInfo.performing : null;
336 var objectInfo = ObjectInfoGet(object);
337 ObjectInfoAddObserver(objectInfo, callback, acceptList);
347 var objectInfo = objectInfoMap.get(object);
348 if (IS_UNDEFINED(objectInfo))
351 ObjectInfoRemoveObserver(objectInfo, callback);
366 function ObserverEnqueueIfActive(observer, objectInfo, changeRecord,
368 if (!ObserverIsActive(observer, objectInfo) ||
390 function ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, type) {
391 if (!ObjectInfoHasActiveObservers(objectInfo))
396 { object: ObjectInfoGetObject(objectInfo), type: type } :
397 { object: ObjectInfoGetObject(objectInfo) };
406 ObjectInfoEnqueueInternalChangeRecord(objectInfo, newRecord,
410 function ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord,
418 if (ChangeObserversIsOptimized(objectInfo.changeObservers)) {
419 var observer = objectInfo.changeObservers;
420 ObserverEnqueueIfActive(observer, objectInfo, changeRecord,
425 for (var priority in objectInfo.changeObservers) {
426 var observer = objectInfo.changeObservers[priority];
427 ObserverEnqueueIfActive(observer, objectInfo, changeRecord,
433 var objectInfo = objectInfoMap.get(array);
434 if (!IS_UNDEFINED(objectInfo))
435 ObjectInfoAddPerformingType(objectInfo, 'splice');
439 var objectInfo = objectInfoMap.get(array);
440 if (!IS_UNDEFINED(objectInfo))
441 ObjectInfoRemovePerformingType(objectInfo, 'splice');
445 var objectInfo = objectInfoMap.get(array);
446 if (!ObjectInfoHasActiveObservers(objectInfo))
459 ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord);
463 var objectInfo = objectInfoMap.get(object);
464 if (!ObjectInfoHasActiveObservers(objectInfo))
482 ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord);
491 var objectInfo = ObjectInfoGetFromNotifier(this);
492 if (IS_UNDEFINED(objectInfo))
497 objectInfo, changeRecord);
504 var objectInfo = ObjectInfoGetFromNotifier(this);
506 if (IS_UNDEFINED(objectInfo))
513 ObjectInfoAddPerformingType(objectInfo, changeType);
519 ObjectInfoRemovePerformingType(objectInfo, changeType);
523 ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, changeType);
532 var objectInfo = ObjectInfoGet(object);
533 return ObjectInfoGetNotifier(objectInfo);