Browse Source

url: use internal/util's getConstructorOf

PR-URL: https://github.com/nodejs/node/pull/12526
Reviewed-By: James M Snell <jasnell@gmail.com>
v6
Timothy Gu 8 years ago
parent
commit
061c5da010
  1. 14
      lib/internal/url.js

14
lib/internal/url.js

@ -5,6 +5,7 @@ const {
hexTable,
isHexTable
} = require('internal/querystring');
const { getConstructorOf } = require('internal/util');
const binding = process.binding('url');
const context = Symbol('context');
const cannotBeBase = Symbol('cannot-be-base');
@ -171,17 +172,6 @@ function onParseHashComplete(flags, protocol, username, password,
this[context].fragment = fragment;
}
function getEligibleConstructor(obj) {
while (obj !== null) {
if (Object.prototype.hasOwnProperty.call(obj, 'constructor') &&
typeof obj.constructor === 'function') {
return obj.constructor;
}
obj = Object.getPrototypeOf(obj);
}
return null;
}
class URL {
constructor(input, base) {
// toUSVString is not needed.
@ -220,7 +210,7 @@ class URL {
if (typeof depth === 'number' && depth < 0)
return opts.stylize('[Object]', 'special');
const ctor = getEligibleConstructor(this);
const ctor = getConstructorOf(this);
const obj = Object.create({
constructor: ctor === null ? URL : ctor

Loading…
Cancel
Save