| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 6b5c962 commit 43535f5
4 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -938,28 +938,15 @@ void SetupProcessObject(Environment* env, | |||
| 938 | 938 | #endif | |
| 939 | 939 | ||
| 940 | 940 | // process.argv | |
| 941 | - Local<Array> arguments = Array::New(env->isolate(), args.size()); | ||
| 942 | - for (size_t i = 0; i < args.size(); ++i) { | ||
| 943 | - arguments->Set(env->context(), i, | ||
| 944 | - String::NewFromUtf8(env->isolate(), args[i].c_str(), | ||
| 945 | - NewStringType::kNormal).ToLocalChecked()) | ||
| 946 | - .FromJust(); | ||
| 947 | - } | ||
| 948 | 941 | process->Set(env->context(), | |
| 949 | 942 | FIXED_ONE_BYTE_STRING(env->isolate(), "argv"), | |
| 950 | - arguments).FromJust(); | ||
| 943 | + ToV8Value(env->context(), args).ToLocalChecked()).FromJust(); | ||
| 951 | 944 | ||
| 952 | 945 | // process.execArgv | |
| 953 | - Local<Array> exec_arguments = Array::New(env->isolate(), exec_args.size()); | ||
| 954 | - for (size_t i = 0; i < exec_args.size(); ++i) { | ||
| 955 | - exec_arguments->Set(env->context(), i, | ||
| 956 | - String::NewFromUtf8(env->isolate(), exec_args[i].c_str(), | ||
| 957 | - NewStringType::kNormal).ToLocalChecked()) | ||
| 958 | - .FromJust(); | ||
| 959 | - } | ||
| 960 | 946 | process->Set(env->context(), | |
| 961 | 947 | FIXED_ONE_BYTE_STRING(env->isolate(), "execArgv"), | |
| 962 | - exec_arguments).FromJust(); | ||
| 948 | + ToV8Value(env->context(), exec_args) | ||
| 949 | + .ToLocalChecked()).FromJust(); | ||
| 963 | 950 | ||
| 964 | 951 | // create process.env | |
| 965 | 952 | process | |
@@ -1010,17 +997,10 @@ void SetupProcessObject(Environment* env, | |||
| 1010 | 997 | const std::vector<std::string>& preload_modules = | |
| 1011 | 998 | env->options()->preload_modules; | |
| 1012 | 999 | if (!preload_modules.empty()) { | |
| 1013 | - Local<Array> array = Array::New(env->isolate()); | ||
| 1014 | - for (unsigned int i = 0; i < preload_modules.size(); ++i) { | ||
| 1015 | - Local<String> module = String::NewFromUtf8(env->isolate(), | ||
| 1016 | - preload_modules[i].c_str(), | ||
| 1017 | - NewStringType::kNormal) | ||
| 1018 | - .ToLocalChecked(); | ||
| 1019 | - array->Set(env->context(), i, module).FromJust(); | ||
| 1020 | - } | ||
| 1021 | 1000 | READONLY_PROPERTY(process, | |
| 1022 | 1001 | "_preload_modules", | |
| 1023 | - array); | ||
| 1002 | + ToV8Value(env->context(), preload_modules) | ||
| 1003 | + .ToLocalChecked()); | ||
| 1024 | 1004 | } | |
| 1025 | 1005 | ||
| 1026 | 1006 | // --no-deprecation | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -15,9 +15,9 @@ using v8::Array; | |||
| 15 | 15 | using v8::Context; | |
| 16 | 16 | using v8::Function; | |
| 17 | 17 | using v8::FunctionCallbackInfo; | |
| 18 | - using v8::Integer; | ||
| 19 | 18 | using v8::Isolate; | |
| 20 | 19 | using v8::Local; | |
| 20 | + using v8::MaybeLocal; | ||
| 21 | 21 | using v8::Object; | |
| 22 | 22 | using v8::String; | |
| 23 | 23 | using v8::Uint32; | |
@@ -253,36 +253,21 @@ static void GetGroups(const FunctionCallbackInfo<Value>& args) { | |||
| 253 | 253 | Environment* env = Environment::GetCurrent(args); | |
| 254 | 254 | ||
| 255 | 255 | int ngroups = getgroups(0, nullptr); | |
| 256 | - | ||
| 257 | 256 | if (ngroups == -1) return env->ThrowErrnoException(errno, "getgroups"); | |
| 258 | 257 | ||
| 259 | - gid_t* groups = new gid_t[ngroups]; | ||
| 260 | - | ||
| 261 | - ngroups = getgroups(ngroups, groups); | ||
| 258 | + std::vector<gid_t> groups(ngroups); | ||
| 262 | 259 | ||
| 263 | - if (ngroups == -1) { | ||
| 264 | - delete[] groups; | ||
| 260 | + ngroups = getgroups(ngroups, groups.data()); | ||
| 261 | + if (ngroups == -1) | ||
| 265 | 262 | return env->ThrowErrnoException(errno, "getgroups"); | |
| 266 | - } | ||
| 267 | 263 | ||
| 268 | - Local<Array> groups_list = Array::New(env->isolate(), ngroups); | ||
| 269 | - bool seen_egid = false; | ||
| 264 | + groups.resize(ngroups); | ||
| 270 | 265 | gid_t egid = getegid(); | |
| 271 | - | ||
| 272 | - for (int i = 0; i < ngroups; i++) { | ||
| 273 | - groups_list->Set(env->context(), i, Integer::New(env->isolate(), groups[i])) | ||
| 274 | - .FromJust(); | ||
| 275 | - if (groups[i] == egid) seen_egid = true; | ||
| 276 | - } | ||
| 277 | - | ||
| 278 | - delete[] groups; | ||
| 279 | - | ||
| 280 | - if (seen_egid == false) | ||
| 281 | - groups_list | ||
| 282 | - ->Set(env->context(), ngroups, Integer::New(env->isolate(), egid)) | ||
| 283 | - .FromJust(); | ||
| 284 | - | ||
| 285 | - args.GetReturnValue().Set(groups_list); | ||
| 266 | + if (std::find(groups.begin(), groups.end(), egid) == groups.end()) | ||
| 267 | + groups.push_back(egid); | ||
| 268 | + MaybeLocal<Value> array = ToV8Value(env->context(), groups); | ||
| 269 | + if (!array.IsEmpty()) | ||
| 270 | + args.GetReturnValue().Set(array.ToLocalChecked()); | ||
| 286 | 271 | } | |
| 287 | 272 | ||
| 288 | 273 | static void SetGroups(const FunctionCallbackInfo<Value>& args) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -248,22 +248,12 @@ struct CryptoErrorVector : public std::vector<std::string> { | |||
| 248 | 248 | CHECK(!exception_v.IsEmpty()); | |
| 249 | 249 | ||
| 250 | 250 | if (!empty()) { | |
| 251 | - Local<Array> array = Array::New(env->isolate(), size()); | ||
| 252 | - CHECK(!array.IsEmpty()); | ||
| 253 | - | ||
| 254 | - for (const std::string& string : *this) { | ||
| 255 | - const size_t index = &string - &front(); | ||
| 256 | - Local<String> value = | ||
| 257 | - String::NewFromUtf8(env->isolate(), string.data(), | ||
| 258 | - NewStringType::kNormal, string.size()) | ||
| 259 | - .ToLocalChecked(); | ||
| 260 | - array->Set(env->context(), index, value).FromJust(); | ||
| 261 | - } | ||
| 262 | - | ||
| 263 | 251 | CHECK(exception_v->IsObject()); | |
| 264 | 252 | Local<Object> exception = exception_v.As<Object>(); | |
| 265 | 253 | exception->Set(env->context(), | |
| 266 | - env->openssl_error_stack(), array).FromJust(); | ||
| 254 | + env->openssl_error_stack(), | ||
| 255 | + ToV8Value(env->context(), *this).ToLocalChecked()) | ||
| 256 | + .FromJust(); | ||
| 267 | 257 | } | |
| 268 | 258 | ||
| 269 | 259 | return exception_v; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1190,15 +1190,6 @@ inline std::vector<std::string> FromJSStringArray(Environment* env, | |||
| 1190 | 1190 | return vec; | |
| 1191 | 1191 | } | |
| 1192 | 1192 | ||
| 1193 | - inline Local<Array> ToJSStringArray(Environment* env, | ||
| 1194 | - const std::vector<std::string>& vec) { | ||
| 1195 | - Isolate* isolate = env->isolate(); | ||
| 1196 | - Local<Array> array = Array::New(isolate, vec.size()); | ||
| 1197 | - for (size_t n = 0; n < vec.size(); n++) | ||
| 1198 | - array->Set(env->context(), n, Utf8String(isolate, vec[n])).FromJust(); | ||
| 1199 | - return array; | ||
| 1200 | - } | ||
| 1201 | - | ||
| 1202 | 1193 | inline url_data HarvestBase(Environment* env, Local<Object> base_obj) { | |
| 1203 | 1194 | url_data base; | |
| 1204 | 1195 | Local<Context> context = env->context(); | |
@@ -2119,7 +2110,7 @@ static inline void SetArgs(Environment* env, | |||
| 2119 | 2110 | if (url.port > -1) | |
| 2120 | 2111 | argv[ARG_PORT] = Integer::New(isolate, url.port); | |
| 2121 | 2112 | if (url.flags & URL_FLAGS_HAS_PATH) | |
| 2122 | - argv[ARG_PATH] = ToJSStringArray(env, url.path); | ||
| 2113 | + argv[ARG_PATH] = ToV8Value(env->context(), url.path).ToLocalChecked(); | ||
| 2123 | 2114 | } | |
| 2124 | 2115 | ||
| 2125 | 2116 | static void Parse(Environment* env, | |
| Back | FazBrowse Home | New Git URL |
0 commit comments