OLD | NEW |
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 1005 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1016 void SetData(void* data) { embedder_data_ = data; } | 1016 void SetData(void* data) { embedder_data_ = data; } |
1017 void* GetData() { return embedder_data_; } | 1017 void* GetData() { return embedder_data_; } |
1018 | 1018 |
1019 LookupResult* top_lookup_result() { | 1019 LookupResult* top_lookup_result() { |
1020 return thread_local_top_.top_lookup_result_; | 1020 return thread_local_top_.top_lookup_result_; |
1021 } | 1021 } |
1022 void SetTopLookupResult(LookupResult* top) { | 1022 void SetTopLookupResult(LookupResult* top) { |
1023 thread_local_top_.top_lookup_result_ = top; | 1023 thread_local_top_.top_lookup_result_ = top; |
1024 } | 1024 } |
1025 | 1025 |
| 1026 bool context_exit_happened() { |
| 1027 return context_exit_happened_; |
| 1028 } |
| 1029 void set_context_exit_happened(bool context_exit_happened) { |
| 1030 context_exit_happened_ = context_exit_happened; |
| 1031 } |
| 1032 |
1026 private: | 1033 private: |
1027 Isolate(); | 1034 Isolate(); |
1028 | 1035 |
1029 // The per-process lock should be acquired before the ThreadDataTable is | 1036 // The per-process lock should be acquired before the ThreadDataTable is |
1030 // modified. | 1037 // modified. |
1031 class ThreadDataTable { | 1038 class ThreadDataTable { |
1032 public: | 1039 public: |
1033 ThreadDataTable(); | 1040 ThreadDataTable(); |
1034 ~ThreadDataTable(); | 1041 ~ThreadDataTable(); |
1035 | 1042 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1181 unibrow::Mapping<unibrow::CanonicalizationRange> jsregexp_canonrange_; | 1188 unibrow::Mapping<unibrow::CanonicalizationRange> jsregexp_canonrange_; |
1182 StringInputBuffer objects_string_compare_buffer_a_; | 1189 StringInputBuffer objects_string_compare_buffer_a_; |
1183 StringInputBuffer objects_string_compare_buffer_b_; | 1190 StringInputBuffer objects_string_compare_buffer_b_; |
1184 StaticResource<StringInputBuffer> objects_string_input_buffer_; | 1191 StaticResource<StringInputBuffer> objects_string_input_buffer_; |
1185 unibrow::Mapping<unibrow::Ecma262Canonicalize> | 1192 unibrow::Mapping<unibrow::Ecma262Canonicalize> |
1186 regexp_macro_assembler_canonicalize_; | 1193 regexp_macro_assembler_canonicalize_; |
1187 RegExpStack* regexp_stack_; | 1194 RegExpStack* regexp_stack_; |
1188 unibrow::Mapping<unibrow::Ecma262Canonicalize> interp_canonicalize_mapping_; | 1195 unibrow::Mapping<unibrow::Ecma262Canonicalize> interp_canonicalize_mapping_; |
1189 void* embedder_data_; | 1196 void* embedder_data_; |
1190 | 1197 |
| 1198 // The garbage collector should be a little more aggressive when it knows |
| 1199 // that a context was recently exited. |
| 1200 bool context_exit_happened_; |
| 1201 |
1191 #if defined(V8_TARGET_ARCH_ARM) && !defined(__arm__) || \ | 1202 #if defined(V8_TARGET_ARCH_ARM) && !defined(__arm__) || \ |
1192 defined(V8_TARGET_ARCH_MIPS) && !defined(__mips__) | 1203 defined(V8_TARGET_ARCH_MIPS) && !defined(__mips__) |
1193 bool simulator_initialized_; | 1204 bool simulator_initialized_; |
1194 HashMap* simulator_i_cache_; | 1205 HashMap* simulator_i_cache_; |
1195 Redirection* simulator_redirection_; | 1206 Redirection* simulator_redirection_; |
1196 #endif | 1207 #endif |
1197 | 1208 |
1198 #ifdef DEBUG | 1209 #ifdef DEBUG |
1199 // A static array of histogram info for each type. | 1210 // A static array of histogram info for each type. |
1200 HistogramInfo heap_histograms_[LAST_TYPE + 1]; | 1211 HistogramInfo heap_histograms_[LAST_TYPE + 1]; |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1379 | 1390 |
1380 // Mark the global context with out of memory. | 1391 // Mark the global context with out of memory. |
1381 inline void Context::mark_out_of_memory() { | 1392 inline void Context::mark_out_of_memory() { |
1382 global_context()->set_out_of_memory(HEAP->true_value()); | 1393 global_context()->set_out_of_memory(HEAP->true_value()); |
1383 } | 1394 } |
1384 | 1395 |
1385 | 1396 |
1386 } } // namespace v8::internal | 1397 } } // namespace v8::internal |
1387 | 1398 |
1388 #endif // V8_ISOLATE_H_ | 1399 #endif // V8_ISOLATE_H_ |
OLD | NEW |