Lines Matching refs:args

17 inline void Debug(WASI* wasi, Args&&... args) {
18 Debug(wasi->env(), DebugCategory::WASI, std::forward<Args>(args)...);
25 THROW_ERR_WASI_NOT_STARTED(Environment::GetCurrent(args)); \
30 #define RETURN_IF_BAD_ARG_COUNT(args, expected) \
32 if ((args).Length() != (expected)) { \
33 (args).GetReturnValue().Set(UVWASI_EINVAL); \
38 #define CHECK_TO_TYPE_OR_RETURN(args, input, type, result) \
41 (args).GetReturnValue().Set(UVWASI_EINVAL); \
47 #define UNWRAP_BIGINT_OR_RETURN(args, input, type, result) \
50 (args).GetReturnValue().Set(UVWASI_EINVAL); \
58 #define GET_BACKING_STORE_OR_RETURN(wasi, args, mem_ptr, mem_size) \
62 (args).GetReturnValue().Set(err); \
67 #define CHECK_BOUNDS_OR_RETURN(args, mem_size, offset, buf_size) \
70 (args).GetReturnValue().Set(UVWASI_EOVERFLOW); \
159 void WASI::New(const FunctionCallbackInfo<Value>& args) {
160 CHECK(args.IsConstructCall());
161 CHECK_EQ(args.Length(), 4);
162 CHECK(args[0]->IsArray());
163 CHECK(args[1]->IsArray());
164 CHECK(args[2]->IsArray());
165 CHECK(args[3]->IsArray());
167 Environment* env = Environment::GetCurrent(args);
169 Local<Array> argv = args[0].As<Array>();
175 Local<Array> stdio = args[3].As<Array>();
197 Local<Array> env_pairs = args[1].As<Array>();
209 Local<Array> preopens = args[2].As<Array>();
228 new WASI(env, args.This(), &options);
251 void WASI::ArgsGet(const FunctionCallbackInfo<Value>& args) {
257 RETURN_IF_BAD_ARG_COUNT(args, 2);
258 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, argv_offset);
259 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, argv_buf_offset);
260 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
262 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
263 CHECK_BOUNDS_OR_RETURN(args,
267 CHECK_BOUNDS_OR_RETURN(args,
286 args.GetReturnValue().Set(err);
290 void WASI::ArgsSizesGet(const FunctionCallbackInfo<Value>& args) {
296 RETURN_IF_BAD_ARG_COUNT(args, 2);
297 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, argc_offset);
298 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, argv_buf_offset);
299 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
301 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
302 CHECK_BOUNDS_OR_RETURN(args,
306 CHECK_BOUNDS_OR_RETURN(args,
320 args.GetReturnValue().Set(err);
324 void WASI::ClockResGet(const FunctionCallbackInfo<Value>& args) {
330 RETURN_IF_BAD_ARG_COUNT(args, 2);
331 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, clock_id);
332 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, resolution_ptr);
333 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
335 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
336 CHECK_BOUNDS_OR_RETURN(args,
347 args.GetReturnValue().Set(err);
351 void WASI::ClockTimeGet(const FunctionCallbackInfo<Value>& args) {
358 RETURN_IF_BAD_ARG_COUNT(args, 3);
359 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, clock_id);
360 UNWRAP_BIGINT_OR_RETURN(args, args[1], Uint64, precision);
361 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, time_ptr);
362 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
364 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
365 CHECK_BOUNDS_OR_RETURN(args,
377 args.GetReturnValue().Set(err);
381 void WASI::EnvironGet(const FunctionCallbackInfo<Value>& args) {
387 RETURN_IF_BAD_ARG_COUNT(args, 2);
388 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, environ_offset);
389 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, environ_buf_offset);
390 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
392 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
393 CHECK_BOUNDS_OR_RETURN(args,
397 CHECK_BOUNDS_OR_RETURN(args,
419 args.GetReturnValue().Set(err);
423 void WASI::EnvironSizesGet(const FunctionCallbackInfo<Value>& args) {
429 RETURN_IF_BAD_ARG_COUNT(args, 2);
430 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, envc_offset);
431 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, env_buf_offset);
432 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
434 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
435 CHECK_BOUNDS_OR_RETURN(args,
439 CHECK_BOUNDS_OR_RETURN(args,
453 args.GetReturnValue().Set(err);
457 void WASI::FdAdvise(const FunctionCallbackInfo<Value>& args) {
463 RETURN_IF_BAD_ARG_COUNT(args, 4);
464 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
465 UNWRAP_BIGINT_OR_RETURN(args, args[1], Uint64, offset);
466 UNWRAP_BIGINT_OR_RETURN(args, args[2], Uint64, len);
467 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, advice);
468 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
471 args.GetReturnValue().Set(err);
475 void WASI::FdAllocate(const FunctionCallbackInfo<Value>& args) {
480 RETURN_IF_BAD_ARG_COUNT(args, 3);
481 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
482 UNWRAP_BIGINT_OR_RETURN(args, args[1], Uint64, offset);
483 UNWRAP_BIGINT_OR_RETURN(args, args[2], Uint64, len);
484 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
487 args.GetReturnValue().Set(err);
491 void WASI::FdClose(const FunctionCallbackInfo<Value>& args) {
494 RETURN_IF_BAD_ARG_COUNT(args, 1);
495 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
496 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
499 args.GetReturnValue().Set(err);
503 void WASI::FdDatasync(const FunctionCallbackInfo<Value>& args) {
506 RETURN_IF_BAD_ARG_COUNT(args, 1);
507 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
508 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
511 args.GetReturnValue().Set(err);
515 void WASI::FdFdstatGet(const FunctionCallbackInfo<Value>& args) {
521 RETURN_IF_BAD_ARG_COUNT(args, 2);
522 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
523 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, buf);
524 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
526 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
527 CHECK_BOUNDS_OR_RETURN(args, mem_size, buf, UVWASI_SERDES_SIZE_fdstat_t);
534 args.GetReturnValue().Set(err);
538 void WASI::FdFdstatSetFlags(const FunctionCallbackInfo<Value>& args) {
542 RETURN_IF_BAD_ARG_COUNT(args, 2);
543 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
544 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, flags);
545 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
548 args.GetReturnValue().Set(err);
552 void WASI::FdFdstatSetRights(const FunctionCallbackInfo<Value>& args) {
557 RETURN_IF_BAD_ARG_COUNT(args, 3);
558 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
559 UNWRAP_BIGINT_OR_RETURN(args, args[1], Uint64, fs_rights_base);
560 UNWRAP_BIGINT_OR_RETURN(args, args[2], Uint64, fs_rights_inheriting);
561 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
571 args.GetReturnValue().Set(err);
575 void WASI::FdFilestatGet(const FunctionCallbackInfo<Value>& args) {
581 RETURN_IF_BAD_ARG_COUNT(args, 2);
582 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
583 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, buf);
584 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
586 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
587 CHECK_BOUNDS_OR_RETURN(args, mem_size, buf, UVWASI_SERDES_SIZE_filestat_t);
594 args.GetReturnValue().Set(err);
598 void WASI::FdFilestatSetSize(const FunctionCallbackInfo<Value>& args) {
602 RETURN_IF_BAD_ARG_COUNT(args, 2);
603 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
604 UNWRAP_BIGINT_OR_RETURN(args, args[1], Uint64, st_size);
605 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
608 args.GetReturnValue().Set(err);
612 void WASI::FdFilestatSetTimes(const FunctionCallbackInfo<Value>& args) {
618 RETURN_IF_BAD_ARG_COUNT(args, 4);
619 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
620 UNWRAP_BIGINT_OR_RETURN(args, args[1], Uint64, st_atim);
621 UNWRAP_BIGINT_OR_RETURN(args, args[2], Uint64, st_mtim);
622 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, fst_flags);
623 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
635 args.GetReturnValue().Set(err);
639 void WASI::FdPread(const FunctionCallbackInfo<Value>& args) {
648 RETURN_IF_BAD_ARG_COUNT(args, 5);
649 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
650 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, iovs_ptr);
651 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, iovs_len);
652 UNWRAP_BIGINT_OR_RETURN(args, args[3], Uint64, offset);
653 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, nread_ptr);
654 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
662 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
663 CHECK_BOUNDS_OR_RETURN(args,
667 CHECK_BOUNDS_OR_RETURN(args, mem_size, nread_ptr, UVWASI_SERDES_SIZE_size_t);
677 args.GetReturnValue().Set(err);
686 args.GetReturnValue().Set(err);
690 void WASI::FdPrestatGet(const FunctionCallbackInfo<Value>& args) {
696 RETURN_IF_BAD_ARG_COUNT(args, 2);
697 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
698 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, buf);
699 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
701 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
702 CHECK_BOUNDS_OR_RETURN(args, mem_size, buf, UVWASI_SERDES_SIZE_prestat_t);
709 args.GetReturnValue().Set(err);
713 void WASI::FdPrestatDirName(const FunctionCallbackInfo<Value>& args) {
720 RETURN_IF_BAD_ARG_COUNT(args, 3);
721 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
722 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, path_ptr);
723 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, path_len);
724 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
726 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
727 CHECK_BOUNDS_OR_RETURN(args, mem_size, path_ptr, path_len);
732 args.GetReturnValue().Set(err);
736 void WASI::FdPwrite(const FunctionCallbackInfo<Value>& args) {
745 RETURN_IF_BAD_ARG_COUNT(args, 5);
746 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
747 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, iovs_ptr);
748 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, iovs_len);
749 UNWRAP_BIGINT_OR_RETURN(args, args[3], Uint64, offset);
750 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, nwritten_ptr);
751 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
759 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
760 CHECK_BOUNDS_OR_RETURN(args,
764 CHECK_BOUNDS_OR_RETURN(args,
777 args.GetReturnValue().Set(err);
791 args.GetReturnValue().Set(err);
795 void WASI::FdRead(const FunctionCallbackInfo<Value>& args) {
803 RETURN_IF_BAD_ARG_COUNT(args, 4);
804 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
805 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, iovs_ptr);
806 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, iovs_len);
807 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, nread_ptr);
808 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
810 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
811 CHECK_BOUNDS_OR_RETURN(args,
815 CHECK_BOUNDS_OR_RETURN(args, mem_size, nread_ptr, UVWASI_SERDES_SIZE_size_t);
825 args.GetReturnValue().Set(err);
834 args.GetReturnValue().Set(err);
838 void WASI::FdReaddir(const FunctionCallbackInfo<Value>& args) {
847 RETURN_IF_BAD_ARG_COUNT(args, 5);
848 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
849 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, buf_ptr);
850 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, buf_len);
851 UNWRAP_BIGINT_OR_RETURN(args, args[3], Uint64, cookie);
852 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, bufused_ptr);
853 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
861 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
862 CHECK_BOUNDS_OR_RETURN(args, mem_size, buf_ptr, buf_len);
863 CHECK_BOUNDS_OR_RETURN(args,
877 args.GetReturnValue().Set(err);
881 void WASI::FdRenumber(const FunctionCallbackInfo<Value>& args) {
885 RETURN_IF_BAD_ARG_COUNT(args, 2);
886 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, from);
887 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, to);
888 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
891 args.GetReturnValue().Set(err);
895 void WASI::FdSeek(const FunctionCallbackInfo<Value>& args) {
903 RETURN_IF_BAD_ARG_COUNT(args, 4);
904 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
905 UNWRAP_BIGINT_OR_RETURN(args, args[1], Int64, offset);
906 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, whence);
907 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, newoffset_ptr);
908 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
910 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
911 CHECK_BOUNDS_OR_RETURN(args,
924 args.GetReturnValue().Set(err);
928 void WASI::FdSync(const FunctionCallbackInfo<Value>& args) {
931 RETURN_IF_BAD_ARG_COUNT(args, 1);
932 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
933 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
936 args.GetReturnValue().Set(err);
940 void WASI::FdTell(const FunctionCallbackInfo<Value>& args) {
946 RETURN_IF_BAD_ARG_COUNT(args, 2);
947 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
948 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, offset_ptr);
949 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
951 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
952 CHECK_BOUNDS_OR_RETURN(args,
962 args.GetReturnValue().Set(err);
966 void WASI::FdWrite(const FunctionCallbackInfo<Value>& args) {
974 RETURN_IF_BAD_ARG_COUNT(args, 4);
975 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
976 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, iovs_ptr);
977 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, iovs_len);
978 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, nwritten_ptr);
979 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
986 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
987 CHECK_BOUNDS_OR_RETURN(args,
991 CHECK_BOUNDS_OR_RETURN(args,
1004 args.GetReturnValue().Set(err);
1013 args.GetReturnValue().Set(err);
1017 void WASI::PathCreateDirectory(const FunctionCallbackInfo<Value>& args) {
1024 RETURN_IF_BAD_ARG_COUNT(args, 3);
1025 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
1026 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, path_ptr);
1027 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, path_len);
1028 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1030 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1031 CHECK_BOUNDS_OR_RETURN(args, mem_size, path_ptr, path_len);
1036 args.GetReturnValue().Set(err);
1040 void WASI::PathFilestatGet(const FunctionCallbackInfo<Value>& args) {
1049 RETURN_IF_BAD_ARG_COUNT(args, 5);
1050 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
1051 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, flags);
1052 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, path_ptr);
1053 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, path_len);
1054 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, buf_ptr);
1055 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1061 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1062 CHECK_BOUNDS_OR_RETURN(args, mem_size, path_ptr, path_len);
1063 CHECK_BOUNDS_OR_RETURN(args,
1077 args.GetReturnValue().Set(err);
1081 void WASI::PathFilestatSetTimes(const FunctionCallbackInfo<Value>& args) {
1092 RETURN_IF_BAD_ARG_COUNT(args, 7);
1093 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
1094 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, flags);
1095 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, path_ptr);
1096 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, path_len);
1097 UNWRAP_BIGINT_OR_RETURN(args, args[4], Uint64, st_atim);
1098 UNWRAP_BIGINT_OR_RETURN(args, args[5], Uint64, st_mtim);
1099 CHECK_TO_TYPE_OR_RETURN(args, args[6], Uint32, fst_flags);
1100 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1110 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1111 CHECK_BOUNDS_OR_RETURN(args, mem_size, path_ptr, path_len);
1120 args.GetReturnValue().Set(err);
1124 void WASI::PathLink(const FunctionCallbackInfo<Value>& args) {
1135 RETURN_IF_BAD_ARG_COUNT(args, 7);
1136 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, old_fd);
1137 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, old_flags);
1138 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, old_path_ptr);
1139 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, old_path_len);
1140 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, new_fd);
1141 CHECK_TO_TYPE_OR_RETURN(args, args[5], Uint32, new_path_ptr);
1142 CHECK_TO_TYPE_OR_RETURN(args, args[6], Uint32, new_path_len);
1143 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1153 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1154 CHECK_BOUNDS_OR_RETURN(args, mem_size, old_path_ptr, old_path_len);
1155 CHECK_BOUNDS_OR_RETURN(args, mem_size, new_path_ptr, new_path_len);
1164 args.GetReturnValue().Set(err);
1168 void WASI::PathOpen(const FunctionCallbackInfo<Value>& args) {
1181 RETURN_IF_BAD_ARG_COUNT(args, 9);
1182 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, dirfd);
1183 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, dirflags);
1184 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, path_ptr);
1185 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, path_len);
1186 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, o_flags);
1187 UNWRAP_BIGINT_OR_RETURN(args, args[5], Uint64, fs_rights_base);
1188 UNWRAP_BIGINT_OR_RETURN(args, args[6], Uint64, fs_rights_inheriting);
1189 CHECK_TO_TYPE_OR_RETURN(args, args[7], Uint32, fs_flags);
1190 CHECK_TO_TYPE_OR_RETURN(args, args[8], Uint32, fd_ptr);
1191 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1203 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1204 CHECK_BOUNDS_OR_RETURN(args, mem_size, path_ptr, path_len);
1205 CHECK_BOUNDS_OR_RETURN(args, mem_size, fd_ptr, UVWASI_SERDES_SIZE_fd_t);
1220 args.GetReturnValue().Set(err);
1224 void WASI::PathReadlink(const FunctionCallbackInfo<Value>& args) {
1234 RETURN_IF_BAD_ARG_COUNT(args, 6);
1235 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
1236 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, path_ptr);
1237 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, path_len);
1238 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, buf_ptr);
1239 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, buf_len);
1240 CHECK_TO_TYPE_OR_RETURN(args, args[5], Uint32, bufused_ptr);
1241 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1250 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1251 CHECK_BOUNDS_OR_RETURN(args, mem_size, path_ptr, path_len);
1252 CHECK_BOUNDS_OR_RETURN(args, mem_size, buf_ptr, buf_len);
1253 CHECK_BOUNDS_OR_RETURN(args,
1268 args.GetReturnValue().Set(err);
1272 void WASI::PathRemoveDirectory(const FunctionCallbackInfo<Value>& args) {
1279 RETURN_IF_BAD_ARG_COUNT(args, 3);
1280 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
1281 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, path_ptr);
1282 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, path_len);
1283 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1285 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1286 CHECK_BOUNDS_OR_RETURN(args, mem_size, path_ptr, path_len);
1291 args.GetReturnValue().Set(err);
1295 void WASI::PathRename(const FunctionCallbackInfo<Value>& args) {
1305 RETURN_IF_BAD_ARG_COUNT(args, 6);
1306 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, old_fd);
1307 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, old_path_ptr);
1308 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, old_path_len);
1309 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, new_fd);
1310 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, new_path_ptr);
1311 CHECK_TO_TYPE_OR_RETURN(args, args[5], Uint32, new_path_len);
1312 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1321 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1322 CHECK_BOUNDS_OR_RETURN(args, mem_size, old_path_ptr, old_path_len);
1323 CHECK_BOUNDS_OR_RETURN(args, mem_size, new_path_ptr, new_path_len);
1331 args.GetReturnValue().Set(err);
1335 void WASI::PathSymlink(const FunctionCallbackInfo<Value>& args) {
1344 RETURN_IF_BAD_ARG_COUNT(args, 5);
1345 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, old_path_ptr);
1346 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, old_path_len);
1347 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, fd);
1348 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, new_path_ptr);
1349 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, new_path_len);
1350 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1358 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1359 CHECK_BOUNDS_OR_RETURN(args, mem_size, old_path_ptr, old_path_len);
1360 CHECK_BOUNDS_OR_RETURN(args, mem_size, new_path_ptr, new_path_len);
1367 args.GetReturnValue().Set(err);
1371 void WASI::PathUnlinkFile(const FunctionCallbackInfo<Value>& args) {
1378 RETURN_IF_BAD_ARG_COUNT(args, 3);
1379 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, fd);
1380 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, path_ptr);
1381 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, path_len);
1382 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1384 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1385 CHECK_BOUNDS_OR_RETURN(args, mem_size, path_ptr, path_len);
1390 args.GetReturnValue().Set(err);
1394 void WASI::PollOneoff(const FunctionCallbackInfo<Value>& args) {
1402 RETURN_IF_BAD_ARG_COUNT(args, 4);
1403 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, in_ptr);
1404 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, out_ptr);
1405 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, nsubscriptions);
1406 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, nevents_ptr);
1407 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1414 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1415 CHECK_BOUNDS_OR_RETURN(args,
1419 CHECK_BOUNDS_OR_RETURN(args,
1423 CHECK_BOUNDS_OR_RETURN(args,
1450 args.GetReturnValue().Set(err);
1454 void WASI::ProcExit(const FunctionCallbackInfo<Value>& args) {
1457 RETURN_IF_BAD_ARG_COUNT(args, 1);
1458 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, code);
1459 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1461 args.GetReturnValue().Set(uvwasi_proc_exit(&wasi->uvw_, code));
1465 void WASI::ProcRaise(const FunctionCallbackInfo<Value>& args) {
1468 RETURN_IF_BAD_ARG_COUNT(args, 1);
1469 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, sig);
1470 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1473 args.GetReturnValue().Set(err);
1477 void WASI::RandomGet(const FunctionCallbackInfo<Value>& args) {
1483 RETURN_IF_BAD_ARG_COUNT(args, 2);
1484 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, buf_ptr);
1485 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, buf_len);
1486 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1488 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1489 CHECK_BOUNDS_OR_RETURN(args, mem_size, buf_ptr, buf_len);
1493 args.GetReturnValue().Set(err);
1497 void WASI::SchedYield(const FunctionCallbackInfo<Value>& args) {
1499 RETURN_IF_BAD_ARG_COUNT(args, 0);
1500 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1503 args.GetReturnValue().Set(err);
1506 void WASI::SockAccept(const FunctionCallbackInfo<Value>& args) {
1513 RETURN_IF_BAD_ARG_COUNT(args, 3);
1514 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, sock);
1515 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, flags);
1516 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, fd_ptr);
1517 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1523 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1524 CHECK_BOUNDS_OR_RETURN(args, mem_size, fd_ptr, UVWASI_SERDES_SIZE_fd_t);
1535 args.GetReturnValue().Set(err);
1538 void WASI::SockRecv(const FunctionCallbackInfo<Value>& args) {
1548 RETURN_IF_BAD_ARG_COUNT(args, 6);
1549 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, sock);
1550 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, ri_data_ptr);
1551 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, ri_data_len);
1552 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, ri_flags);
1553 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, ro_datalen_ptr);
1554 CHECK_TO_TYPE_OR_RETURN(args, args[5], Uint32, ro_flags_ptr);
1555 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1564 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1565 CHECK_BOUNDS_OR_RETURN(args,
1569 CHECK_BOUNDS_OR_RETURN(args, mem_size, ro_datalen_ptr, 4);
1570 CHECK_BOUNDS_OR_RETURN(args, mem_size, ro_flags_ptr, 4);
1578 args.GetReturnValue().Set(err);
1596 args.GetReturnValue().Set(err);
1600 void WASI::SockSend(const FunctionCallbackInfo<Value>& args) {
1609 RETURN_IF_BAD_ARG_COUNT(args, 5);
1610 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, sock);
1611 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, si_data_ptr);
1612 CHECK_TO_TYPE_OR_RETURN(args, args[2], Uint32, si_data_len);
1613 CHECK_TO_TYPE_OR_RETURN(args, args[3], Uint32, si_flags);
1614 CHECK_TO_TYPE_OR_RETURN(args, args[4], Uint32, so_datalen_ptr);
1615 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1623 GET_BACKING_STORE_OR_RETURN(wasi, args, &memory, &mem_size);
1624 CHECK_BOUNDS_OR_RETURN(args,
1628 CHECK_BOUNDS_OR_RETURN(args,
1639 args.GetReturnValue().Set(err);
1653 args.GetReturnValue().Set(err);
1657 void WASI::SockShutdown(const FunctionCallbackInfo<Value>& args) {
1661 RETURN_IF_BAD_ARG_COUNT(args, 2);
1662 CHECK_TO_TYPE_OR_RETURN(args, args[0], Uint32, sock);
1663 CHECK_TO_TYPE_OR_RETURN(args, args[1], Uint32, how);
1664 ASSIGN_INITIALIZED_OR_RETURN_UNWRAP(&wasi, args.This());
1667 args.GetReturnValue().Set(err);
1671 void WASI::_SetMemory(const FunctionCallbackInfo<Value>& args) {
1673 ASSIGN_OR_RETURN_UNWRAP(&wasi, args.This());
1674 CHECK_EQ(args.Length(), 1);
1675 if (!args[0]->IsWasmMemoryObject()) {
1681 wasi->memory_.Reset(wasi->env()->isolate(), args[0].As<WasmMemoryObject>());