@@ -289,29 +289,10 @@ Environment::~Environment() {
289289 }
290290}
291291
292- void Environment::Start (const std::vector<std::string>& args,
293- const std::vector<std::string>& exec_args,
294- bool start_profiler_idle_notifier) {
292+ void Environment::Start (bool start_profiler_idle_notifier) {
295293 HandleScope handle_scope (isolate ());
296294 Context::Scope context_scope (context ());
297295
298- if (*TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED (
299- TRACING_CATEGORY_NODE1 (environment)) != 0 ) {
300- auto traced_value = tracing::TracedValue::Create ();
301- traced_value->BeginArray (" args" );
302- for (const std::string& arg : args)
303- traced_value->AppendString (arg);
304- traced_value->EndArray ();
305- traced_value->BeginArray (" exec_args" );
306- for (const std::string& arg : exec_args)
307- traced_value->AppendString (arg);
308- traced_value->EndArray ();
309- TRACE_EVENT_NESTABLE_ASYNC_BEGIN1 (
310- TRACING_CATEGORY_NODE1 (environment),
311- " Environment" , this ,
312- " args" , std::move (traced_value));
313- }
314-
315296 CHECK_EQ (0 , uv_timer_init (event_loop (), timer_handle ()));
316297 uv_unref (reinterpret_cast <uv_handle_t *>(timer_handle ()));
317298
@@ -346,14 +327,37 @@ void Environment::Start(const std::vector<std::string>& args,
346327 StartProfilerIdleNotifier ();
347328 }
348329
349- Local<Object> process_object = CreateProcessObject (this , args, exec_args);
350- set_process_object (process_object);
351-
352330 static uv_once_t init_once = UV_ONCE_INIT;
353331 uv_once (&init_once, InitThreadLocalOnce);
354332 uv_key_set (&thread_local_env, this );
355333}
356334
335+ MaybeLocal<Object> Environment::CreateProcessObject (
336+ const std::vector<std::string>& args,
337+ const std::vector<std::string>& exec_args) {
338+ if (*TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED (
339+ TRACING_CATEGORY_NODE1 (environment)) != 0 ) {
340+ auto traced_value = tracing::TracedValue::Create ();
341+ traced_value->BeginArray (" args" );
342+ for (const std::string& arg : args) traced_value->AppendString (arg);
343+ traced_value->EndArray ();
344+ traced_value->BeginArray (" exec_args" );
345+ for (const std::string& arg : exec_args) traced_value->AppendString (arg);
346+ traced_value->EndArray ();
347+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN1 (TRACING_CATEGORY_NODE1 (environment),
348+ " Environment" ,
349+ this ,
350+ " args" ,
351+ std::move (traced_value));
352+ }
353+
354+ Local<Object> process_object =
355+ node::CreateProcessObject (this , args, exec_args)
356+ .FromMaybe (Local<Object>());
357+ set_process_object (process_object);
358+ return process_object;
359+ }
360+
357361void Environment::RegisterHandleCleanups () {
358362 HandleCleanupCb close_and_finish = [](Environment* env, uv_handle_t * handle,
359363 void * arg) {
0 commit comments