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 1455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1466 capture_stack_trace_for_uncaught_exceptions_(false), | 1466 capture_stack_trace_for_uncaught_exceptions_(false), |
1467 stack_trace_for_uncaught_exceptions_frame_limit_(0), | 1467 stack_trace_for_uncaught_exceptions_frame_limit_(0), |
1468 stack_trace_for_uncaught_exceptions_options_(StackTrace::kOverview), | 1468 stack_trace_for_uncaught_exceptions_options_(StackTrace::kOverview), |
1469 transcendental_cache_(NULL), | 1469 transcendental_cache_(NULL), |
1470 memory_allocator_(NULL), | 1470 memory_allocator_(NULL), |
1471 keyed_lookup_cache_(NULL), | 1471 keyed_lookup_cache_(NULL), |
1472 context_slot_cache_(NULL), | 1472 context_slot_cache_(NULL), |
1473 descriptor_lookup_cache_(NULL), | 1473 descriptor_lookup_cache_(NULL), |
1474 handle_scope_implementer_(NULL), | 1474 handle_scope_implementer_(NULL), |
1475 unicode_cache_(NULL), | 1475 unicode_cache_(NULL), |
| 1476 runtime_zone_(this), |
1476 in_use_list_(0), | 1477 in_use_list_(0), |
1477 free_list_(0), | 1478 free_list_(0), |
1478 preallocated_storage_preallocated_(false), | 1479 preallocated_storage_preallocated_(false), |
1479 inner_pointer_to_code_cache_(NULL), | 1480 inner_pointer_to_code_cache_(NULL), |
1480 write_input_buffer_(NULL), | 1481 write_input_buffer_(NULL), |
1481 global_handles_(NULL), | 1482 global_handles_(NULL), |
1482 context_switcher_(NULL), | 1483 context_switcher_(NULL), |
1483 thread_manager_(NULL), | 1484 thread_manager_(NULL), |
1484 fp_stubs_generated_(false), | 1485 fp_stubs_generated_(false), |
1485 has_installed_extensions_(false), | 1486 has_installed_extensions_(false), |
1486 string_tracker_(NULL), | 1487 string_tracker_(NULL), |
1487 regexp_stack_(NULL), | 1488 regexp_stack_(NULL), |
1488 date_cache_(NULL), | 1489 date_cache_(NULL), |
1489 context_exit_happened_(false) { | 1490 context_exit_happened_(false) { |
1490 TRACE_ISOLATE(constructor); | 1491 TRACE_ISOLATE(constructor); |
1491 | 1492 |
1492 memset(isolate_addresses_, 0, | 1493 memset(isolate_addresses_, 0, |
1493 sizeof(isolate_addresses_[0]) * (kIsolateAddressCount + 1)); | 1494 sizeof(isolate_addresses_[0]) * (kIsolateAddressCount + 1)); |
1494 | 1495 |
1495 heap_.isolate_ = this; | 1496 heap_.isolate_ = this; |
1496 zone_.isolate_ = this; | |
1497 stack_guard_.isolate_ = this; | 1497 stack_guard_.isolate_ = this; |
1498 | 1498 |
1499 // ThreadManager is initialized early to support locking an isolate | 1499 // ThreadManager is initialized early to support locking an isolate |
1500 // before it is entered. | 1500 // before it is entered. |
1501 thread_manager_ = new ThreadManager(); | 1501 thread_manager_ = new ThreadManager(); |
1502 thread_manager_->isolate_ = this; | 1502 thread_manager_->isolate_ = this; |
1503 | 1503 |
1504 #if defined(V8_TARGET_ARCH_ARM) && !defined(__arm__) || \ | 1504 #if defined(V8_TARGET_ARCH_ARM) && !defined(__arm__) || \ |
1505 defined(V8_TARGET_ARCH_MIPS) && !defined(__mips__) | 1505 defined(V8_TARGET_ARCH_MIPS) && !defined(__mips__) |
1506 simulator_initialized_ = false; | 1506 simulator_initialized_ = false; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1602 PerIsolateThreadData* data) { | 1602 PerIsolateThreadData* data) { |
1603 Thread::SetThreadLocal(isolate_key_, isolate); | 1603 Thread::SetThreadLocal(isolate_key_, isolate); |
1604 Thread::SetThreadLocal(per_isolate_thread_data_key_, data); | 1604 Thread::SetThreadLocal(per_isolate_thread_data_key_, data); |
1605 } | 1605 } |
1606 | 1606 |
1607 | 1607 |
1608 Isolate::~Isolate() { | 1608 Isolate::~Isolate() { |
1609 TRACE_ISOLATE(destructor); | 1609 TRACE_ISOLATE(destructor); |
1610 | 1610 |
1611 // Has to be called while counters_ are still alive. | 1611 // Has to be called while counters_ are still alive. |
1612 zone_.DeleteKeptSegment(); | 1612 runtime_zone_.DeleteKeptSegment(); |
1613 | 1613 |
1614 delete[] assembler_spare_buffer_; | 1614 delete[] assembler_spare_buffer_; |
1615 assembler_spare_buffer_ = NULL; | 1615 assembler_spare_buffer_ = NULL; |
1616 | 1616 |
1617 delete unicode_cache_; | 1617 delete unicode_cache_; |
1618 unicode_cache_ = NULL; | 1618 unicode_cache_ = NULL; |
1619 | 1619 |
1620 delete date_cache_; | 1620 delete date_cache_; |
1621 date_cache_ = NULL; | 1621 date_cache_ = NULL; |
1622 | 1622 |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1774 transcendental_cache_ = new TranscendentalCache(); | 1774 transcendental_cache_ = new TranscendentalCache(); |
1775 keyed_lookup_cache_ = new KeyedLookupCache(); | 1775 keyed_lookup_cache_ = new KeyedLookupCache(); |
1776 context_slot_cache_ = new ContextSlotCache(); | 1776 context_slot_cache_ = new ContextSlotCache(); |
1777 descriptor_lookup_cache_ = new DescriptorLookupCache(); | 1777 descriptor_lookup_cache_ = new DescriptorLookupCache(); |
1778 unicode_cache_ = new UnicodeCache(); | 1778 unicode_cache_ = new UnicodeCache(); |
1779 inner_pointer_to_code_cache_ = new InnerPointerToCodeCache(this); | 1779 inner_pointer_to_code_cache_ = new InnerPointerToCodeCache(this); |
1780 write_input_buffer_ = new StringInputBuffer(); | 1780 write_input_buffer_ = new StringInputBuffer(); |
1781 global_handles_ = new GlobalHandles(this); | 1781 global_handles_ = new GlobalHandles(this); |
1782 bootstrapper_ = new Bootstrapper(); | 1782 bootstrapper_ = new Bootstrapper(); |
1783 handle_scope_implementer_ = new HandleScopeImplementer(this); | 1783 handle_scope_implementer_ = new HandleScopeImplementer(this); |
1784 stub_cache_ = new StubCache(this, zone()); | 1784 stub_cache_ = new StubCache(this, runtime_zone()); |
1785 regexp_stack_ = new RegExpStack(); | 1785 regexp_stack_ = new RegExpStack(); |
1786 regexp_stack_->isolate_ = this; | 1786 regexp_stack_->isolate_ = this; |
1787 date_cache_ = new DateCache(); | 1787 date_cache_ = new DateCache(); |
1788 | 1788 |
1789 // Enable logging before setting up the heap | 1789 // Enable logging before setting up the heap |
1790 logger_->SetUp(); | 1790 logger_->SetUp(); |
1791 | 1791 |
1792 CpuProfiler::SetUp(); | 1792 CpuProfiler::SetUp(); |
1793 HeapProfiler::SetUp(); | 1793 HeapProfiler::SetUp(); |
1794 | 1794 |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1964 | 1964 |
1965 #ifdef DEBUG | 1965 #ifdef DEBUG |
1966 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ | 1966 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ |
1967 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); | 1967 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); |
1968 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) | 1968 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) |
1969 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) | 1969 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) |
1970 #undef ISOLATE_FIELD_OFFSET | 1970 #undef ISOLATE_FIELD_OFFSET |
1971 #endif | 1971 #endif |
1972 | 1972 |
1973 } } // namespace v8::internal | 1973 } } // namespace v8::internal |
OLD | NEW |