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 $observeEnqueueSpliceRecord; | 5 var $observeEnqueueSpliceRecord; |
6 var $observeBeginPerformSplice; | 6 var $observeBeginPerformSplice; |
7 var $observeEndPerformSplice; | 7 var $observeEndPerformSplice; |
8 | 8 |
9 var $observeObjectMethods; | 9 var $observeObjectMethods; |
10 var $observeArrayMethods; | 10 var $observeArrayMethods; |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 } | 381 } |
382 return callbackInfo; | 382 return callbackInfo; |
383 } | 383 } |
384 | 384 |
385 | 385 |
386 function ObjectObserve(object, callback, acceptList) { | 386 function ObjectObserve(object, callback, acceptList) { |
387 if (!IS_SPEC_OBJECT(object)) | 387 if (!IS_SPEC_OBJECT(object)) |
388 throw MakeTypeError(kObserveNonObject, "observe", "observe"); | 388 throw MakeTypeError(kObserveNonObject, "observe", "observe"); |
389 if (%IsJSGlobalProxy(object)) | 389 if (%IsJSGlobalProxy(object)) |
390 throw MakeTypeError(kObserveGlobalProxy, "observe"); | 390 throw MakeTypeError(kObserveGlobalProxy, "observe"); |
| 391 if (%IsAccessCheckNeeded(object)) |
| 392 throw MakeTypeError(kObserveAccessChecked, "observe"); |
391 if (!IS_CALLABLE(callback)) | 393 if (!IS_CALLABLE(callback)) |
392 throw MakeTypeError(kObserveNonFunction, "observe"); | 394 throw MakeTypeError(kObserveNonFunction, "observe"); |
393 if (ObjectIsFrozen(callback)) | 395 if (ObjectIsFrozen(callback)) |
394 throw MakeTypeError(kObserveCallbackFrozen); | 396 throw MakeTypeError(kObserveCallbackFrozen); |
395 | 397 |
396 var objectObserveFn = %GetObjectContextObjectObserve(object); | 398 var objectObserveFn = %GetObjectContextObjectObserve(object); |
397 return objectObserveFn(object, callback, acceptList); | 399 return objectObserveFn(object, callback, acceptList); |
398 } | 400 } |
399 | 401 |
400 | 402 |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 if (IS_SPEC_OBJECT(changeRecord)) | 611 if (IS_SPEC_OBJECT(changeRecord)) |
610 ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, changeType); | 612 ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, changeType); |
611 } | 613 } |
612 | 614 |
613 | 615 |
614 function ObjectGetNotifier(object) { | 616 function ObjectGetNotifier(object) { |
615 if (!IS_SPEC_OBJECT(object)) | 617 if (!IS_SPEC_OBJECT(object)) |
616 throw MakeTypeError(kObserveNonObject, "getNotifier", "getNotifier"); | 618 throw MakeTypeError(kObserveNonObject, "getNotifier", "getNotifier"); |
617 if (%IsJSGlobalProxy(object)) | 619 if (%IsJSGlobalProxy(object)) |
618 throw MakeTypeError(kObserveGlobalProxy, "getNotifier"); | 620 throw MakeTypeError(kObserveGlobalProxy, "getNotifier"); |
| 621 if (%IsAccessCheckNeeded(object)) |
| 622 throw MakeTypeError(kObserveAccessChecked, "getNotifier"); |
619 | 623 |
620 if (ObjectIsFrozen(object)) return null; | 624 if (ObjectIsFrozen(object)) return null; |
621 | 625 |
622 if (!%ObjectWasCreatedInCurrentOrigin(object)) return null; | 626 if (!%ObjectWasCreatedInCurrentOrigin(object)) return null; |
623 | 627 |
624 var getNotifierFn = %GetObjectContextObjectGetNotifier(object); | 628 var getNotifierFn = %GetObjectContextObjectGetNotifier(object); |
625 return getNotifierFn(object); | 629 return getNotifierFn(object); |
626 } | 630 } |
627 | 631 |
628 | 632 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
707 "native_object_get_notifier", NativeObjectGetNotifier, | 711 "native_object_get_notifier", NativeObjectGetNotifier, |
708 "native_object_notifier_perform_change", NativeObjectNotifierPerformChange, | 712 "native_object_notifier_perform_change", NativeObjectNotifierPerformChange, |
709 "native_object_observe", NativeObjectObserve, | 713 "native_object_observe", NativeObjectObserve, |
710 "observers_begin_perform_splice", BeginPerformSplice, | 714 "observers_begin_perform_splice", BeginPerformSplice, |
711 "observers_end_perform_splice", EndPerformSplice, | 715 "observers_end_perform_splice", EndPerformSplice, |
712 "observers_enqueue_splice", EnqueueSpliceRecord, | 716 "observers_enqueue_splice", EnqueueSpliceRecord, |
713 "observers_notify_change", NotifyChange, | 717 "observers_notify_change", NotifyChange, |
714 ]); | 718 ]); |
715 | 719 |
716 }) | 720 }) |
OLD | NEW |