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

Side by Side Diff: src/heap.h

Issue 50016: Allow hidden properties and implement GetIdentityHash (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 9 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/handles.cc ('k') | src/heap.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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 V(invalid_lhs_in_prefix_op_symbol, "invalid_lhs_in_prefix_op") \ 188 V(invalid_lhs_in_prefix_op_symbol, "invalid_lhs_in_prefix_op") \
189 V(illegal_return_symbol, "illegal_return") \ 189 V(illegal_return_symbol, "illegal_return") \
190 V(illegal_break_symbol, "illegal_break") \ 190 V(illegal_break_symbol, "illegal_break") \
191 V(illegal_continue_symbol, "illegal_continue") \ 191 V(illegal_continue_symbol, "illegal_continue") \
192 V(unknown_label_symbol, "unknown_label") \ 192 V(unknown_label_symbol, "unknown_label") \
193 V(redeclaration_symbol, "redeclaration") \ 193 V(redeclaration_symbol, "redeclaration") \
194 V(failure_symbol, "<failure>") \ 194 V(failure_symbol, "<failure>") \
195 V(space_symbol, " ") \ 195 V(space_symbol, " ") \
196 V(exec_symbol, "exec") \ 196 V(exec_symbol, "exec") \
197 V(zero_symbol, "0") \ 197 V(zero_symbol, "0") \
198 V(global_eval_symbol, "GlobalEval") 198 V(global_eval_symbol, "GlobalEval") \
199 V(identity_hash_symbol, "v8::IdentityHash")
199 200
200 201
201 // Forward declaration of the GCTracer class. 202 // Forward declaration of the GCTracer class.
202 class GCTracer; 203 class GCTracer;
203 204
204 205
205 // The all static Heap captures the interface to the global object heap. 206 // The all static Heap captures the interface to the global object heap.
206 // All JavaScript contexts by this process share the same object heap. 207 // All JavaScript contexts by this process share the same object heap.
207 208
208 class Heap : public AllStatic { 209 class Heap : public AllStatic {
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 640
640 // Utility type maps 641 // Utility type maps
641 #define STRUCT_MAP_ACCESSOR(NAME, Name, name) \ 642 #define STRUCT_MAP_ACCESSOR(NAME, Name, name) \
642 static Map* name##_map() { return name##_map_; } 643 static Map* name##_map() { return name##_map_; }
643 STRUCT_LIST(STRUCT_MAP_ACCESSOR) 644 STRUCT_LIST(STRUCT_MAP_ACCESSOR)
644 #undef STRUCT_MAP_ACCESSOR 645 #undef STRUCT_MAP_ACCESSOR
645 646
646 #define SYMBOL_ACCESSOR(name, str) static String* name() { return name##_; } 647 #define SYMBOL_ACCESSOR(name, str) static String* name() { return name##_; }
647 SYMBOL_LIST(SYMBOL_ACCESSOR) 648 SYMBOL_LIST(SYMBOL_ACCESSOR)
648 #undef SYMBOL_ACCESSOR 649 #undef SYMBOL_ACCESSOR
650
651 // The hidden_symbol is special because it is the empty string, but does
652 // not match the empty string.
653 static String* hidden_symbol() { return hidden_symbol_; }
649 654
650 // Iterates over all roots in the heap. 655 // Iterates over all roots in the heap.
651 static void IterateRoots(ObjectVisitor* v); 656 static void IterateRoots(ObjectVisitor* v);
652 // Iterates over all strong roots in the heap. 657 // Iterates over all strong roots in the heap.
653 static void IterateStrongRoots(ObjectVisitor* v); 658 static void IterateStrongRoots(ObjectVisitor* v);
654 659
655 // Iterates remembered set of an old space. 660 // Iterates remembered set of an old space.
656 static void IterateRSet(PagedSpace* space, ObjectSlotCallback callback); 661 static void IterateRSet(PagedSpace* space, ObjectSlotCallback callback);
657 662
658 // Iterates a range of remembered set addresses starting with rset_start 663 // Iterates a range of remembered set addresses starting with rset_start
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
892 #undef ROOT_DECLARATION 897 #undef ROOT_DECLARATION
893 898
894 // Utility type maps 899 // Utility type maps
895 #define DECLARE_STRUCT_MAP(NAME, Name, name) static Map* name##_map_; 900 #define DECLARE_STRUCT_MAP(NAME, Name, name) static Map* name##_map_;
896 STRUCT_LIST(DECLARE_STRUCT_MAP) 901 STRUCT_LIST(DECLARE_STRUCT_MAP)
897 #undef DECLARE_STRUCT_MAP 902 #undef DECLARE_STRUCT_MAP
898 903
899 #define SYMBOL_DECLARATION(name, str) static String* name##_; 904 #define SYMBOL_DECLARATION(name, str) static String* name##_;
900 SYMBOL_LIST(SYMBOL_DECLARATION) 905 SYMBOL_LIST(SYMBOL_DECLARATION)
901 #undef SYMBOL_DECLARATION 906 #undef SYMBOL_DECLARATION
907
908 // The special hidden symbol which is an empty string, but does not match
909 // any string when looked up in properties.
910 static String* hidden_symbol_;
902 911
903 // GC callback function, called before and after mark-compact GC. 912 // GC callback function, called before and after mark-compact GC.
904 // Allocations in the callback function are disallowed. 913 // Allocations in the callback function are disallowed.
905 static GCCallback global_gc_prologue_callback_; 914 static GCCallback global_gc_prologue_callback_;
906 static GCCallback global_gc_epilogue_callback_; 915 static GCCallback global_gc_epilogue_callback_;
907 916
908 // Checks whether a global GC is necessary 917 // Checks whether a global GC is necessary
909 static GarbageCollector SelectGarbageCollector(AllocationSpace space); 918 static GarbageCollector SelectGarbageCollector(AllocationSpace space);
910 919
911 // Performs garbage collection 920 // Performs garbage collection
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
1304 int marked_count_; 1313 int marked_count_;
1305 1314
1306 // The count from the end of the previous full GC. Will be zero if there 1315 // The count from the end of the previous full GC. Will be zero if there
1307 // was no previous full GC. 1316 // was no previous full GC.
1308 int previous_marked_count_; 1317 int previous_marked_count_;
1309 }; 1318 };
1310 1319
1311 } } // namespace v8::internal 1320 } } // namespace v8::internal
1312 1321
1313 #endif // V8_HEAP_H_ 1322 #endif // V8_HEAP_H_
OLDNEW
« no previous file with comments | « src/handles.cc ('k') | src/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698