Skip to content

Commit 4a8ae50

Browse files
committed
url: handle URL.canParse without base parameter
PR-URL: nodejs#47547 Reviewed-By: Debadree Chatterjee <[email protected]> Reviewed-By: Matthew Aitken <[email protected]> Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
1 parent 2950c0d commit 4a8ae50

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/node_url.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ void BindingData::DomainToUnicode(const FunctionCallbackInfo<Value>& args) {
115115

116116
// TODO(@anonrig): Add V8 Fast API for CanParse method
117117
void BindingData::CanParse(const FunctionCallbackInfo<Value>& args) {
118-
CHECK_GE(args.Length(), 2);
118+
CHECK_GE(args.Length(), 1);
119119
CHECK(args[0]->IsString()); // input
120120
// args[1] // base url
121121

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Flags: --expose-internals
2+
'use strict';
3+
4+
require('../common');
5+
6+
const { URL } = require('url');
7+
const assert = require('assert');
8+
9+
let internalBinding;
10+
try {
11+
internalBinding = require('internal/test/binding').internalBinding;
12+
} catch (e) {
13+
console.log('using `test/parallel/test-whatwg-url-canparse` requires `--expose-internals`');
14+
throw e;
15+
}
16+
17+
const { canParse } = internalBinding('url');
18+
19+
// It should not throw when called without a base string
20+
assert.strictEqual(URL.canParse('https://example.org'), true);
21+
assert.strictEqual(canParse('https://example.org'), true);

0 commit comments

Comments
 (0)