@@ -604,26 +604,30 @@ void Worker::New(const FunctionCallbackInfo<Value>& args) {
604
604
}
605
605
}
606
606
#endif // NODE_WITHOUT_NODE_OPTIONS
607
- }
608
607
609
- if (args[2 ]->IsArray ()) {
610
- Local<Array> array = args[2 ].As <Array>();
611
608
// The first argument is reserved for program name, but we don't need it
612
609
// in workers.
613
610
std::vector<std::string> exec_argv = {" " };
614
- uint32_t length = array->Length ();
615
- for (uint32_t i = 0 ; i < length; i++) {
616
- Local<Value> arg;
617
- if (!array->Get (env->context (), i).ToLocal (&arg)) {
618
- return ;
619
- }
620
- Local<String> arg_v8;
621
- if (!arg->ToString (env->context ()).ToLocal (&arg_v8)) {
622
- return ;
611
+ if (args[2 ]->IsArray ()) {
612
+ Local<Array> array = args[2 ].As <Array>();
613
+ uint32_t length = array->Length ();
614
+ for (uint32_t i = 0 ; i < length; i++) {
615
+ Local<Value> arg;
616
+ if (!array->Get (env->context (), i).ToLocal (&arg)) {
617
+ return ;
618
+ }
619
+ Local<String> arg_v8;
620
+ if (!arg->ToString (env->context ()).ToLocal (&arg_v8)) {
621
+ return ;
622
+ }
623
+ Utf8Value arg_utf8_value (args.GetIsolate (), arg_v8);
624
+ std::string arg_string (arg_utf8_value.out (), arg_utf8_value.length ());
625
+ exec_argv.push_back (arg_string);
623
626
}
624
- Utf8Value arg_utf8_value (args.GetIsolate (), arg_v8);
625
- std::string arg_string (arg_utf8_value.out (), arg_utf8_value.length ());
626
- exec_argv.push_back (arg_string);
627
+ } else {
628
+ exec_argv_out = env->exec_argv ();
629
+ exec_argv.insert (
630
+ exec_argv.end (), exec_argv_out.begin (), exec_argv_out.end ());
627
631
}
628
632
629
633
std::vector<std::string> invalid_args{};
@@ -641,9 +645,8 @@ void Worker::New(const FunctionCallbackInfo<Value>& args) {
641
645
invalid_args.erase (invalid_args.begin ());
642
646
if (errors.size () > 0 || invalid_args.size () > 0 ) {
643
647
Local<Value> error;
644
- if (!ToV8Value (env->context (),
645
- errors.size () > 0 ? errors : invalid_args)
646
- .ToLocal (&error)) {
648
+ if (!ToV8Value (env->context (), errors.size () > 0 ? errors : invalid_args)
649
+ .ToLocal (&error)) {
647
650
return ;
648
651
}
649
652
Local<String> key =
0 commit comments