@@ -237,13 +237,17 @@ uint64_t Environment::AllocateThreadId() {
237237
238238Environment::Environment (IsolateData* isolate_data,
239239 Local<Context> context,
240+ const std::vector<std::string>& args,
241+ const std::vector<std::string>& exec_args,
240242 Flags flags,
241243 uint64_t thread_id)
242244 : isolate_(context->GetIsolate ()),
243245 isolate_data_(isolate_data),
244246 immediate_info_(context->GetIsolate ()),
245247 tick_info_(context->GetIsolate ()),
246248 timer_base_(uv_now(isolate_data->event_loop ())),
249+ exec_argv_(exec_args),
250+ argv_(args),
247251 should_abort_on_uncaught_toggle_(isolate_, 1 ),
248252 stream_base_state_(isolate_, StreamBase::kNumStreamBaseStateFields ),
249253 flags_(flags),
@@ -306,6 +310,22 @@ Environment::Environment(IsolateData* isolate_data,
306310 performance::NODE_PERFORMANCE_MILESTONE_V8_START,
307311 performance::performance_v8_start);
308312
313+ if (*TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED (
314+ TRACING_CATEGORY_NODE1 (environment)) != 0 ) {
315+ auto traced_value = tracing::TracedValue::Create ();
316+ traced_value->BeginArray (" args" );
317+ for (const std::string& arg : args) traced_value->AppendString (arg);
318+ traced_value->EndArray ();
319+ traced_value->BeginArray (" exec_args" );
320+ for (const std::string& arg : exec_args) traced_value->AppendString (arg);
321+ traced_value->EndArray ();
322+ TRACE_EVENT_NESTABLE_ASYNC_BEGIN1 (TRACING_CATEGORY_NODE1 (environment),
323+ " Environment" ,
324+ this ,
325+ " args" ,
326+ std::move (traced_value));
327+ }
328+
309329 // By default, always abort when --abort-on-uncaught-exception was passed.
310330 should_abort_on_uncaught_toggle_[0 ] = 1 ;
311331
@@ -318,6 +338,8 @@ Environment::Environment(IsolateData* isolate_data,
318338 if (options_->no_force_async_hooks_checks ) {
319339 async_hooks_.no_force_checks ();
320340 }
341+
342+ set_process_object (node::CreateProcessObject (this ).ToLocalChecked ());
321343}
322344
323345CompileFnEntry::CompileFnEntry (Environment* env, uint32_t id)
@@ -434,35 +456,6 @@ void Environment::ExitEnv() {
434456 isolate_->TerminateExecution ();
435457}
436458
437- MaybeLocal<Object> Environment::ProcessCliArgs (
438- const std::vector<std::string>& args,
439- const std::vector<std::string>& exec_args) {
440- argv_ = args;
441- exec_argv_ = exec_args;
442-
443- if (*TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED (
444- TRACING_CATEGORY_NODE1 (environment)) != 0 ) {
445- auto traced_value = tracing::TracedValue::Create ();
446- traced_value->BeginArray (" args" );
447- for (const std::string& arg : args) traced_value->AppendString (arg);
448- traced_value->EndArray ();
449- traced_value->BeginArray (" exec_args" );
450- for (const std::string& arg : exec_args) traced_value->AppendString (arg);
451- traced_value->EndArray ();
452- TRACE_EVENT_NESTABLE_ASYNC_BEGIN1 (TRACING_CATEGORY_NODE1 (environment),
453- " Environment" ,
454- this ,
455- " args" ,
456- std::move (traced_value));
457- }
458-
459- Local<Object> process_object =
460- node::CreateProcessObject (this , args, exec_args)
461- .FromMaybe (Local<Object>());
462- set_process_object (process_object);
463- return process_object;
464- }
465-
466459void Environment::RegisterHandleCleanups () {
467460 HandleCleanupCb close_and_finish = [](Environment* env, uv_handle_t * handle,
468461 void * arg) {
0 commit comments