Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index 461aaf0de7d3439bbf64ab51426ab716450e6660..d0cbfb32e44f013d0faa5ea6ed8f86fc4c29fc53 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -18,6 +18,7 @@ |
#include "src/base/utils/random-number-generator.h" |
#include "src/basic-block-profiler.h" |
#include "src/bootstrapper.h" |
+#include "src/builtins/setup-builtins.h" |
#include "src/cancelable-task.h" |
#include "src/codegen.h" |
#include "src/compilation-cache.h" |
@@ -2298,6 +2299,7 @@ Isolate::Isolate(bool enable_serializer) |
global_handles_(NULL), |
eternal_handles_(NULL), |
thread_manager_(NULL), |
+ setup_builtins_delegate_(NULL), |
regexp_stack_(NULL), |
date_cache_(NULL), |
call_descriptor_data_(NULL), |
@@ -2735,7 +2737,12 @@ bool Isolate::Init(Deserializer* des) { |
InitializeThreadLocal(); |
bootstrapper_->Initialize(create_heap_objects); |
- builtins_.SetUp(this, create_heap_objects); |
+ if (setup_builtins_delegate_ == nullptr) { |
+ setup_builtins_delegate_ = new SetupBuiltinsDelegate(); |
+ } |
+ setup_builtins_delegate_->SetupBuiltins(this, create_heap_objects); |
+ delete setup_builtins_delegate_; |
+ setup_builtins_delegate_ = nullptr; |
if (create_heap_objects) heap_.CreateFixedStubs(); |
if (FLAG_log_internal_timer_events) { |