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

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

Issue 1120333007: Revert of Migrate error messages, part 7. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: 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
« no previous file with comments | « src/messages.js ('k') | src/runtime/runtime-internal.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 function ObjectInfoGetPerformingTypes(objectInfo) { 308 function ObjectInfoGetPerformingTypes(objectInfo) {
309 return objectInfo.performingCount > 0 ? objectInfo.performing : null; 309 return objectInfo.performingCount > 0 ? objectInfo.performing : null;
310 } 310 }
311 311
312 312
313 function ConvertAcceptListToTypeMap(arg) { 313 function ConvertAcceptListToTypeMap(arg) {
314 // We use undefined as a sentinel for the default accept list. 314 // We use undefined as a sentinel for the default accept list.
315 if (IS_UNDEFINED(arg)) 315 if (IS_UNDEFINED(arg))
316 return arg; 316 return arg;
317 317
318 if (!IS_SPEC_OBJECT(arg)) throw MakeTypeError(kObserveInvalidAccept); 318 if (!IS_SPEC_OBJECT(arg))
319 throw MakeTypeError("observe_invalid_accept");
319 320
320 var len = ToInteger(arg.length); 321 var len = ToInteger(arg.length);
321 if (len < 0) len = 0; 322 if (len < 0) len = 0;
322 323
323 return TypeMapCreateFromList(arg, len); 324 return TypeMapCreateFromList(arg, len);
324 } 325 }
325 326
326 327
327 // CallbackInfo's optimized state is just a number which represents its global 328 // CallbackInfo's optimized state is just a number which represents its global
328 // priority. When a change record must be enqueued for the callback, it 329 // priority. When a change record must be enqueued for the callback, it
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 callbackInfo = new InternalArray; 365 callbackInfo = new InternalArray;
365 callbackInfo.priority = priority; 366 callbackInfo.priority = priority;
366 CallbackInfoSet(callback, callbackInfo); 367 CallbackInfoSet(callback, callbackInfo);
367 } 368 }
368 return callbackInfo; 369 return callbackInfo;
369 } 370 }
370 371
371 372
372 function ObjectObserve(object, callback, acceptList) { 373 function ObjectObserve(object, callback, acceptList) {
373 if (!IS_SPEC_OBJECT(object)) 374 if (!IS_SPEC_OBJECT(object))
374 throw MakeTypeError(kObserveNonObject, "observe", "observe"); 375 throw MakeTypeError("observe_non_object", ["observe"]);
375 if (%IsJSGlobalProxy(object)) 376 if (%IsJSGlobalProxy(object))
376 throw MakeTypeError(kObserveGlobalProxy, "observe"); 377 throw MakeTypeError("observe_global_proxy", ["observe"]);
377 if (!IS_SPEC_FUNCTION(callback)) 378 if (!IS_SPEC_FUNCTION(callback))
378 throw MakeTypeError(kObserveNonFunction, "observe"); 379 throw MakeTypeError("observe_non_function", ["observe"]);
379 if (ObjectIsFrozen(callback)) 380 if (ObjectIsFrozen(callback))
380 throw MakeTypeError(kObserveCallbackFrozen); 381 throw MakeTypeError("observe_callback_frozen");
381 382
382 var objectObserveFn = %GetObjectContextObjectObserve(object); 383 var objectObserveFn = %GetObjectContextObjectObserve(object);
383 return objectObserveFn(object, callback, acceptList); 384 return objectObserveFn(object, callback, acceptList);
384 } 385 }
385 386
386 387
387 function NativeObjectObserve(object, callback, acceptList) { 388 function NativeObjectObserve(object, callback, acceptList) {
388 var objectInfo = ObjectInfoGetOrCreate(object); 389 var objectInfo = ObjectInfoGetOrCreate(object);
389 var typeList = ConvertAcceptListToTypeMap(acceptList); 390 var typeList = ConvertAcceptListToTypeMap(acceptList);
390 ObjectInfoAddObserver(objectInfo, callback, typeList); 391 ObjectInfoAddObserver(objectInfo, callback, typeList);
391 return object; 392 return object;
392 } 393 }
393 394
394 395
395 function ObjectUnobserve(object, callback) { 396 function ObjectUnobserve(object, callback) {
396 if (!IS_SPEC_OBJECT(object)) 397 if (!IS_SPEC_OBJECT(object))
397 throw MakeTypeError(kObserveNonObject, "unobserve", "unobserve"); 398 throw MakeTypeError("observe_non_object", ["unobserve"]);
398 if (%IsJSGlobalProxy(object)) 399 if (%IsJSGlobalProxy(object))
399 throw MakeTypeError(kObserveGlobalProxy, "unobserve"); 400 throw MakeTypeError("observe_global_proxy", ["unobserve"]);
400 if (!IS_SPEC_FUNCTION(callback)) 401 if (!IS_SPEC_FUNCTION(callback))
401 throw MakeTypeError(kObserveNonFunction, "unobserve"); 402 throw MakeTypeError("observe_non_function", ["unobserve"]);
402 403
403 var objectInfo = ObjectInfoGet(object); 404 var objectInfo = ObjectInfoGet(object);
404 if (IS_UNDEFINED(objectInfo)) 405 if (IS_UNDEFINED(objectInfo))
405 return object; 406 return object;
406 407
407 ObjectInfoRemoveObserver(objectInfo, callback); 408 ObjectInfoRemoveObserver(objectInfo, callback);
408 return object; 409 return object;
409 } 410 }
410 411
411 412
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord); 551 ObjectInfoEnqueueInternalChangeRecord(objectInfo, changeRecord);
551 } 552 }
552 553
553 554
554 function ObjectNotifierNotify(changeRecord) { 555 function ObjectNotifierNotify(changeRecord) {
555 if (!IS_SPEC_OBJECT(this)) 556 if (!IS_SPEC_OBJECT(this))
556 throw MakeTypeError(kCalledOnNonObject, "notify"); 557 throw MakeTypeError(kCalledOnNonObject, "notify");
557 558
558 var objectInfo = ObjectInfoGetFromNotifier(this); 559 var objectInfo = ObjectInfoGetFromNotifier(this);
559 if (IS_UNDEFINED(objectInfo)) 560 if (IS_UNDEFINED(objectInfo))
560 throw MakeTypeError(kObserveNotifyNonNotifier); 561 throw MakeTypeError("observe_notify_non_notifier");
561 if (!IS_STRING(changeRecord.type)) 562 if (!IS_STRING(changeRecord.type))
562 throw MakeTypeError(kObserveTypeNonString); 563 throw MakeTypeError("observe_type_non_string");
563 564
564 ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord); 565 ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord);
565 } 566 }
566 567
567 568
568 function ObjectNotifierPerformChange(changeType, changeFn) { 569 function ObjectNotifierPerformChange(changeType, changeFn) {
569 if (!IS_SPEC_OBJECT(this)) 570 if (!IS_SPEC_OBJECT(this))
570 throw MakeTypeError(kCalledOnNonObject, "performChange"); 571 throw MakeTypeError(kCalledOnNonObject, "performChange");
571 572
572 var objectInfo = ObjectInfoGetFromNotifier(this); 573 var objectInfo = ObjectInfoGetFromNotifier(this);
573 if (IS_UNDEFINED(objectInfo)) 574 if (IS_UNDEFINED(objectInfo))
574 throw MakeTypeError(kObserveNotifyNonNotifier); 575 throw MakeTypeError("observe_notify_non_notifier");
575 if (!IS_STRING(changeType)) 576 if (!IS_STRING(changeType))
576 throw MakeTypeError(kObservePerformNonString); 577 throw MakeTypeError("observe_perform_non_string");
577 if (!IS_SPEC_FUNCTION(changeFn)) 578 if (!IS_SPEC_FUNCTION(changeFn))
578 throw MakeTypeError(kObservePerformNonFunction); 579 throw MakeTypeError("observe_perform_non_function");
579 580
580 var performChangeFn = %GetObjectContextNotifierPerformChange(objectInfo); 581 var performChangeFn = %GetObjectContextNotifierPerformChange(objectInfo);
581 performChangeFn(objectInfo, changeType, changeFn); 582 performChangeFn(objectInfo, changeType, changeFn);
582 } 583 }
583 584
584 585
585 function NativeObjectNotifierPerformChange(objectInfo, changeType, changeFn) { 586 function NativeObjectNotifierPerformChange(objectInfo, changeType, changeFn) {
586 ObjectInfoAddPerformingType(objectInfo, changeType); 587 ObjectInfoAddPerformingType(objectInfo, changeType);
587 588
588 var changeRecord; 589 var changeRecord;
589 try { 590 try {
590 changeRecord = %_CallFunction(UNDEFINED, changeFn); 591 changeRecord = %_CallFunction(UNDEFINED, changeFn);
591 } finally { 592 } finally {
592 ObjectInfoRemovePerformingType(objectInfo, changeType); 593 ObjectInfoRemovePerformingType(objectInfo, changeType);
593 } 594 }
594 595
595 if (IS_SPEC_OBJECT(changeRecord)) 596 if (IS_SPEC_OBJECT(changeRecord))
596 ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, changeType); 597 ObjectInfoEnqueueExternalChangeRecord(objectInfo, changeRecord, changeType);
597 } 598 }
598 599
599 600
600 function ObjectGetNotifier(object) { 601 function ObjectGetNotifier(object) {
601 if (!IS_SPEC_OBJECT(object)) 602 if (!IS_SPEC_OBJECT(object))
602 throw MakeTypeError(kObserveNonObject, "getNotifier", "getNotifier"); 603 throw MakeTypeError("observe_non_object", ["getNotifier"]);
603 if (%IsJSGlobalProxy(object)) 604 if (%IsJSGlobalProxy(object))
604 throw MakeTypeError(kObserveGlobalProxy, "getNotifier"); 605 throw MakeTypeError("observe_global_proxy", ["getNotifier"]);
605 606
606 if (ObjectIsFrozen(object)) return null; 607 if (ObjectIsFrozen(object)) return null;
607 608
608 if (!%ObjectWasCreatedInCurrentOrigin(object)) return null; 609 if (!%ObjectWasCreatedInCurrentOrigin(object)) return null;
609 610
610 var getNotifierFn = %GetObjectContextObjectGetNotifier(object); 611 var getNotifierFn = %GetObjectContextObjectGetNotifier(object);
611 return getNotifierFn(object); 612 return getNotifierFn(object);
612 } 613 }
613 614
614 615
(...skipping 21 matching lines...) Expand all
636 var delivered = []; 637 var delivered = [];
637 %MoveArrayContents(callbackInfo, delivered); 638 %MoveArrayContents(callbackInfo, delivered);
638 %DeliverObservationChangeRecords(callback, delivered); 639 %DeliverObservationChangeRecords(callback, delivered);
639 640
640 return true; 641 return true;
641 } 642 }
642 643
643 644
644 function ObjectDeliverChangeRecords(callback) { 645 function ObjectDeliverChangeRecords(callback) {
645 if (!IS_SPEC_FUNCTION(callback)) 646 if (!IS_SPEC_FUNCTION(callback))
646 throw MakeTypeError(kObserveNonFunction, "deliverChangeRecords"); 647 throw MakeTypeError("observe_non_function", ["deliverChangeRecords"]);
647 648
648 while (CallbackDeliverPending(callback)) {} 649 while (CallbackDeliverPending(callback)) {}
649 } 650 }
650 651
651 652
652 function ObserveMicrotaskRunner() { 653 function ObserveMicrotaskRunner() {
653 var pendingObservers = GetPendingObservers(); 654 var pendingObservers = GetPendingObservers();
654 if (!IS_NULL(pendingObservers)) { 655 if (!IS_NULL(pendingObservers)) {
655 SetPendingObservers(null); 656 SetPendingObservers(null);
656 for (var i in pendingObservers) { 657 for (var i in pendingObservers) {
(...skipping 21 matching lines...) Expand all
678 679
679 $observeNotifyChange = NotifyChange; 680 $observeNotifyChange = NotifyChange;
680 $observeEnqueueSpliceRecord = EnqueueSpliceRecord; 681 $observeEnqueueSpliceRecord = EnqueueSpliceRecord;
681 $observeBeginPerformSplice = BeginPerformSplice; 682 $observeBeginPerformSplice = BeginPerformSplice;
682 $observeEndPerformSplice = EndPerformSplice; 683 $observeEndPerformSplice = EndPerformSplice;
683 $observeNativeObjectObserve = NativeObjectObserve; 684 $observeNativeObjectObserve = NativeObjectObserve;
684 $observeNativeObjectGetNotifier = NativeObjectGetNotifier; 685 $observeNativeObjectGetNotifier = NativeObjectGetNotifier;
685 $observeNativeObjectNotifierPerformChange = NativeObjectNotifierPerformChange; 686 $observeNativeObjectNotifierPerformChange = NativeObjectNotifierPerformChange;
686 687
687 })(); 688 })();
OLDNEW
« no previous file with comments | « src/messages.js ('k') | src/runtime/runtime-internal.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698