@@ -567,9 +567,14 @@ void SlowCopy(const FunctionCallbackInfo<Value>& args) {
567567 ArrayBufferViewContents<char > source (args[0 ]);
568568 SPREAD_BUFFER_ARG (args[1 ].As <Object>(), target);
569569
570- const auto target_start = args[2 ]->Uint32Value (env->context ()).ToChecked ();
571- const auto source_start = args[3 ]->Uint32Value (env->context ()).ToChecked ();
572- const auto to_copy = args[4 ]->Uint32Value (env->context ()).ToChecked ();
570+ uint32_t target_start;
571+ uint32_t source_start;
572+ uint32_t to_copy;
573+ if (!args[2 ]->Uint32Value (env->context ()).To (&target_start) ||
574+ !args[3 ]->Uint32Value (env->context ()).To (&source_start) ||
575+ !args[4 ]->Uint32Value (env->context ()).To (&to_copy)) {
576+ return ;
577+ }
573578
574579 memmove (target_data + target_start, source.data () + source_start, to_copy);
575580 args.GetReturnValue ().Set (to_copy);
@@ -634,7 +639,9 @@ void Fill(const FunctionCallbackInfo<Value>& args) {
634639 return ;
635640 }
636641
637- str_obj = args[1 ]->ToString (env->context ()).ToLocalChecked ();
642+ if (!args[1 ]->ToString (env->context ()).ToLocal (&str_obj)) {
643+ return ;
644+ }
638645 enc = ParseEncoding (env->isolate (), args[4 ], UTF8);
639646
640647 // Can't use StringBytes::Write() in all cases. For example if attempting
@@ -697,7 +704,10 @@ void StringWrite(const FunctionCallbackInfo<Value>& args) {
697704
698705 THROW_AND_RETURN_IF_NOT_STRING (env, args[0 ], " argument" );
699706
700- Local<String> str = args[0 ]->ToString (env->context ()).ToLocalChecked ();
707+ Local<String> str;
708+ if (!args[0 ]->ToString (env->context ()).ToLocal (&str)) {
709+ return ;
710+ }
701711
702712 size_t offset = 0 ;
703713 size_t max_length = 0 ;
@@ -1238,10 +1248,12 @@ void GetZeroFillToggle(const FunctionCallbackInfo<Value>& args) {
12381248 ab = ArrayBuffer::New (env->isolate (), std::move (backing));
12391249 }
12401250
1241- ab->SetPrivate (
1242- env->context (),
1243- env->untransferable_object_private_symbol (),
1244- True (env->isolate ())).Check ();
1251+ if (ab->SetPrivate (env->context (),
1252+ env->untransferable_object_private_symbol (),
1253+ True (env->isolate ()))
1254+ .IsNothing ()) {
1255+ return ;
1256+ }
12451257
12461258 args.GetReturnValue ().Set (Uint32Array::New (ab, 0 , 1 ));
12471259}
@@ -1252,7 +1264,9 @@ void DetachArrayBuffer(const FunctionCallbackInfo<Value>& args) {
12521264 Local<ArrayBuffer> buf = args[0 ].As <ArrayBuffer>();
12531265 if (buf->IsDetachable ()) {
12541266 std::shared_ptr<BackingStore> store = buf->GetBackingStore ();
1255- buf->Detach (Local<Value>()).Check ();
1267+ if (buf->Detach (Local<Value>()).IsNothing ()) {
1268+ return ;
1269+ }
12561270 args.GetReturnValue ().Set (ArrayBuffer::New (env->isolate (), store));
12571271 }
12581272 }
@@ -1461,7 +1475,10 @@ void SlowWriteString(const FunctionCallbackInfo<Value>& args) {
14611475
14621476 THROW_AND_RETURN_IF_NOT_STRING (env, args[1 ], " argument" );
14631477
1464- Local<String> str = args[1 ]->ToString (env->context ()).ToLocalChecked ();
1478+ Local<String> str;
1479+ if (!args[1 ]->ToString (env->context ()).ToLocal (&str)) {
1480+ return ;
1481+ }
14651482
14661483 size_t offset = 0 ;
14671484 size_t max_length = 0 ;
0 commit comments