OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 Address js_entry_sp_; // the stack pointer of the bottom js entry frame | 248 Address js_entry_sp_; // the stack pointer of the bottom js entry frame |
249 Address external_callback_; // the external callback we're currently in | 249 Address external_callback_; // the external callback we're currently in |
250 StateTag current_vm_state_; | 250 StateTag current_vm_state_; |
251 | 251 |
252 // Generated code scratch locations. | 252 // Generated code scratch locations. |
253 int32_t formal_count_; | 253 int32_t formal_count_; |
254 | 254 |
255 // Call back function to report unsafe JS accesses. | 255 // Call back function to report unsafe JS accesses. |
256 v8::FailedAccessCheckCallback failed_access_check_callback_; | 256 v8::FailedAccessCheckCallback failed_access_check_callback_; |
257 | 257 |
| 258 // Head of the list of live LookupResults. |
| 259 LookupResult* top_lookup_result_; |
| 260 |
258 // Whether out of memory exceptions should be ignored. | 261 // Whether out of memory exceptions should be ignored. |
259 bool ignore_out_of_memory_; | 262 bool ignore_out_of_memory_; |
260 | 263 |
261 private: | 264 private: |
262 void InitializeInternal(); | 265 void InitializeInternal(); |
263 | 266 |
264 Address try_catch_handler_address_; | 267 Address try_catch_handler_address_; |
265 }; | 268 }; |
266 | 269 |
267 #if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_MIPS) | 270 #if defined(V8_TARGET_ARCH_ARM) || defined(V8_TARGET_ARCH_MIPS) |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
304 | 307 |
305 #endif | 308 #endif |
306 | 309 |
307 #define ISOLATE_INIT_ARRAY_LIST(V) \ | 310 #define ISOLATE_INIT_ARRAY_LIST(V) \ |
308 /* SerializerDeserializer state. */ \ | 311 /* SerializerDeserializer state. */ \ |
309 V(Object*, serialize_partial_snapshot_cache, kPartialSnapshotCacheCapacity) \ | 312 V(Object*, serialize_partial_snapshot_cache, kPartialSnapshotCacheCapacity) \ |
310 V(int, jsregexp_static_offsets_vector, kJSRegexpStaticOffsetsVectorSize) \ | 313 V(int, jsregexp_static_offsets_vector, kJSRegexpStaticOffsetsVectorSize) \ |
311 V(int, bad_char_shift_table, kUC16AlphabetSize) \ | 314 V(int, bad_char_shift_table, kUC16AlphabetSize) \ |
312 V(int, good_suffix_shift_table, (kBMMaxShift + 1)) \ | 315 V(int, good_suffix_shift_table, (kBMMaxShift + 1)) \ |
313 V(int, suffix_table, (kBMMaxShift + 1)) \ | 316 V(int, suffix_table, (kBMMaxShift + 1)) \ |
314 V(uint32_t, random_seed, 2) \ | |
315 V(uint32_t, private_random_seed, 2) \ | 317 V(uint32_t, private_random_seed, 2) \ |
316 ISOLATE_INIT_DEBUG_ARRAY_LIST(V) | 318 ISOLATE_INIT_DEBUG_ARRAY_LIST(V) |
317 | 319 |
318 typedef List<HeapObject*, PreallocatedStorage> DebugObjectCache; | 320 typedef List<HeapObject*, PreallocatedStorage> DebugObjectCache; |
319 | 321 |
320 #define ISOLATE_INIT_LIST(V) \ | 322 #define ISOLATE_INIT_LIST(V) \ |
321 /* AssertNoZoneAllocation state. */ \ | 323 /* AssertNoZoneAllocation state. */ \ |
322 V(bool, zone_allow_allocation, true) \ | 324 V(bool, zone_allow_allocation, true) \ |
323 /* SerializerDeserializer state. */ \ | 325 /* SerializerDeserializer state. */ \ |
324 V(int, serialize_partial_snapshot_cache_length, 0) \ | 326 V(int, serialize_partial_snapshot_cache_length, 0) \ |
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
988 // in JS or not. | 990 // in JS or not. |
989 ASSERT((current_state == JS) == (state == JS)); | 991 ASSERT((current_state == JS) == (state == JS)); |
990 } | 992 } |
991 } | 993 } |
992 thread_local_top_.current_vm_state_ = state; | 994 thread_local_top_.current_vm_state_ = state; |
993 } | 995 } |
994 | 996 |
995 void SetData(void* data) { embedder_data_ = data; } | 997 void SetData(void* data) { embedder_data_ = data; } |
996 void* GetData() { return embedder_data_; } | 998 void* GetData() { return embedder_data_; } |
997 | 999 |
| 1000 LookupResult* top_lookup_result() { |
| 1001 return thread_local_top_.top_lookup_result_; |
| 1002 } |
| 1003 void SetTopLookupResult(LookupResult* top) { |
| 1004 thread_local_top_.top_lookup_result_ = top; |
| 1005 } |
| 1006 |
998 private: | 1007 private: |
999 Isolate(); | 1008 Isolate(); |
1000 | 1009 |
1001 // The per-process lock should be acquired before the ThreadDataTable is | 1010 // The per-process lock should be acquired before the ThreadDataTable is |
1002 // modified. | 1011 // modified. |
1003 class ThreadDataTable { | 1012 class ThreadDataTable { |
1004 public: | 1013 public: |
1005 ThreadDataTable(); | 1014 ThreadDataTable(); |
1006 ~ThreadDataTable(); | 1015 ~ThreadDataTable(); |
1007 | 1016 |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1350 | 1359 |
1351 // Mark the global context with out of memory. | 1360 // Mark the global context with out of memory. |
1352 inline void Context::mark_out_of_memory() { | 1361 inline void Context::mark_out_of_memory() { |
1353 global_context()->set_out_of_memory(HEAP->true_value()); | 1362 global_context()->set_out_of_memory(HEAP->true_value()); |
1354 } | 1363 } |
1355 | 1364 |
1356 | 1365 |
1357 } } // namespace v8::internal | 1366 } } // namespace v8::internal |
1358 | 1367 |
1359 #endif // V8_ISOLATE_H_ | 1368 #endif // V8_ISOLATE_H_ |
OLD | NEW |