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

Side by Side Diff: src/objects.h

Issue 21065006: Replace HCheckPrototypeMaps by explicit map checks of constant values. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Prepare all HConstant js objects Created 7 years, 4 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/mark-compact.cc ('k') | src/objects-debug.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 // 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 5623 matching lines...) Expand 10 before | Expand all | Expand 10 after
5634 // Only JSObject and subtypes have map transitions and back pointers. 5634 // Only JSObject and subtypes have map transitions and back pointers.
5635 STATIC_ASSERT(LAST_TYPE == LAST_JS_OBJECT_TYPE); 5635 STATIC_ASSERT(LAST_TYPE == LAST_JS_OBJECT_TYPE);
5636 return instance_type() >= FIRST_JS_OBJECT_TYPE; 5636 return instance_type() >= FIRST_JS_OBJECT_TYPE;
5637 } 5637 }
5638 5638
5639 // Fires when the layout of an object with a leaf map changes. 5639 // Fires when the layout of an object with a leaf map changes.
5640 // This includes adding transitions to the leaf map or changing 5640 // This includes adding transitions to the leaf map or changing
5641 // the descriptor array. 5641 // the descriptor array.
5642 inline void NotifyLeafMapLayoutChange(); 5642 inline void NotifyLeafMapLayoutChange();
5643 5643
5644 inline bool CanOmitPrototypeChecks();
5645 inline bool CanOmitMapChecks(); 5644 inline bool CanOmitMapChecks();
5646 5645
5647 void AddDependentCompilationInfo(DependentCode::DependencyGroup group, 5646 void AddDependentCompilationInfo(DependentCode::DependencyGroup group,
5648 CompilationInfo* info); 5647 CompilationInfo* info);
5649 5648
5650 void AddDependentCode(DependentCode::DependencyGroup group, 5649 void AddDependentCode(DependentCode::DependencyGroup group,
5651 Handle<Code> code); 5650 Handle<Code> code);
5652 5651
5653 bool IsMapInArrayPrototypeChain(); 5652 bool IsMapInArrayPrototypeChain();
5654 5653
5655 // Dispatched behavior. 5654 // Dispatched behavior.
5656 DECLARE_PRINTER(Map) 5655 DECLARE_PRINTER(Map)
5657 DECLARE_VERIFIER(Map) 5656 DECLARE_VERIFIER(Map)
5658 5657
5659 #ifdef VERIFY_HEAP 5658 #ifdef VERIFY_HEAP
5660 void SharedMapVerify(); 5659 void SharedMapVerify();
5661 void VerifyOmittedPrototypeChecks(); 5660 void VerifyOmittedMapChecks();
5662 #endif 5661 #endif
5663 5662
5664 inline int visitor_id(); 5663 inline int visitor_id();
5665 inline void set_visitor_id(int visitor_id); 5664 inline void set_visitor_id(int visitor_id);
5666 5665
5667 typedef void (*TraverseCallback)(Map* map, void* data); 5666 typedef void (*TraverseCallback)(Map* map, void* data);
5668 5667
5669 void TraverseTransitionTree(TraverseCallback callback, void* data); 5668 void TraverseTransitionTree(TraverseCallback callback, void* data);
5670 5669
5671 // When you set the prototype of an object using the __proto__ accessor you 5670 // When you set the prototype of an object using the __proto__ accessor you
(...skipping 4227 matching lines...) Expand 10 before | Expand all | Expand 10 after
9899 } else { 9898 } else {
9900 value &= ~(1 << bit_position); 9899 value &= ~(1 << bit_position);
9901 } 9900 }
9902 return value; 9901 return value;
9903 } 9902 }
9904 }; 9903 };
9905 9904
9906 } } // namespace v8::internal 9905 } } // namespace v8::internal
9907 9906
9908 #endif // V8_OBJECTS_H_ 9907 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mark-compact.cc ('k') | src/objects-debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698