Index: src/object-observe.js |
diff --git a/src/object-observe.js b/src/object-observe.js |
index 499b27eca1bef61b76b367f591fbc66413cd09bd..468da31ec2588958b985e4cb4346cf20e54122f0 100644 |
--- a/src/object-observe.js |
+++ b/src/object-observe.js |
@@ -390,11 +390,13 @@ function ObserverEnqueueIfActive(observer, objectInfo, changeRecord, |
} |
var callbackInfo = CallbackInfoNormalize(callback); |
- if (!observationState.pendingObservers) |
+ if (IS_NULL(observationState.pendingObservers)) { |
observationState.pendingObservers = nullProtoObject(); |
+ GetMicrotaskQueue().push(ObserveMicrotaskRunner); |
+ %SetMicrotaskPending(true); |
+ } |
observationState.pendingObservers[callbackInfo.priority] = callback; |
callbackInfo.push(changeRecord); |
- %SetMicrotaskPending(true); |
} |
function ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, type) { |
@@ -583,7 +585,6 @@ function ObserveMicrotaskRunner() { |
} |
} |
} |
-RunMicrotasks.runners.push(ObserveMicrotaskRunner); |
function SetupObjectObserve() { |
%CheckIsBootstrapping(); |