Skip to content

Commit 4d19a45

Browse files
committed
Revert "src: do proper Maybe usage"
This reverts commit 4bd6caf. Refs: #47588 (comment) Signed-off-by: Darshan Sen <raisinten@gmail.com>
1 parent 4c5f8f2 commit 4d19a45

File tree

3 files changed

+20
-21
lines changed

3 files changed

+20
-21
lines changed

src/json_parser.cc

+11-13
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@ namespace node {
77
using v8::ArrayBuffer;
88
using v8::Context;
99
using v8::Isolate;
10-
using v8::Just;
1110
using v8::Local;
12-
using v8::Maybe;
13-
using v8::Nothing;
1411
using v8::Object;
1512
using v8::String;
1613
using v8::Value;
@@ -61,7 +58,8 @@ bool JSONParser::Parse(const std::string& content) {
6158
return true;
6259
}
6360

64-
Maybe<std::string> JSONParser::GetTopLevelStringField(std::string_view field) {
61+
std::optional<std::string> JSONParser::GetTopLevelStringField(
62+
std::string_view field) {
6563
Isolate* isolate = isolate_.get();
6664
Local<Context> context = context_.Get(isolate);
6765
Local<Object> content_object = content_.Get(isolate);
@@ -71,17 +69,17 @@ Maybe<std::string> JSONParser::GetTopLevelStringField(std::string_view field) {
7169
isolate, errors::PrinterTryCatch::kDontPrintSourceLine);
7270
Local<Value> field_local;
7371
if (!ToV8Value(context, field, isolate).ToLocal(&field_local)) {
74-
return Nothing<std::string>();
72+
return {};
7573
}
7674
if (!content_object->Get(context, field_local).ToLocal(&value) ||
7775
!value->IsString()) {
78-
return Nothing<std::string>();
76+
return {};
7977
}
8078
Utf8Value utf8_value(isolate, value);
81-
return Just(utf8_value.ToString());
79+
return utf8_value.ToString();
8280
}
8381

84-
Maybe<bool> JSONParser::GetTopLevelBoolField(std::string_view field) {
82+
std::optional<bool> JSONParser::GetTopLevelBoolField(std::string_view field) {
8583
Isolate* isolate = isolate_.get();
8684
Local<Context> context = context_.Get(isolate);
8785
Local<Object> content_object = content_.Get(isolate);
@@ -92,19 +90,19 @@ Maybe<bool> JSONParser::GetTopLevelBoolField(std::string_view field) {
9290
isolate, errors::PrinterTryCatch::kDontPrintSourceLine);
9391
Local<Value> field_local;
9492
if (!ToV8Value(context, field, isolate).ToLocal(&field_local)) {
95-
return Nothing<bool>();
93+
return {};
9694
}
9795
if (!content_object->Has(context, field_local).To(&has_field)) {
98-
return Nothing<bool>();
96+
return {};
9997
}
10098
if (!has_field) {
101-
return Just(false);
99+
return false;
102100
}
103101
if (!content_object->Get(context, field_local).ToLocal(&value) ||
104102
!value->IsBoolean()) {
105-
return Nothing<bool>();
103+
return {};
106104
}
107-
return Just(value->BooleanValue(isolate));
105+
return value->BooleanValue(isolate);
108106
}
109107

110108
} // namespace node

src/json_parser.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
55

66
#include <memory>
7+
#include <optional>
78
#include <string>
89
#include "util.h"
910
#include "v8.h"
@@ -17,8 +18,8 @@ class JSONParser {
1718
JSONParser();
1819
~JSONParser() {}
1920
bool Parse(const std::string& content);
20-
v8::Maybe<std::string> GetTopLevelStringField(std::string_view field);
21-
v8::Maybe<bool> GetTopLevelBoolField(std::string_view field);
21+
std::optional<std::string> GetTopLevelStringField(std::string_view field);
22+
std::optional<bool> GetTopLevelBoolField(std::string_view field);
2223

2324
private:
2425
// We might want a lighter-weight JSON parser for this use case. But for now

src/node_sea.cc

+6-6
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ std::optional<SeaConfig> ParseSingleExecutableConfig(
161161
}
162162

163163
result.main_path =
164-
parser.GetTopLevelStringField("main").FromMaybe(std::string());
164+
parser.GetTopLevelStringField("main").value_or(std::string());
165165
if (result.main_path.empty()) {
166166
FPrintF(stderr,
167167
"\"main\" field of %s is not a non-empty string\n",
@@ -170,23 +170,23 @@ std::optional<SeaConfig> ParseSingleExecutableConfig(
170170
}
171171

172172
result.output_path =
173-
parser.GetTopLevelStringField("output").FromMaybe(std::string());
173+
parser.GetTopLevelStringField("output").value_or(std::string());
174174
if (result.output_path.empty()) {
175175
FPrintF(stderr,
176176
"\"output\" field of %s is not a non-empty string\n",
177177
config_path);
178178
return std::nullopt;
179179
}
180180

181-
bool disable_experimental_sea_warning;
182-
if (!parser.GetTopLevelBoolField("disableExperimentalSEAWarning")
183-
.To(&disable_experimental_sea_warning)) {
181+
std::optional<bool> disable_experimental_sea_warning =
182+
parser.GetTopLevelBoolField("disableExperimentalSEAWarning");
183+
if (!disable_experimental_sea_warning.has_value()) {
184184
FPrintF(stderr,
185185
"\"disableExperimentalSEAWarning\" field of %s is not a Boolean\n",
186186
config_path);
187187
return std::nullopt;
188188
}
189-
if (disable_experimental_sea_warning) {
189+
if (disable_experimental_sea_warning.value()) {
190190
result.flags |= SeaFlags::kDisableExperimentalSeaWarning;
191191
}
192192

0 commit comments

Comments
 (0)