| 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 #include "src/isolate.h" | 5 #include "src/isolate.h" |
| 6 | 6 |
| 7 #include <stdlib.h> | 7 #include <stdlib.h> |
| 8 | 8 |
| 9 #include <fstream> // NOLINT(readability/streams) | 9 #include <fstream> // NOLINT(readability/streams) |
| 10 #include <sstream> | 10 #include <sstream> |
| 11 | 11 |
| 12 #include "src/ast/ast-value-factory.h" |
| 12 #include "src/ast/context-slot-cache.h" | 13 #include "src/ast/context-slot-cache.h" |
| 13 #include "src/base/hashmap.h" | 14 #include "src/base/hashmap.h" |
| 14 #include "src/base/platform/platform.h" | 15 #include "src/base/platform/platform.h" |
| 15 #include "src/base/sys-info.h" | 16 #include "src/base/sys-info.h" |
| 16 #include "src/base/utils/random-number-generator.h" | 17 #include "src/base/utils/random-number-generator.h" |
| 17 #include "src/basic-block-profiler.h" | 18 #include "src/basic-block-profiler.h" |
| 18 #include "src/bootstrapper.h" | 19 #include "src/bootstrapper.h" |
| 19 #include "src/cancelable-task.h" | 20 #include "src/cancelable-task.h" |
| 20 #include "src/codegen.h" | 21 #include "src/codegen.h" |
| 21 #include "src/compilation-cache.h" | 22 #include "src/compilation-cache.h" |
| (...skipping 2346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2368 compiler_dispatcher_ = nullptr; | 2369 compiler_dispatcher_ = nullptr; |
| 2369 | 2370 |
| 2370 cancelable_task_manager()->CancelAndWait(); | 2371 cancelable_task_manager()->CancelAndWait(); |
| 2371 | 2372 |
| 2372 heap_.TearDown(); | 2373 heap_.TearDown(); |
| 2373 logger_->TearDown(); | 2374 logger_->TearDown(); |
| 2374 | 2375 |
| 2375 delete interpreter_; | 2376 delete interpreter_; |
| 2376 interpreter_ = NULL; | 2377 interpreter_ = NULL; |
| 2377 | 2378 |
| 2379 delete ast_string_constants_; |
| 2380 ast_string_constants_ = nullptr; |
| 2381 |
| 2378 delete cpu_profiler_; | 2382 delete cpu_profiler_; |
| 2379 cpu_profiler_ = NULL; | 2383 cpu_profiler_ = NULL; |
| 2380 | 2384 |
| 2381 code_event_dispatcher_.reset(); | 2385 code_event_dispatcher_.reset(); |
| 2382 | 2386 |
| 2383 delete root_index_map_; | 2387 delete root_index_map_; |
| 2384 root_index_map_ = NULL; | 2388 root_index_map_ = NULL; |
| 2385 | 2389 |
| 2386 ClearSerializerData(); | 2390 ClearSerializerData(); |
| 2387 } | 2391 } |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2691 Internals::kIsolateEmbedderDataOffset); | 2695 Internals::kIsolateEmbedderDataOffset); |
| 2692 CHECK_EQ(static_cast<int>(OFFSET_OF(Isolate, heap_.roots_)), | 2696 CHECK_EQ(static_cast<int>(OFFSET_OF(Isolate, heap_.roots_)), |
| 2693 Internals::kIsolateRootsOffset); | 2697 Internals::kIsolateRootsOffset); |
| 2694 CHECK_EQ(static_cast<int>(OFFSET_OF(Isolate, heap_.external_memory_)), | 2698 CHECK_EQ(static_cast<int>(OFFSET_OF(Isolate, heap_.external_memory_)), |
| 2695 Internals::kExternalMemoryOffset); | 2699 Internals::kExternalMemoryOffset); |
| 2696 CHECK_EQ(static_cast<int>(OFFSET_OF(Isolate, heap_.external_memory_limit_)), | 2700 CHECK_EQ(static_cast<int>(OFFSET_OF(Isolate, heap_.external_memory_limit_)), |
| 2697 Internals::kExternalMemoryLimitOffset); | 2701 Internals::kExternalMemoryLimitOffset); |
| 2698 | 2702 |
| 2699 time_millis_at_init_ = heap_.MonotonicallyIncreasingTimeInMs(); | 2703 time_millis_at_init_ = heap_.MonotonicallyIncreasingTimeInMs(); |
| 2700 | 2704 |
| 2705 { |
| 2706 HandleScope scope(this); |
| 2707 ast_string_constants_ = new AstStringConstants(this, heap()->HashSeed()); |
| 2708 } |
| 2709 |
| 2701 if (!create_heap_objects) { | 2710 if (!create_heap_objects) { |
| 2702 // Now that the heap is consistent, it's OK to generate the code for the | 2711 // Now that the heap is consistent, it's OK to generate the code for the |
| 2703 // deopt entry table that might have been referred to by optimized code in | 2712 // deopt entry table that might have been referred to by optimized code in |
| 2704 // the snapshot. | 2713 // the snapshot. |
| 2705 HandleScope scope(this); | 2714 HandleScope scope(this); |
| 2706 Deoptimizer::EnsureCodeForDeoptimizationEntry( | 2715 Deoptimizer::EnsureCodeForDeoptimizationEntry( |
| 2707 this, Deoptimizer::LAZY, | 2716 this, Deoptimizer::LAZY, |
| 2708 ExternalReferenceTable::kDeoptTableSerializeEntryCount - 1); | 2717 ExternalReferenceTable::kDeoptTableSerializeEntryCount - 1); |
| 2709 } | 2718 } |
| 2710 | 2719 |
| (...skipping 940 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3651 // Then check whether this scope intercepts. | 3660 // Then check whether this scope intercepts. |
| 3652 if ((flag & intercept_mask_)) { | 3661 if ((flag & intercept_mask_)) { |
| 3653 intercepted_flags_ |= flag; | 3662 intercepted_flags_ |= flag; |
| 3654 return true; | 3663 return true; |
| 3655 } | 3664 } |
| 3656 return false; | 3665 return false; |
| 3657 } | 3666 } |
| 3658 | 3667 |
| 3659 } // namespace internal | 3668 } // namespace internal |
| 3660 } // namespace v8 | 3669 } // namespace v8 |
| OLD | NEW |