@@ -571,9 +571,14 @@ void SlowCopy(const FunctionCallbackInfo<Value>& args) {
571571 ArrayBufferViewContents<char > source (args[0 ]);
572572 SPREAD_BUFFER_ARG (args[1 ].As <Object>(), target);
573573
574- const auto target_start = args[2 ]->Uint32Value (env->context ()).ToChecked ();
575- const auto source_start = args[3 ]->Uint32Value (env->context ()).ToChecked ();
576- const auto to_copy = args[4 ]->Uint32Value (env->context ()).ToChecked ();
574+ uint32_t target_start;
575+ uint32_t source_start;
576+ uint32_t to_copy;
577+ if (!args[2 ]->Uint32Value (env->context ()).To (&target_start) ||
578+ !args[3 ]->Uint32Value (env->context ()).To (&source_start) ||
579+ !args[4 ]->Uint32Value (env->context ()).To (&to_copy)) {
580+ return ;
581+ }
577582
578583 memmove (target_data + target_start, source.data () + source_start, to_copy);
579584 args.GetReturnValue ().Set (to_copy);
@@ -638,7 +643,9 @@ void Fill(const FunctionCallbackInfo<Value>& args) {
638643 return ;
639644 }
640645
641- str_obj = args[1 ]->ToString (env->context ()).ToLocalChecked ();
646+ if (!args[1 ]->ToString (env->context ()).ToLocal (&str_obj)) {
647+ return ;
648+ }
642649 enc = ParseEncoding (env->isolate (), args[4 ], UTF8);
643650
644651 // Can't use StringBytes::Write() in all cases. For example if attempting
@@ -701,7 +708,10 @@ void StringWrite(const FunctionCallbackInfo<Value>& args) {
701708
702709 THROW_AND_RETURN_IF_NOT_STRING (env, args[0 ], " argument" );
703710
704- Local<String> str = args[0 ]->ToString (env->context ()).ToLocalChecked ();
711+ Local<String> str;
712+ if (!args[0 ]->ToString (env->context ()).ToLocal (&str)) {
713+ return ;
714+ }
705715
706716 size_t offset = 0 ;
707717 size_t max_length = 0 ;
@@ -1241,10 +1251,12 @@ void GetZeroFillToggle(const FunctionCallbackInfo<Value>& args) {
12411251 ab = ArrayBuffer::New (env->isolate (), std::move (backing));
12421252 }
12431253
1244- ab->SetPrivate (
1245- env->context (),
1246- env->untransferable_object_private_symbol (),
1247- True (env->isolate ())).Check ();
1254+ if (ab->SetPrivate (env->context (),
1255+ env->untransferable_object_private_symbol (),
1256+ True (env->isolate ()))
1257+ .IsNothing ()) {
1258+ return ;
1259+ }
12481260
12491261 args.GetReturnValue ().Set (Uint32Array::New (ab, 0 , 1 ));
12501262}
@@ -1255,7 +1267,9 @@ void DetachArrayBuffer(const FunctionCallbackInfo<Value>& args) {
12551267 Local<ArrayBuffer> buf = args[0 ].As <ArrayBuffer>();
12561268 if (buf->IsDetachable ()) {
12571269 std::shared_ptr<BackingStore> store = buf->GetBackingStore ();
1258- buf->Detach (Local<Value>()).Check ();
1270+ if (buf->Detach (Local<Value>()).IsNothing ()) {
1271+ return ;
1272+ }
12591273 args.GetReturnValue ().Set (ArrayBuffer::New (env->isolate (), store));
12601274 }
12611275 }
@@ -1464,7 +1478,10 @@ void SlowWriteString(const FunctionCallbackInfo<Value>& args) {
14641478
14651479 THROW_AND_RETURN_IF_NOT_STRING (env, args[1 ], " argument" );
14661480
1467- Local<String> str = args[1 ]->ToString (env->context ()).ToLocalChecked ();
1481+ Local<String> str;
1482+ if (!args[1 ]->ToString (env->context ()).ToLocal (&str)) {
1483+ return ;
1484+ }
14681485
14691486 size_t offset = 0 ;
14701487 size_t max_length = 0 ;
0 commit comments