@@ -294,6 +294,28 @@ void BindingData::Update(const FunctionCallbackInfo<Value>& args) {
294
294
.ToLocalChecked ());
295
295
}
296
296
297
+ void BindingData::ToASCII (const v8::FunctionCallbackInfo<v8::Value>& args) {
298
+ Environment* env = Environment::GetCurrent (args);
299
+ CHECK_GE (args.Length (), 1 );
300
+ CHECK (args[0 ]->IsString ());
301
+
302
+ Utf8Value input (env->isolate (), args[0 ]);
303
+ auto out = ada::idna::to_ascii (input.ToStringView ());
304
+ args.GetReturnValue ().Set (
305
+ String::NewFromUtf8 (env->isolate (), out.c_str ()).ToLocalChecked ());
306
+ }
307
+
308
+ void BindingData::ToUnicode (const v8::FunctionCallbackInfo<v8::Value>& args) {
309
+ Environment* env = Environment::GetCurrent (args);
310
+ CHECK_GE (args.Length (), 1 );
311
+ CHECK (args[0 ]->IsString ());
312
+
313
+ Utf8Value input (env->isolate (), args[0 ]);
314
+ auto out = ada::idna::to_unicode (input.ToStringView ());
315
+ args.GetReturnValue ().Set (
316
+ String::NewFromUtf8 (env->isolate (), out.c_str ()).ToLocalChecked ());
317
+ }
318
+
297
319
void BindingData::UpdateComponents (const ada::url_components& components,
298
320
const ada::scheme::type type) {
299
321
url_components_buffer_[0 ] = components.protocol_end ;
@@ -318,6 +340,8 @@ void BindingData::Initialize(Local<Object> target,
318
340
realm->AddBindingData <BindingData>(context, target);
319
341
if (binding_data == nullptr ) return ;
320
342
343
+ SetMethodNoSideEffect (context, target, " toASCII" , ToASCII);
344
+ SetMethodNoSideEffect (context, target, " toUnicode" , ToUnicode);
321
345
SetMethodNoSideEffect (context, target, " domainToASCII" , DomainToASCII);
322
346
SetMethodNoSideEffect (context, target, " domainToUnicode" , DomainToUnicode);
323
347
SetMethodNoSideEffect (context, target, " canParse" , CanParse);
@@ -328,6 +352,8 @@ void BindingData::Initialize(Local<Object> target,
328
352
329
353
void BindingData::RegisterExternalReferences (
330
354
ExternalReferenceRegistry* registry) {
355
+ registry->Register (ToASCII);
356
+ registry->Register (ToUnicode);
331
357
registry->Register (DomainToASCII);
332
358
registry->Register (DomainToUnicode);
333
359
registry->Register (CanParse);
0 commit comments