@@ -237,13 +237,17 @@ uint64_t Environment::AllocateThreadId() {
237
237
238
238
Environment::Environment (IsolateData* isolate_data,
239
239
Local<Context> context,
240
+ const std::vector<std::string>& args,
241
+ const std::vector<std::string>& exec_args,
240
242
Flags flags,
241
243
uint64_t thread_id)
242
244
: isolate_(context->GetIsolate ()),
243
245
isolate_data_(isolate_data),
244
246
immediate_info_(context->GetIsolate ()),
245
247
tick_info_(context->GetIsolate ()),
246
248
timer_base_(uv_now(isolate_data->event_loop ())),
249
+ exec_argv_(exec_args),
250
+ argv_(args),
247
251
should_abort_on_uncaught_toggle_(isolate_, 1 ),
248
252
stream_base_state_(isolate_, StreamBase::kNumStreamBaseStateFields ),
249
253
flags_(flags),
@@ -306,6 +310,22 @@ Environment::Environment(IsolateData* isolate_data,
306
310
performance::NODE_PERFORMANCE_MILESTONE_V8_START,
307
311
performance::performance_v8_start);
308
312
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
+
309
329
// By default, always abort when --abort-on-uncaught-exception was passed.
310
330
should_abort_on_uncaught_toggle_[0 ] = 1 ;
311
331
@@ -318,6 +338,8 @@ Environment::Environment(IsolateData* isolate_data,
318
338
if (options_->no_force_async_hooks_checks ) {
319
339
async_hooks_.no_force_checks ();
320
340
}
341
+
342
+ set_process_object (node::CreateProcessObject (this ).ToLocalChecked ());
321
343
}
322
344
323
345
CompileFnEntry::CompileFnEntry (Environment* env, uint32_t id)
@@ -434,35 +456,6 @@ void Environment::ExitEnv() {
434
456
isolate_->TerminateExecution ();
435
457
}
436
458
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
-
466
459
void Environment::RegisterHandleCleanups () {
467
460
HandleCleanupCb close_and_finish = [](Environment* env, uv_handle_t * handle,
468
461
void * arg) {
0 commit comments