| // Copyright 2017 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "src/setup-isolate.h" |
| |
| #include "src/base/logging.h" |
| #include "src/heap/heap-inl.h" |
| #include "src/interpreter/interpreter.h" |
| #include "src/interpreter/setup-interpreter.h" |
| #include "src/isolate.h" |
| |
| namespace v8 { |
| namespace internal { |
| |
| void SetupIsolateDelegate::SetupBuiltins(Isolate* isolate) { |
| if (create_heap_objects_) { |
| SetupBuiltinsInternal(isolate); |
| } else { |
| CHECK(isolate->snapshot_available()); |
| } |
| } |
| |
| void SetupIsolateDelegate::SetupInterpreter( |
| interpreter::Interpreter* interpreter) { |
| if (create_heap_objects_) { |
| interpreter::SetupInterpreter::InstallBytecodeHandlers(interpreter); |
| } else { |
| CHECK(interpreter->IsDispatchTableInitialized()); |
| } |
| } |
| |
| bool SetupIsolateDelegate::SetupHeap(Heap* heap) { |
| if (create_heap_objects_) { |
| return SetupHeapInternal(heap); |
| } else { |
| CHECK(heap->isolate()->snapshot_available()); |
| return true; |
| } |
| } |
| |
| } // namespace internal |
| } // namespace v8 |