Skip to content

Commit 8b6947f

Browse files
authored
url: call ada::can_parse directly
PR-URL: #47919 Reviewed-By: Matthew Aitken <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Darshan Sen <[email protected]>
1 parent 10b21e5 commit 8b6947f

File tree

1 file changed

+10
-17
lines changed

1 file changed

+10
-17
lines changed

src/node_url.cc

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -125,32 +125,25 @@ void BindingData::CanParse(const FunctionCallbackInfo<Value>& args) {
125125

126126
Environment* env = Environment::GetCurrent(args);
127127
HandleScope handle_scope(env->isolate());
128-
Context::Scope context_scope(env->context());
129128

130129
Utf8Value input(env->isolate(), args[0]);
131-
ada::result<ada::url_aggregator> base;
132-
ada::url_aggregator* base_pointer = nullptr;
130+
std::string_view input_view = input.ToStringView();
131+
132+
bool can_parse{};
133133
if (args[1]->IsString()) {
134-
base = ada::parse<ada::url_aggregator>(
135-
Utf8Value(env->isolate(), args[1]).ToString());
136-
if (!base) {
137-
return args.GetReturnValue().Set(false);
138-
}
139-
base_pointer = &base.value();
134+
Utf8Value base(env->isolate(), args[1]);
135+
std::string_view base_view = base.ToStringView();
136+
can_parse = ada::can_parse(input_view, &base_view);
137+
} else {
138+
can_parse = ada::can_parse(input_view);
140139
}
141-
auto out =
142-
ada::parse<ada::url_aggregator>(input.ToStringView(), base_pointer);
143140

144-
args.GetReturnValue().Set(out.has_value());
141+
args.GetReturnValue().Set(can_parse);
145142
}
146143

147144
bool BindingData::FastCanParse(Local<Value> receiver,
148145
const FastOneByteString& input) {
149-
std::string_view input_view(input.data, input.length);
150-
151-
auto output = ada::parse<ada::url_aggregator>(input_view);
152-
153-
return output.has_value();
146+
return ada::can_parse(std::string_view(input.data, input.length));
154147
}
155148

156149
CFunction BindingData::fast_can_parse_(CFunction::Make(FastCanParse));

0 commit comments

Comments
 (0)