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

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

Issue 27491002: Cosmetic: Add macros for NaN, undefined and Infinity to native js code. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « src/mirror-debugger.js ('k') | src/proxy.js » ('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 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 observationState.nextCallbackPriority = 0; 65 observationState.nextCallbackPriority = 0;
66 } 66 }
67 67
68 function ObservationWeakMap(map) { 68 function ObservationWeakMap(map) {
69 this.map_ = map; 69 this.map_ = map;
70 } 70 }
71 71
72 ObservationWeakMap.prototype = { 72 ObservationWeakMap.prototype = {
73 get: function(key) { 73 get: function(key) {
74 key = %UnwrapGlobalProxy(key); 74 key = %UnwrapGlobalProxy(key);
75 if (!IS_SPEC_OBJECT(key)) return void 0; 75 if (!IS_SPEC_OBJECT(key)) return UNDEFINED;
76 return %WeakCollectionGet(this.map_, key); 76 return %WeakCollectionGet(this.map_, key);
77 }, 77 },
78 set: function(key, value) { 78 set: function(key, value) {
79 key = %UnwrapGlobalProxy(key); 79 key = %UnwrapGlobalProxy(key);
80 if (!IS_SPEC_OBJECT(key)) return void 0; 80 if (!IS_SPEC_OBJECT(key)) return UNDEFINED;
81 %WeakCollectionSet(this.map_, key, value); 81 %WeakCollectionSet(this.map_, key, value);
82 }, 82 },
83 has: function(key) { 83 has: function(key) {
84 return !IS_UNDEFINED(this.get(key)); 84 return !IS_UNDEFINED(this.get(key));
85 } 85 }
86 }; 86 };
87 87
88 var callbackInfoMap = 88 var callbackInfoMap =
89 new ObservationWeakMap(observationState.callbackInfoMap); 89 new ObservationWeakMap(observationState.callbackInfoMap);
90 var objectInfoMap = new ObservationWeakMap(observationState.objectInfoMap); 90 var objectInfoMap = new ObservationWeakMap(observationState.objectInfoMap);
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 485
486 if (IS_UNDEFINED(objectInfo)) 486 if (IS_UNDEFINED(objectInfo))
487 throw MakeTypeError("observe_notify_non_notifier"); 487 throw MakeTypeError("observe_notify_non_notifier");
488 if (!IS_STRING(changeType)) 488 if (!IS_STRING(changeType))
489 throw MakeTypeError("observe_perform_non_string"); 489 throw MakeTypeError("observe_perform_non_string");
490 if (!IS_SPEC_FUNCTION(changeFn)) 490 if (!IS_SPEC_FUNCTION(changeFn))
491 throw MakeTypeError("observe_perform_non_function"); 491 throw MakeTypeError("observe_perform_non_function");
492 492
493 ObjectInfoAddPerformingType(objectInfo, changeType); 493 ObjectInfoAddPerformingType(objectInfo, changeType);
494 try { 494 try {
495 %_CallFunction(void 0, changeFn); 495 %_CallFunction(UNDEFINED, changeFn);
496 } finally { 496 } finally {
497 ObjectInfoRemovePerformingType(objectInfo, changeType); 497 ObjectInfoRemovePerformingType(objectInfo, changeType);
498 } 498 }
499 } 499 }
500 500
501 function ObjectGetNotifier(object) { 501 function ObjectGetNotifier(object) {
502 if (!IS_SPEC_OBJECT(object)) 502 if (!IS_SPEC_OBJECT(object))
503 throw MakeTypeError("observe_non_object", ["getNotifier"]); 503 throw MakeTypeError("observe_non_object", ["getNotifier"]);
504 504
505 if (ObjectIsFrozen(object)) return null; 505 if (ObjectIsFrozen(object)) return null;
(...skipping 12 matching lines...) Expand all
518 var priority = callbackInfo.priority; 518 var priority = callbackInfo.priority;
519 callbackInfoMap.set(callback, priority); 519 callbackInfoMap.set(callback, priority);
520 520
521 if (observationState.pendingObservers) 521 if (observationState.pendingObservers)
522 delete observationState.pendingObservers[priority]; 522 delete observationState.pendingObservers[priority];
523 523
524 var delivered = []; 524 var delivered = [];
525 %MoveArrayContents(callbackInfo, delivered); 525 %MoveArrayContents(callbackInfo, delivered);
526 526
527 try { 527 try {
528 %_CallFunction(void 0, delivered, callback); 528 %_CallFunction(UNDEFINED, delivered, callback);
529 } catch (ex) {} 529 } catch (ex) {}
530 return true; 530 return true;
531 } 531 }
532 532
533 function ObjectDeliverChangeRecords(callback) { 533 function ObjectDeliverChangeRecords(callback) {
534 if (!IS_SPEC_FUNCTION(callback)) 534 if (!IS_SPEC_FUNCTION(callback))
535 throw MakeTypeError("observe_non_function", ["deliverChangeRecords"]); 535 throw MakeTypeError("observe_non_function", ["deliverChangeRecords"]);
536 536
537 while (CallbackDeliverPending(callback)) {} 537 while (CallbackDeliverPending(callback)) {}
538 } 538 }
(...skipping 20 matching lines...) Expand all
559 "observe", ArrayObserve, 559 "observe", ArrayObserve,
560 "unobserve", ArrayUnobserve 560 "unobserve", ArrayUnobserve
561 )); 561 ));
562 InstallFunctions(notifierPrototype, DONT_ENUM, $Array( 562 InstallFunctions(notifierPrototype, DONT_ENUM, $Array(
563 "notify", ObjectNotifierNotify, 563 "notify", ObjectNotifierNotify,
564 "performChange", ObjectNotifierPerformChange 564 "performChange", ObjectNotifierPerformChange
565 )); 565 ));
566 } 566 }
567 567
568 SetupObjectObserve(); 568 SetupObjectObserve();
OLDNEW
« no previous file with comments | « src/mirror-debugger.js ('k') | src/proxy.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698