OLD | NEW |
---|---|
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 var $observeNotifyChange; | 5 var $observeNotifyChange; |
6 var $observeEnqueueSpliceRecord; | 6 var $observeEnqueueSpliceRecord; |
7 var $observeBeginPerformSplice; | 7 var $observeBeginPerformSplice; |
8 var $observeEndPerformSplice; | 8 var $observeEndPerformSplice; |
9 var $observeNativeObjectObserve; | 9 var $observeNativeObjectObserve; |
10 var $observeNativeObjectGetNotifier; | 10 var $observeNativeObjectGetNotifier; |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
193 %SetIsObserved(object); | 193 %SetIsObserved(object); |
194 } | 194 } |
195 objectInfo = { | 195 objectInfo = { |
196 object: object, | 196 object: object, |
197 changeObservers: null, | 197 changeObservers: null, |
198 notifier: null, | 198 notifier: null, |
199 performing: null, | 199 performing: null, |
200 performingCount: 0, | 200 performingCount: 0, |
201 }; | 201 }; |
202 %WeakCollectionSet(GetObservationStateJS().objectInfoMap, | 202 %WeakCollectionSet(GetObservationStateJS().objectInfoMap, |
203 object, objectInfo); | 203 object, objectInfo, $gethash(object)); |
204 } | 204 } |
205 return objectInfo; | 205 return objectInfo; |
206 } | 206 } |
207 | 207 |
208 | 208 |
209 function ObjectInfoGet(object) { | 209 function ObjectInfoGet(object) { |
210 return %WeakCollectionGet(GetObservationStateJS().objectInfoMap, object); | 210 return %WeakCollectionGet(GetObservationStateJS().objectInfoMap, object, $geth ash(object)); |
adamk
2015/05/21 19:11:32
Style nit: over 80 characters here and below.
Erik Corry
2015/05/21 20:19:02
I've come to rely too much on git cl format.
Erik Corry
2015/05/22 06:20:25
Done.
| |
211 } | 211 } |
212 | 212 |
213 | 213 |
214 function ObjectInfoGetFromNotifier(notifier) { | 214 function ObjectInfoGetFromNotifier(notifier) { |
215 return %WeakCollectionGet(GetObservationStateJS().notifierObjectInfoMap, | 215 return %WeakCollectionGet(GetObservationStateJS().notifierObjectInfoMap, |
216 notifier); | 216 notifier, $gethash(notifier)); |
217 } | 217 } |
218 | 218 |
219 | 219 |
220 function ObjectInfoGetNotifier(objectInfo) { | 220 function ObjectInfoGetNotifier(objectInfo) { |
221 if (IS_NULL(objectInfo.notifier)) { | 221 if (IS_NULL(objectInfo.notifier)) { |
222 objectInfo.notifier = { __proto__: notifierPrototype }; | 222 var notifier = { __proto__: notifierPrototype }; |
223 objectInfo.notifier = notifier; | |
223 %WeakCollectionSet(GetObservationStateJS().notifierObjectInfoMap, | 224 %WeakCollectionSet(GetObservationStateJS().notifierObjectInfoMap, |
224 objectInfo.notifier, objectInfo); | 225 notifier, objectInfo, $gethash(notifier)); |
225 } | 226 } |
226 | 227 |
227 return objectInfo.notifier; | 228 return objectInfo.notifier; |
228 } | 229 } |
229 | 230 |
230 | 231 |
231 function ChangeObserversIsOptimized(changeObservers) { | 232 function ChangeObserversIsOptimized(changeObservers) { |
232 return IS_SPEC_FUNCTION(changeObservers) || | 233 return IS_SPEC_FUNCTION(changeObservers) || |
233 IS_SPEC_FUNCTION(changeObservers.callback); | 234 IS_SPEC_FUNCTION(changeObservers.callback); |
234 } | 235 } |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
325 if (len < 0) len = 0; | 326 if (len < 0) len = 0; |
326 | 327 |
327 return TypeMapCreateFromList(arg, len); | 328 return TypeMapCreateFromList(arg, len); |
328 } | 329 } |
329 | 330 |
330 | 331 |
331 // CallbackInfo's optimized state is just a number which represents its global | 332 // CallbackInfo's optimized state is just a number which represents its global |
332 // priority. When a change record must be enqueued for the callback, it | 333 // priority. When a change record must be enqueued for the callback, it |
333 // normalizes. When delivery clears any pending change records, it re-optimizes. | 334 // normalizes. When delivery clears any pending change records, it re-optimizes. |
334 function CallbackInfoGet(callback) { | 335 function CallbackInfoGet(callback) { |
335 return %WeakCollectionGet(GetObservationStateJS().callbackInfoMap, callback); | 336 return %WeakCollectionGet(GetObservationStateJS().callbackInfoMap, callback, $ gethash(callback)); |
336 } | 337 } |
337 | 338 |
338 | 339 |
339 function CallbackInfoSet(callback, callbackInfo) { | 340 function CallbackInfoSet(callback, callbackInfo) { |
340 %WeakCollectionSet(GetObservationStateJS().callbackInfoMap, | 341 %WeakCollectionSet(GetObservationStateJS().callbackInfoMap, |
341 callback, callbackInfo); | 342 callback, callbackInfo, $gethash(callback)); |
342 } | 343 } |
343 | 344 |
344 | 345 |
345 function CallbackInfoGetOrCreate(callback) { | 346 function CallbackInfoGetOrCreate(callback) { |
346 var callbackInfo = CallbackInfoGet(callback); | 347 var callbackInfo = CallbackInfoGet(callback); |
347 if (!IS_UNDEFINED(callbackInfo)) | 348 if (!IS_UNDEFINED(callbackInfo)) |
348 return callbackInfo; | 349 return callbackInfo; |
349 | 350 |
350 var priority = GetNextCallbackPriority(); | 351 var priority = GetNextCallbackPriority(); |
351 CallbackInfoSet(callback, priority); | 352 CallbackInfoSet(callback, priority); |
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
682 | 683 |
683 $observeNotifyChange = NotifyChange; | 684 $observeNotifyChange = NotifyChange; |
684 $observeEnqueueSpliceRecord = EnqueueSpliceRecord; | 685 $observeEnqueueSpliceRecord = EnqueueSpliceRecord; |
685 $observeBeginPerformSplice = BeginPerformSplice; | 686 $observeBeginPerformSplice = BeginPerformSplice; |
686 $observeEndPerformSplice = EndPerformSplice; | 687 $observeEndPerformSplice = EndPerformSplice; |
687 $observeNativeObjectObserve = NativeObjectObserve; | 688 $observeNativeObjectObserve = NativeObjectObserve; |
688 $observeNativeObjectGetNotifier = NativeObjectGetNotifier; | 689 $observeNativeObjectGetNotifier = NativeObjectGetNotifier; |
689 $observeNativeObjectNotifierPerformChange = NativeObjectNotifierPerformChange; | 690 $observeNativeObjectNotifierPerformChange = NativeObjectNotifierPerformChange; |
690 | 691 |
691 }) | 692 }) |
OLD | NEW |