@@ -569,26 +569,30 @@ void Worker::New(const FunctionCallbackInfo<Value>& args) {
569
569
}
570
570
}
571
571
#endif // NODE_WITHOUT_NODE_OPTIONS
572
- }
573
572
574
- if (args[2 ]->IsArray ()) {
575
- Local<Array> array = args[2 ].As <Array>();
576
573
// The first argument is reserved for program name, but we don't need it
577
574
// in workers.
578
575
std::vector<std::string> exec_argv = {" " };
579
- uint32_t length = array->Length ();
580
- for (uint32_t i = 0 ; i < length; i++) {
581
- Local<Value> arg;
582
- if (!array->Get (env->context (), i).ToLocal (&arg)) {
583
- return ;
584
- }
585
- Local<String> arg_v8;
586
- if (!arg->ToString (env->context ()).ToLocal (&arg_v8)) {
587
- return ;
576
+ if (args[2 ]->IsArray ()) {
577
+ Local<Array> array = args[2 ].As <Array>();
578
+ uint32_t length = array->Length ();
579
+ for (uint32_t i = 0 ; i < length; i++) {
580
+ Local<Value> arg;
581
+ if (!array->Get (env->context (), i).ToLocal (&arg)) {
582
+ return ;
583
+ }
584
+ Local<String> arg_v8;
585
+ if (!arg->ToString (env->context ()).ToLocal (&arg_v8)) {
586
+ return ;
587
+ }
588
+ Utf8Value arg_utf8_value (args.GetIsolate (), arg_v8);
589
+ std::string arg_string (arg_utf8_value.out (), arg_utf8_value.length ());
590
+ exec_argv.push_back (arg_string);
588
591
}
589
- Utf8Value arg_utf8_value (args.GetIsolate (), arg_v8);
590
- std::string arg_string (arg_utf8_value.out (), arg_utf8_value.length ());
591
- exec_argv.push_back (arg_string);
592
+ } else {
593
+ exec_argv_out = env->exec_argv ();
594
+ exec_argv.insert (
595
+ exec_argv.end (), exec_argv_out.begin (), exec_argv_out.end ());
592
596
}
593
597
594
598
std::vector<std::string> invalid_args{};
@@ -606,9 +610,8 @@ void Worker::New(const FunctionCallbackInfo<Value>& args) {
606
610
invalid_args.erase (invalid_args.begin ());
607
611
if (errors.size () > 0 || invalid_args.size () > 0 ) {
608
612
Local<Value> error;
609
- if (!ToV8Value (env->context (),
610
- errors.size () > 0 ? errors : invalid_args)
611
- .ToLocal (&error)) {
613
+ if (!ToV8Value (env->context (), errors.size () > 0 ? errors : invalid_args)
614
+ .ToLocal (&error)) {
612
615
return ;
613
616
}
614
617
Local<String> key =
0 commit comments