Skip to content

Commit

Permalink
dns: use url module instead of punycode for IDNA
Browse files Browse the repository at this point in the history
PR-URL: nodejs#35091
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
  • Loading branch information
aduh95 authored and sbaayel committed Dec 28, 2023
1 parent 741c193 commit 78b649f
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 5 deletions.
2 changes: 2 additions & 0 deletions doc/api/intl.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ option:
| `String.prototype.toLocale*Case()` | partial (not locale-aware) | full | full | full |
| [`Number.prototype.toLocaleString()`][] | partial (not locale-aware) | partial/full (depends on OS) | partial (English-only) | full |
| `Date.prototype.toLocale*String()` | partial (not locale-aware) | partial/full (depends on OS) | partial (English-only) | full |
| [Legacy URL Parser][] | partial (no IDN support) | full | full | full |
| [WHATWG URL Parser][] | partial (no IDN support) | full | full | full |
| [`require('buffer').transcode()`][] | none (function does not exist) | full | full | full |
| [REPL][] | partial (inaccurate line editing) | full | full | full |
Expand Down Expand Up @@ -193,6 +194,7 @@ to be helpful:
[ECMA-262]: https://tc39.github.io/ecma262/
[ECMA-402]: https://tc39.github.io/ecma402/
[ICU]: http://site.icu-project.org/
[Legacy URL parser]: url.md#url_legacy_url_api
[REPL]: repl.md#repl_repl
[Test262]: https://github.com/tc39/test262/tree/HEAD/test/intl402
[WHATWG URL parser]: url.md#url_the_whatwg_url_api
Expand Down
4 changes: 2 additions & 2 deletions lib/internal/idna.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ if (internalBinding('config').hasIntl) {
const { toASCII, toUnicode } = internalBinding('icu');
module.exports = { toASCII, toUnicode };
} else {
const { toASCII, toUnicode } = require('punycode');
module.exports = { toASCII, toUnicode };
const { domainToASCII, domainToUnicode } = require('internal/url');
module.exports = { toASCII: domainToASCII, toUnicode: domainToUnicode };
}
2 changes: 1 addition & 1 deletion test/parallel/test-bootstrap-modules.js
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ if (!common.isMainThread) {
if (common.hasIntl) {
expectedModules.add('Internal Binding icu');
} else {
expectedModules.add('NativeModule punycode');
expectedModules.add('NativeModule url');
}

if (process.features.inspector) {
Expand Down
5 changes: 4 additions & 1 deletion test/parallel/test-url-format.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
'use strict';
require('../common');
const common = require('../common');
const assert = require('assert');
const url = require('url');

if (!common.hasIntl)
common.skip('missing Intl');

// Formatting tests to verify that it'll format slightly wonky content to a
// valid URL.
const formatTests = {
Expand Down
6 changes: 5 additions & 1 deletion test/parallel/test-url-parse-format.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
'use strict';
require('../common');
const common = require('../common');

if (!common.hasIntl)
common.skip('missing Intl');

const assert = require('assert');
const inspect = require('util').inspect;

Expand Down

0 comments on commit 78b649f

Please sign in to comment.