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 18 matching lines...) Expand all Loading... |
29 #define V8_ISOLATE_H_ | 29 #define V8_ISOLATE_H_ |
30 | 30 |
31 #include "../include/v8-debug.h" | 31 #include "../include/v8-debug.h" |
32 #include "allocation.h" | 32 #include "allocation.h" |
33 #include "apiutils.h" | 33 #include "apiutils.h" |
34 #include "atomicops.h" | 34 #include "atomicops.h" |
35 #include "builtins.h" | 35 #include "builtins.h" |
36 #include "contexts.h" | 36 #include "contexts.h" |
37 #include "execution.h" | 37 #include "execution.h" |
38 #include "frames.h" | 38 #include "frames.h" |
| 39 #include "date.h" |
39 #include "global-handles.h" | 40 #include "global-handles.h" |
40 #include "handles.h" | 41 #include "handles.h" |
41 #include "hashmap.h" | 42 #include "hashmap.h" |
42 #include "heap.h" | 43 #include "heap.h" |
43 #include "regexp-stack.h" | 44 #include "regexp-stack.h" |
44 #include "runtime-profiler.h" | 45 #include "runtime-profiler.h" |
45 #include "runtime.h" | 46 #include "runtime.h" |
46 #include "zone.h" | 47 #include "zone.h" |
47 | 48 |
48 namespace v8 { | 49 namespace v8 { |
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1010 return context_exit_happened_; | 1011 return context_exit_happened_; |
1011 } | 1012 } |
1012 void set_context_exit_happened(bool context_exit_happened) { | 1013 void set_context_exit_happened(bool context_exit_happened) { |
1013 context_exit_happened_ = context_exit_happened; | 1014 context_exit_happened_ = context_exit_happened; |
1014 } | 1015 } |
1015 | 1016 |
1016 double time_millis_since_init() { | 1017 double time_millis_since_init() { |
1017 return OS::TimeCurrentMillis() - time_millis_at_init_; | 1018 return OS::TimeCurrentMillis() - time_millis_at_init_; |
1018 } | 1019 } |
1019 | 1020 |
| 1021 DateCache* date_cache() { |
| 1022 return date_cache_; |
| 1023 } |
| 1024 |
| 1025 void set_date_cache(DateCache* date_cache) { |
| 1026 if (date_cache != date_cache_) { |
| 1027 delete date_cache_; |
| 1028 } |
| 1029 date_cache_ = date_cache; |
| 1030 } |
| 1031 |
1020 private: | 1032 private: |
1021 Isolate(); | 1033 Isolate(); |
1022 | 1034 |
1023 // The per-process lock should be acquired before the ThreadDataTable is | 1035 // The per-process lock should be acquired before the ThreadDataTable is |
1024 // modified. | 1036 // modified. |
1025 class ThreadDataTable { | 1037 class ThreadDataTable { |
1026 public: | 1038 public: |
1027 ThreadDataTable(); | 1039 ThreadDataTable(); |
1028 ~ThreadDataTable(); | 1040 ~ThreadDataTable(); |
1029 | 1041 |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1177 bool has_installed_extensions_; | 1189 bool has_installed_extensions_; |
1178 StringTracker* string_tracker_; | 1190 StringTracker* string_tracker_; |
1179 unibrow::Mapping<unibrow::Ecma262UnCanonicalize> jsregexp_uncanonicalize_; | 1191 unibrow::Mapping<unibrow::Ecma262UnCanonicalize> jsregexp_uncanonicalize_; |
1180 unibrow::Mapping<unibrow::CanonicalizationRange> jsregexp_canonrange_; | 1192 unibrow::Mapping<unibrow::CanonicalizationRange> jsregexp_canonrange_; |
1181 StringInputBuffer objects_string_compare_buffer_a_; | 1193 StringInputBuffer objects_string_compare_buffer_a_; |
1182 StringInputBuffer objects_string_compare_buffer_b_; | 1194 StringInputBuffer objects_string_compare_buffer_b_; |
1183 StaticResource<StringInputBuffer> objects_string_input_buffer_; | 1195 StaticResource<StringInputBuffer> objects_string_input_buffer_; |
1184 unibrow::Mapping<unibrow::Ecma262Canonicalize> | 1196 unibrow::Mapping<unibrow::Ecma262Canonicalize> |
1185 regexp_macro_assembler_canonicalize_; | 1197 regexp_macro_assembler_canonicalize_; |
1186 RegExpStack* regexp_stack_; | 1198 RegExpStack* regexp_stack_; |
| 1199 |
| 1200 DateCache* date_cache_; |
| 1201 |
1187 unibrow::Mapping<unibrow::Ecma262Canonicalize> interp_canonicalize_mapping_; | 1202 unibrow::Mapping<unibrow::Ecma262Canonicalize> interp_canonicalize_mapping_; |
1188 void* embedder_data_; | 1203 void* embedder_data_; |
1189 | 1204 |
1190 // The garbage collector should be a little more aggressive when it knows | 1205 // The garbage collector should be a little more aggressive when it knows |
1191 // that a context was recently exited. | 1206 // that a context was recently exited. |
1192 bool context_exit_happened_; | 1207 bool context_exit_happened_; |
1193 | 1208 |
1194 // Time stamp at initialization. | 1209 // Time stamp at initialization. |
1195 double time_millis_at_init_; | 1210 double time_millis_at_init_; |
1196 | 1211 |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1382 return global_context()->out_of_memory()->IsTrue(); | 1397 return global_context()->out_of_memory()->IsTrue(); |
1383 } | 1398 } |
1384 | 1399 |
1385 | 1400 |
1386 // Mark the global context with out of memory. | 1401 // Mark the global context with out of memory. |
1387 inline void Context::mark_out_of_memory() { | 1402 inline void Context::mark_out_of_memory() { |
1388 global_context()->set_out_of_memory(HEAP->true_value()); | 1403 global_context()->set_out_of_memory(HEAP->true_value()); |
1389 } | 1404 } |
1390 | 1405 |
1391 | 1406 |
| 1407 |
1392 } } // namespace v8::internal | 1408 } } // namespace v8::internal |
1393 | 1409 |
1394 #endif // V8_ISOLATE_H_ | 1410 #endif // V8_ISOLATE_H_ |
OLD | NEW |