Index: src/object-observe.js |
diff --git a/src/object-observe.js b/src/object-observe.js |
index e14614f86cc30cfb78b6800dfefc9c15d350e282..23c6bacd0f8383f3e8164407856a30365b9080ae 100644 |
--- a/src/object-observe.js |
+++ b/src/object-observe.js |
@@ -400,11 +400,9 @@ function ObserverEnqueueIfActive(observer, objectInfo, changeRecord, |
} |
var callback = ObserverGetCallback(observer); |
- if (needsAccessCheck && |
- // Drop all splice records on the floor for access-checked objects |
- (changeRecord.type == 'splice' || |
- !%IsAccessAllowedForObserver( |
- callback, changeRecord.object, changeRecord.name))) { |
+ if (needsAccessCheck && !%IsAccessAllowedForObserver(callback, |
+ changeRecord.object, |
+ changeRecord)) { |
return; |
} |
@@ -434,17 +432,14 @@ function ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, type) { |
} |
ObjectFreeze(newRecord); |
- ObjectInfoEnqueueInternalChangeRecord(objectInfo, newRecord, |
- true /* skip access check */); |
+ ObjectInfoEnqueueInternalChangeRecord(objectInfo, newRecord); |
} |
-function ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord, |
- skipAccessCheck) { |
+function ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord) { |
// TODO(rossberg): adjust once there is a story for symbols vs proxies. |
if (IS_SYMBOL(changeRecord.name)) return; |
- var needsAccessCheck = !skipAccessCheck && |
- %IsAccessCheckNeeded(changeRecord.object); |
+ var needsAccessCheck = %IsAccessCheckNeeded(changeRecord.object); |
rossberg
2014/04/30 11:28:32
I believe you always need to do the same-origin ch
rafaelw
2014/05/02 03:22:32
Done.
|
if (ChangeObserversIsOptimized(objectInfo.changeObservers)) { |
var observer = objectInfo.changeObservers; |
@@ -562,6 +557,8 @@ function ObjectGetNotifier(object) { |
if (ObjectIsFrozen(object)) return null; |
+ if (!%ObjectWasCreatedInCurrentOrigin(object)) return null; |
+ |
var objectInfo = ObjectInfoGetOrCreate(object); |
return ObjectInfoGetNotifier(objectInfo); |
} |
@@ -623,5 +620,4 @@ function SetupObjectObserve() { |
)); |
} |
-// Disable Object.observe API for M35. |
-// SetupObjectObserve(); |
+SetupObjectObserve(); |