@@ -125,32 +125,25 @@ void BindingData::CanParse(const FunctionCallbackInfo<Value>& args) {
125
125
126
126
Environment* env = Environment::GetCurrent (args);
127
127
HandleScope handle_scope (env->isolate ());
128
- Context::Scope context_scope (env->context ());
129
128
130
129
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{};
133
133
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);
140
139
}
141
- auto out =
142
- ada::parse<ada::url_aggregator>(input.ToStringView (), base_pointer);
143
140
144
- args.GetReturnValue ().Set (out. has_value () );
141
+ args.GetReturnValue ().Set (can_parse );
145
142
}
146
143
147
144
bool BindingData::FastCanParse (Local<Value> receiver,
148
145
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 ));
154
147
}
155
148
156
149
CFunction BindingData::fast_can_parse_ (CFunction::Make(FastCanParse));
0 commit comments