@@ -37,7 +37,11 @@ using v8::FunctionCallbackInfo;
37
37
using v8::HandleScope;
38
38
using v8::Integer;
39
39
using v8::Isolate;
40
+ using v8::Just;
40
41
using v8::Local;
42
+ using v8::Maybe;
43
+ using v8::MaybeLocal;
44
+ using v8::Nothing;
41
45
using v8::Null;
42
46
using v8::Number;
43
47
using v8::Object;
@@ -431,22 +435,21 @@ Environment* SyncProcessRunner::env() const {
431
435
return env_;
432
436
}
433
437
434
- v8:: MaybeLocal<Object> SyncProcessRunner::Run (Local<Value> options) {
438
+ MaybeLocal<Object> SyncProcessRunner::Run (Local<Value> options) {
435
439
EscapableHandleScope scope (env ()->isolate ());
436
440
437
441
CHECK_EQ (lifecycle_, kUninitialized );
438
442
439
- v8:: Maybe<bool > r = TryInitializeAndRunLoop (options);
443
+ Maybe<bool > r = TryInitializeAndRunLoop (options);
440
444
CloseHandlesAndDeleteLoop ();
441
- if (r.IsNothing ()) return v8:: MaybeLocal<Object>();
445
+ if (r.IsNothing ()) return MaybeLocal<Object>();
442
446
443
447
Local<Object> result = BuildResultObject ();
444
448
445
449
return scope.Escape (result);
446
450
}
447
451
448
- v8::Maybe<bool > SyncProcessRunner::TryInitializeAndRunLoop (
449
- Local<Value> options) {
452
+ Maybe<bool > SyncProcessRunner::TryInitializeAndRunLoop (Local<Value> options) {
450
453
int r;
451
454
452
455
// There is no recovery from failure inside TryInitializeAndRunLoop - the
@@ -457,21 +460,21 @@ v8::Maybe<bool> SyncProcessRunner::TryInitializeAndRunLoop(
457
460
uv_loop_ = new uv_loop_t ;
458
461
if (uv_loop_ == nullptr ) {
459
462
SetError (UV_ENOMEM);
460
- return v8:: Just (false );
463
+ return Just (false );
461
464
}
462
465
CHECK_EQ (uv_loop_init (uv_loop_), 0 );
463
466
464
- if (!ParseOptions (options).To (&r)) return v8:: Nothing<bool >();
467
+ if (!ParseOptions (options).To (&r)) return Nothing<bool >();
465
468
if (r < 0 ) {
466
469
SetError (r);
467
- return v8:: Just (false );
470
+ return Just (false );
468
471
}
469
472
470
473
if (timeout_ > 0 ) {
471
474
r = uv_timer_init (uv_loop_, &uv_timer_);
472
475
if (r < 0 ) {
473
476
SetError (r);
474
- return v8:: Just (false );
477
+ return Just (false );
475
478
}
476
479
477
480
uv_unref (reinterpret_cast <uv_handle_t *>(&uv_timer_));
@@ -486,15 +489,15 @@ v8::Maybe<bool> SyncProcessRunner::TryInitializeAndRunLoop(
486
489
r = uv_timer_start (&uv_timer_, KillTimerCallback, timeout_, 0 );
487
490
if (r < 0 ) {
488
491
SetError (r);
489
- return v8:: Just (false );
492
+ return Just (false );
490
493
}
491
494
}
492
495
493
496
uv_process_options_.exit_cb = ExitCallback;
494
497
r = uv_spawn (uv_loop_, &uv_process_, &uv_process_options_);
495
498
if (r < 0 ) {
496
499
SetError (r);
497
- return v8:: Just (false );
500
+ return Just (false );
498
501
}
499
502
uv_process_.data = this ;
500
503
@@ -504,7 +507,7 @@ v8::Maybe<bool> SyncProcessRunner::TryInitializeAndRunLoop(
504
507
r = h->Start ();
505
508
if (r < 0 ) {
506
509
SetPipeError (r);
507
- return v8:: Just (false );
510
+ return Just (false );
508
511
}
509
512
}
510
513
}
@@ -516,7 +519,7 @@ v8::Maybe<bool> SyncProcessRunner::TryInitializeAndRunLoop(
516
519
517
520
// If we get here the process should have exited.
518
521
CHECK_GE (exit_status_, 0 );
519
- return v8:: Just (true );
522
+ return Just (true );
520
523
}
521
524
522
525
@@ -738,42 +741,41 @@ Local<Array> SyncProcessRunner::BuildOutputArray() {
738
741
return scope.Escape (js_output);
739
742
}
740
743
741
- v8:: Maybe<int > SyncProcessRunner::ParseOptions (Local<Value> js_value) {
744
+ Maybe<int > SyncProcessRunner::ParseOptions (Local<Value> js_value) {
742
745
HandleScope scope (env ()->isolate ());
743
746
int r;
744
747
745
- if (!js_value->IsObject ()) return v8:: Just<int >(UV_EINVAL);
748
+ if (!js_value->IsObject ()) return Just<int >(UV_EINVAL);
746
749
747
750
Local<Context> context = env ()->context ();
748
751
Local<Object> js_options = js_value.As <Object>();
749
752
750
753
Local<Value> js_file =
751
754
js_options->Get (context, env ()->file_string ()).ToLocalChecked ();
752
- if (!CopyJsString (js_file, &file_buffer_).To (&r)) return v8:: Nothing<int >();
753
- if (r < 0 ) return v8:: Just (r);
755
+ if (!CopyJsString (js_file, &file_buffer_).To (&r)) return Nothing<int >();
756
+ if (r < 0 ) return Just (r);
754
757
uv_process_options_.file = file_buffer_;
755
758
756
759
Local<Value> js_args =
757
760
js_options->Get (context, env ()->args_string ()).ToLocalChecked ();
758
- if (!CopyJsStringArray (js_args, &args_buffer_).To (&r))
759
- return v8::Nothing<int >();
760
- if (r < 0 ) return v8::Just (r);
761
+ if (!CopyJsStringArray (js_args, &args_buffer_).To (&r)) return Nothing<int >();
762
+ if (r < 0 ) return Just (r);
761
763
uv_process_options_.args = reinterpret_cast <char **>(args_buffer_);
762
764
763
765
Local<Value> js_cwd =
764
766
js_options->Get (context, env ()->cwd_string ()).ToLocalChecked ();
765
767
if (IsSet (js_cwd)) {
766
- if (!CopyJsString (js_cwd, &cwd_buffer_).To (&r)) return v8:: Nothing<int >();
767
- if (r < 0 ) return v8:: Just (r);
768
+ if (!CopyJsString (js_cwd, &cwd_buffer_).To (&r)) return Nothing<int >();
769
+ if (r < 0 ) return Just (r);
768
770
uv_process_options_.cwd = cwd_buffer_;
769
771
}
770
772
771
773
Local<Value> js_env_pairs =
772
774
js_options->Get (context, env ()->env_pairs_string ()).ToLocalChecked ();
773
775
if (IsSet (js_env_pairs)) {
774
776
if (!CopyJsStringArray (js_env_pairs, &env_buffer_).To (&r))
775
- return v8:: Nothing<int >();
776
- if (r < 0 ) return v8:: Just (r);
777
+ return Nothing<int >();
778
+ if (r < 0 ) return Just (r);
777
779
778
780
uv_process_options_.env = reinterpret_cast <char **>(env_buffer_);
779
781
}
@@ -837,9 +839,9 @@ v8::Maybe<int> SyncProcessRunner::ParseOptions(Local<Value> js_value) {
837
839
Local<Value> js_stdio =
838
840
js_options->Get (context, env ()->stdio_string ()).ToLocalChecked ();
839
841
r = ParseStdioOptions (js_stdio);
840
- if (r < 0 ) return v8:: Just (r);
842
+ if (r < 0 ) return Just (r);
841
843
842
- return v8:: Just (0 );
844
+ return Just (0 );
843
845
}
844
846
845
847
@@ -979,8 +981,8 @@ bool SyncProcessRunner::IsSet(Local<Value> value) {
979
981
return !value->IsUndefined () && !value->IsNull ();
980
982
}
981
983
982
- v8:: Maybe<int > SyncProcessRunner::CopyJsString (Local<Value> js_value,
983
- const char ** target) {
984
+ Maybe<int > SyncProcessRunner::CopyJsString (Local<Value> js_value,
985
+ const char ** target) {
984
986
Isolate* isolate = env ()->isolate ();
985
987
Local<String> js_string;
986
988
size_t size, written;
@@ -990,11 +992,11 @@ v8::Maybe<int> SyncProcessRunner::CopyJsString(Local<Value> js_value,
990
992
js_string = js_value.As <String>();
991
993
else if (!js_value->ToString (env ()->isolate ()->GetCurrentContext ())
992
994
.ToLocal (&js_string))
993
- return v8:: Nothing<int >();
995
+ return Nothing<int >();
994
996
995
997
// Include space for null terminator byte.
996
998
if (!StringBytes::StorageSize (isolate, js_string, UTF8).To (&size))
997
- return v8:: Nothing<int >();
999
+ return Nothing<int >();
998
1000
size += 1 ;
999
1001
1000
1002
buffer = new char [size];
@@ -1003,19 +1005,19 @@ v8::Maybe<int> SyncProcessRunner::CopyJsString(Local<Value> js_value,
1003
1005
buffer[written] = ' \0 ' ;
1004
1006
1005
1007
*target = buffer;
1006
- return v8:: Just (0 );
1008
+ return Just (0 );
1007
1009
}
1008
1010
1009
- v8:: Maybe<int > SyncProcessRunner::CopyJsStringArray (Local<Value> js_value,
1010
- char ** target) {
1011
+ Maybe<int > SyncProcessRunner::CopyJsStringArray (Local<Value> js_value,
1012
+ char ** target) {
1011
1013
Isolate* isolate = env ()->isolate ();
1012
1014
Local<Array> js_array;
1013
1015
uint32_t length;
1014
1016
size_t list_size, data_size, data_offset;
1015
1017
char ** list;
1016
1018
char * buffer;
1017
1019
1018
- if (!js_value->IsArray ()) return v8:: Just<int >(UV_EINVAL);
1020
+ if (!js_value->IsArray ()) return Just<int >(UV_EINVAL);
1019
1021
1020
1022
Local<Context> context = env ()->context ();
1021
1023
js_array = js_value.As <Array>()->Clone ().As <Array>();
@@ -1034,10 +1036,10 @@ v8::Maybe<int> SyncProcessRunner::CopyJsStringArray(Local<Value> js_value,
1034
1036
auto value = js_array->Get (context, i).ToLocalChecked ();
1035
1037
1036
1038
if (!value->IsString ()) {
1037
- v8:: Local<String> string;
1039
+ Local<String> string;
1038
1040
if (!value->ToString (env ()->isolate ()->GetCurrentContext ())
1039
1041
.ToLocal (&string))
1040
- return v8:: Nothing<int >();
1042
+ return Nothing<int >();
1041
1043
js_array
1042
1044
->Set (context,
1043
1045
i,
@@ -1046,9 +1048,8 @@ v8::Maybe<int> SyncProcessRunner::CopyJsStringArray(Local<Value> js_value,
1046
1048
.FromJust ();
1047
1049
}
1048
1050
1049
- v8::Maybe<size_t > maybe_size =
1050
- StringBytes::StorageSize (isolate, value, UTF8);
1051
- if (maybe_size.IsNothing ()) return v8::Nothing<int >();
1051
+ Maybe<size_t > maybe_size = StringBytes::StorageSize (isolate, value, UTF8);
1052
+ if (maybe_size.IsNothing ()) return Nothing<int >();
1052
1053
data_size += maybe_size.FromJust () + 1 ;
1053
1054
data_size = ROUND_UP (data_size, sizeof (void *));
1054
1055
}
@@ -1073,7 +1074,7 @@ v8::Maybe<int> SyncProcessRunner::CopyJsStringArray(Local<Value> js_value,
1073
1074
list[length] = nullptr ;
1074
1075
1075
1076
*target = buffer;
1076
- return v8:: Just (0 );
1077
+ return Just (0 );
1077
1078
}
1078
1079
1079
1080
0 commit comments