Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: src/object-observe.js

Issue 1149863005: Move hash code from hidden string to a private symbol (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix MIPS Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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,
211 $getHash(object));
211 } 212 }
212 213
213 214
214 function ObjectInfoGetFromNotifier(notifier) { 215 function ObjectInfoGetFromNotifier(notifier) {
215 return %WeakCollectionGet(GetObservationStateJS().notifierObjectInfoMap, 216 return %WeakCollectionGet(GetObservationStateJS().notifierObjectInfoMap,
216 notifier); 217 notifier, $getHash(notifier));
217 } 218 }
218 219
219 220
220 function ObjectInfoGetNotifier(objectInfo) { 221 function ObjectInfoGetNotifier(objectInfo) {
221 if (IS_NULL(objectInfo.notifier)) { 222 if (IS_NULL(objectInfo.notifier)) {
222 objectInfo.notifier = { __proto__: notifierPrototype }; 223 var notifier = { __proto__: notifierPrototype };
224 objectInfo.notifier = notifier;
223 %WeakCollectionSet(GetObservationStateJS().notifierObjectInfoMap, 225 %WeakCollectionSet(GetObservationStateJS().notifierObjectInfoMap,
224 objectInfo.notifier, objectInfo); 226 notifier, objectInfo, $getHash(notifier));
225 } 227 }
226 228
227 return objectInfo.notifier; 229 return objectInfo.notifier;
228 } 230 }
229 231
230 232
231 function ChangeObserversIsOptimized(changeObservers) { 233 function ChangeObserversIsOptimized(changeObservers) {
232 return IS_SPEC_FUNCTION(changeObservers) || 234 return IS_SPEC_FUNCTION(changeObservers) ||
233 IS_SPEC_FUNCTION(changeObservers.callback); 235 IS_SPEC_FUNCTION(changeObservers.callback);
234 } 236 }
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 if (len < 0) len = 0; 327 if (len < 0) len = 0;
326 328
327 return TypeMapCreateFromList(arg, len); 329 return TypeMapCreateFromList(arg, len);
328 } 330 }
329 331
330 332
331 // CallbackInfo's optimized state is just a number which represents its global 333 // 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 334 // priority. When a change record must be enqueued for the callback, it
333 // normalizes. When delivery clears any pending change records, it re-optimizes. 335 // normalizes. When delivery clears any pending change records, it re-optimizes.
334 function CallbackInfoGet(callback) { 336 function CallbackInfoGet(callback) {
335 return %WeakCollectionGet(GetObservationStateJS().callbackInfoMap, callback); 337 return %WeakCollectionGet(GetObservationStateJS().callbackInfoMap, callback,
338 $getHash(callback));
336 } 339 }
337 340
338 341
339 function CallbackInfoSet(callback, callbackInfo) { 342 function CallbackInfoSet(callback, callbackInfo) {
340 %WeakCollectionSet(GetObservationStateJS().callbackInfoMap, 343 %WeakCollectionSet(GetObservationStateJS().callbackInfoMap,
341 callback, callbackInfo); 344 callback, callbackInfo, $getHash(callback));
342 } 345 }
343 346
344 347
345 function CallbackInfoGetOrCreate(callback) { 348 function CallbackInfoGetOrCreate(callback) {
346 var callbackInfo = CallbackInfoGet(callback); 349 var callbackInfo = CallbackInfoGet(callback);
347 if (!IS_UNDEFINED(callbackInfo)) 350 if (!IS_UNDEFINED(callbackInfo))
348 return callbackInfo; 351 return callbackInfo;
349 352
350 var priority = GetNextCallbackPriority(); 353 var priority = GetNextCallbackPriority();
351 CallbackInfoSet(callback, priority); 354 CallbackInfoSet(callback, priority);
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 685
683 $observeNotifyChange = NotifyChange; 686 $observeNotifyChange = NotifyChange;
684 $observeEnqueueSpliceRecord = EnqueueSpliceRecord; 687 $observeEnqueueSpliceRecord = EnqueueSpliceRecord;
685 $observeBeginPerformSplice = BeginPerformSplice; 688 $observeBeginPerformSplice = BeginPerformSplice;
686 $observeEndPerformSplice = EndPerformSplice; 689 $observeEndPerformSplice = EndPerformSplice;
687 $observeNativeObjectObserve = NativeObjectObserve; 690 $observeNativeObjectObserve = NativeObjectObserve;
688 $observeNativeObjectGetNotifier = NativeObjectGetNotifier; 691 $observeNativeObjectGetNotifier = NativeObjectGetNotifier;
689 $observeNativeObjectNotifierPerformChange = NativeObjectNotifierPerformChange; 692 $observeNativeObjectNotifierPerformChange = NativeObjectNotifierPerformChange;
690 693
691 }) 694 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698