From c1cd731abc38433d2deda9274cf7522fb651d52b Mon Sep 17 00:00:00 2001 From: Weijia Wang <381152119@qq.com> Date: Sun, 8 Oct 2017 10:36:28 +0800 Subject: [PATCH] url: using util._extend for improving profermace `Object.assign` is much slower than `util._extend` according to the refs. This change is to convert the `Object.assign` to use `util._extend` in url module for improving profermance. PR-URL: https://github.com/nodejs/node/pull/16081 Refs: https://github.com/nodejs/CTC/issues/62 Reviewed-By: Anna Henningsen Reviewed-By: Ruben Bridgewater Reviewed-By: Yuta Hiroto Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Timothy Gu Reviewed-By: Refael Ackermann Reviewed-By: Brian White --- lib/internal/url.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/internal/url.js b/lib/internal/url.js index cf0271691a5..18594a86fd1 100644 --- a/lib/internal/url.js +++ b/lib/internal/url.js @@ -170,7 +170,7 @@ class URLSearchParams { return ctx.stylize('[Object]', 'special'); var separator = ', '; - var innerOpts = Object.assign({}, ctx); + var innerOpts = util._extend({}, ctx); if (recurseTimes !== null) { innerOpts.depth = recurseTimes - 1; } @@ -373,7 +373,7 @@ Object.defineProperties(URL.prototype, { value: function format(options) { if (options && typeof options !== 'object') throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'options', 'object'); - options = Object.assign({ + options = util._extend({ fragment: true, unicode: false, search: true, @@ -1244,7 +1244,7 @@ defineIDLClass(URLSearchParamsIteratorPrototype, 'URLSearchParamsIterator', { if (typeof recurseTimes === 'number' && recurseTimes < 0) return ctx.stylize('[Object]', 'special'); - const innerOpts = Object.assign({}, ctx); + const innerOpts = util._extend({}, ctx); if (recurseTimes !== null) { innerOpts.depth = recurseTimes - 1; }