Index: src/object-observe.js |
diff --git a/src/object-observe.js b/src/object-observe.js |
index dcf98d84aed1e66359b2c71d8f648733f7479922..9f01acf829fe2ecc89bb8fa2885c9735cd625d67 100644 |
--- a/src/object-observe.js |
+++ b/src/object-observe.js |
@@ -68,6 +68,7 @@ function ObjectObserve(object, callback) { |
changeObservers: new InternalArray(callback) |
}; |
objectInfoMap.set(object, objectInfo); |
+ %SetIsObserved(object, true); |
return; |
} |
rafaelw
2012/10/31 14:44:31
do we have JS debug-only ASSERTS? If so, it'd be n
rossberg
2012/11/05 17:11:08
Unfortunately, no.
|
@@ -109,6 +110,16 @@ function EnqueueChangeRecord(changeRecord, observers) { |
} |
} |
+function NotifyChange(type, object, name, oldValue) { |
+ var objectInfo = objectInfoMap.get(object); |
+ if (IS_UNDEFINED(objectInfo)) return; |
rafaelw
2012/10/31 14:44:31
Seems like we should CHECK() here - can we crash f
rossberg
2012/11/05 17:11:08
There is no direct way to do that, but I just remo
|
+ |
+ var changeRecord = { type: type, object: object, name: name }; |
+ if (arguments.length == 4) changeRecord.oldValue = oldValue; |
rafaelw
2012/10/31 14:44:31
For safety, I think that you should switch on argu
rossberg
2012/11/05 17:11:08
Done.
|
+ InternalObjectFreeze(changeRecord); |
+ EnqueueChangeRecord(changeRecord, objectInfo.changeObservers); |
+} |
+ |
function ObjectNotify(object, changeRecord) { |
// TODO: notifier needs to be [[THIS]] |
if (!IS_STRING(changeRecord.type)) |
@@ -119,7 +130,7 @@ function ObjectNotify(object, changeRecord) { |
return; |
var newRecord = { |
- object: object // TODO: Needs to be 'object' retreived from notifier |
+ object: object // TODO: Needs to be 'object' retrieved from notifier |
}; |
for (var prop in changeRecord) { |
if (prop === 'object') |
@@ -161,4 +172,4 @@ function SetupObjectObserve() { |
)); |
} |
-SetupObjectObserve(); |
+SetupObjectObserve(); |