| 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 #ifndef V8_HEAP_HEAP_H_ | 5 #ifndef V8_HEAP_HEAP_H_ |
| 6 #define V8_HEAP_HEAP_H_ | 6 #define V8_HEAP_HEAP_H_ |
| 7 | 7 |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <map> | 9 #include <map> |
| 10 | 10 |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 V(nan_string, "NaN") \ | 251 V(nan_string, "NaN") \ |
| 252 V(source_string, "source") \ | 252 V(source_string, "source") \ |
| 253 V(source_url_string, "source_url") \ | 253 V(source_url_string, "source_url") \ |
| 254 V(source_mapping_url_string, "source_mapping_url") \ | 254 V(source_mapping_url_string, "source_mapping_url") \ |
| 255 V(this_string, "this") \ | 255 V(this_string, "this") \ |
| 256 V(global_string, "global") \ | 256 V(global_string, "global") \ |
| 257 V(ignore_case_string, "ignoreCase") \ | 257 V(ignore_case_string, "ignoreCase") \ |
| 258 V(multiline_string, "multiline") \ | 258 V(multiline_string, "multiline") \ |
| 259 V(sticky_string, "sticky") \ | 259 V(sticky_string, "sticky") \ |
| 260 V(unicode_string, "unicode") \ | 260 V(unicode_string, "unicode") \ |
| 261 V(harmony_regexps_string, "harmony_regexps") \ | |
| 262 V(harmony_tostring_string, "harmony_tostring") \ | |
| 263 V(harmony_unicode_regexps_string, "harmony_unicode_regexps") \ | |
| 264 V(input_string, "input") \ | 261 V(input_string, "input") \ |
| 265 V(index_string, "index") \ | 262 V(index_string, "index") \ |
| 266 V(last_index_string, "lastIndex") \ | 263 V(last_index_string, "lastIndex") \ |
| 267 V(object_string, "object") \ | 264 V(object_string, "object") \ |
| 268 V(prototype_string, "prototype") \ | 265 V(prototype_string, "prototype") \ |
| 269 V(string_string, "string") \ | 266 V(string_string, "string") \ |
| 270 V(String_string, "String") \ | 267 V(String_string, "String") \ |
| 271 V(symbol_string, "symbol") \ | 268 V(symbol_string, "symbol") \ |
| 272 V(Symbol_string, "Symbol") \ | 269 V(Symbol_string, "Symbol") \ |
| 273 V(Map_string, "Map") \ | 270 V(Map_string, "Map") \ |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 V(promise_on_reject_symbol) \ | 338 V(promise_on_reject_symbol) \ |
| 342 V(promise_raw_symbol) \ | 339 V(promise_raw_symbol) \ |
| 343 V(promise_status_symbol) \ | 340 V(promise_status_symbol) \ |
| 344 V(promise_value_symbol) \ | 341 V(promise_value_symbol) \ |
| 345 V(sealed_symbol) \ | 342 V(sealed_symbol) \ |
| 346 V(stack_trace_symbol) \ | 343 V(stack_trace_symbol) \ |
| 347 V(string_iterator_iterated_string_symbol) \ | 344 V(string_iterator_iterated_string_symbol) \ |
| 348 V(string_iterator_next_index_symbol) \ | 345 V(string_iterator_next_index_symbol) \ |
| 349 V(uninitialized_symbol) | 346 V(uninitialized_symbol) |
| 350 | 347 |
| 351 | 348 #define PUBLIC_SYMBOL_LIST(V) \ |
| 352 #define PUBLIC_SYMBOL_LIST(V) \ | 349 V(has_instance_symbol, Symbol.hasInstance) \ |
| 353 V(has_instance_symbol, symbolHasInstance, Symbol.hasInstance) \ | 350 V(is_concat_spreadable_symbol, Symbol.isConcatSpreadable) \ |
| 354 V(is_concat_spreadable_symbol, symbolIsConcatSpreadable, \ | 351 V(is_regexp_symbol, Symbol.isRegExp) \ |
| 355 Symbol.isConcatSpreadable) \ | 352 V(iterator_symbol, Symbol.iterator) \ |
| 356 V(is_regexp_symbol, symbolIsRegExp, Symbol.isRegExp) \ | 353 V(to_primitive_symbol, Symbol.toPrimitive) \ |
| 357 V(iterator_symbol, symbolIterator, Symbol.iterator) \ | 354 V(to_string_tag_symbol, Symbol.toStringTag) \ |
| 358 V(to_primitive_symbol, symbolToPrimitive, Symbol.toPrimitive) \ | 355 V(unscopables_symbol, Symbol.unscopables) |
| 359 V(to_string_tag_symbol, symbolToStringTag, Symbol.toStringTag) \ | |
| 360 V(unscopables_symbol, symbolUnscopables, Symbol.unscopables) | |
| 361 | 356 |
| 362 // Heap roots that are known to be immortal immovable, for which we can safely | 357 // Heap roots that are known to be immortal immovable, for which we can safely |
| 363 // skip write barriers. This list is not complete and has omissions. | 358 // skip write barriers. This list is not complete and has omissions. |
| 364 #define IMMORTAL_IMMOVABLE_ROOT_LIST(V) \ | 359 #define IMMORTAL_IMMOVABLE_ROOT_LIST(V) \ |
| 365 V(ByteArrayMap) \ | 360 V(ByteArrayMap) \ |
| 366 V(BytecodeArrayMap) \ | 361 V(BytecodeArrayMap) \ |
| 367 V(FreeSpaceMap) \ | 362 V(FreeSpaceMap) \ |
| 368 V(OnePointerFillerMap) \ | 363 V(OnePointerFillerMap) \ |
| 369 V(TwoPointerFillerMap) \ | 364 V(TwoPointerFillerMap) \ |
| 370 V(UndefinedValue) \ | 365 V(UndefinedValue) \ |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 #undef ROOT_INDEX_DECLARATION | 551 #undef ROOT_INDEX_DECLARATION |
| 557 | 552 |
| 558 #define STRING_INDEX_DECLARATION(name, str) k##name##RootIndex, | 553 #define STRING_INDEX_DECLARATION(name, str) k##name##RootIndex, |
| 559 INTERNALIZED_STRING_LIST(STRING_INDEX_DECLARATION) | 554 INTERNALIZED_STRING_LIST(STRING_INDEX_DECLARATION) |
| 560 #undef STRING_DECLARATION | 555 #undef STRING_DECLARATION |
| 561 | 556 |
| 562 #define SYMBOL_INDEX_DECLARATION(name) k##name##RootIndex, | 557 #define SYMBOL_INDEX_DECLARATION(name) k##name##RootIndex, |
| 563 PRIVATE_SYMBOL_LIST(SYMBOL_INDEX_DECLARATION) | 558 PRIVATE_SYMBOL_LIST(SYMBOL_INDEX_DECLARATION) |
| 564 #undef SYMBOL_INDEX_DECLARATION | 559 #undef SYMBOL_INDEX_DECLARATION |
| 565 | 560 |
| 566 #define SYMBOL_INDEX_DECLARATION(name, varname, description) k##name##RootIndex, | 561 #define SYMBOL_INDEX_DECLARATION(name, description) k##name##RootIndex, |
| 567 PUBLIC_SYMBOL_LIST(SYMBOL_INDEX_DECLARATION) | 562 PUBLIC_SYMBOL_LIST(SYMBOL_INDEX_DECLARATION) |
| 568 #undef SYMBOL_INDEX_DECLARATION | 563 #undef SYMBOL_INDEX_DECLARATION |
| 569 | 564 |
| 570 // Utility type maps | 565 // Utility type maps |
| 571 #define DECLARE_STRUCT_MAP(NAME, Name, name) k##Name##MapRootIndex, | 566 #define DECLARE_STRUCT_MAP(NAME, Name, name) k##Name##MapRootIndex, |
| 572 STRUCT_LIST(DECLARE_STRUCT_MAP) | 567 STRUCT_LIST(DECLARE_STRUCT_MAP) |
| 573 #undef DECLARE_STRUCT_MAP | 568 #undef DECLARE_STRUCT_MAP |
| 574 kStringTableRootIndex, | 569 kStringTableRootIndex, |
| 575 | 570 |
| 576 #define ROOT_INDEX_DECLARATION(type, name, camel_name) k##camel_name##RootIndex, | 571 #define ROOT_INDEX_DECLARATION(type, name, camel_name) k##camel_name##RootIndex, |
| (...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1191 #undef STRUCT_MAP_ACCESSOR | 1186 #undef STRUCT_MAP_ACCESSOR |
| 1192 | 1187 |
| 1193 #define STRING_ACCESSOR(name, str) inline String* name(); | 1188 #define STRING_ACCESSOR(name, str) inline String* name(); |
| 1194 INTERNALIZED_STRING_LIST(STRING_ACCESSOR) | 1189 INTERNALIZED_STRING_LIST(STRING_ACCESSOR) |
| 1195 #undef STRING_ACCESSOR | 1190 #undef STRING_ACCESSOR |
| 1196 | 1191 |
| 1197 #define SYMBOL_ACCESSOR(name) inline Symbol* name(); | 1192 #define SYMBOL_ACCESSOR(name) inline Symbol* name(); |
| 1198 PRIVATE_SYMBOL_LIST(SYMBOL_ACCESSOR) | 1193 PRIVATE_SYMBOL_LIST(SYMBOL_ACCESSOR) |
| 1199 #undef SYMBOL_ACCESSOR | 1194 #undef SYMBOL_ACCESSOR |
| 1200 | 1195 |
| 1201 #define SYMBOL_ACCESSOR(name, varname, description) inline Symbol* name(); | 1196 #define SYMBOL_ACCESSOR(name, description) inline Symbol* name(); |
| 1202 PUBLIC_SYMBOL_LIST(SYMBOL_ACCESSOR) | 1197 PUBLIC_SYMBOL_LIST(SYMBOL_ACCESSOR) |
| 1203 #undef SYMBOL_ACCESSOR | 1198 #undef SYMBOL_ACCESSOR |
| 1204 | 1199 |
| 1205 Object* root(RootListIndex index) { return roots_[index]; } | 1200 Object* root(RootListIndex index) { return roots_[index]; } |
| 1206 Handle<Object> root_handle(RootListIndex index) { | 1201 Handle<Object> root_handle(RootListIndex index) { |
| 1207 return Handle<Object>(&roots_[index]); | 1202 return Handle<Object>(&roots_[index]); |
| 1208 } | 1203 } |
| 1209 | 1204 |
| 1210 // Generated code can embed this address to get access to the roots. | 1205 // Generated code can embed this address to get access to the roots. |
| 1211 Object** roots_array_start() { return roots_; } | 1206 Object** roots_array_start() { return roots_; } |
| (...skipping 1587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2799 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. | 2794 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. |
| 2800 | 2795 |
| 2801 private: | 2796 private: |
| 2802 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); | 2797 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); |
| 2803 }; | 2798 }; |
| 2804 #endif // DEBUG | 2799 #endif // DEBUG |
| 2805 } | 2800 } |
| 2806 } // namespace v8::internal | 2801 } // namespace v8::internal |
| 2807 | 2802 |
| 2808 #endif // V8_HEAP_HEAP_H_ | 2803 #endif // V8_HEAP_HEAP_H_ |
| OLD | NEW |