★ wanayoo — archive 1999 https://github.com/nodejs/node/pull/21412Nouvelle recherche | Portail wanayoo
Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lib: name anonymous callbacks #21412

Closed
wants to merge 4 commits into from

Conversation

@mlrv
Copy link
Contributor

mlrv commented Jun 19, 2018

First contribution here!

This commit is to help in the effort to name all anonymous
functions to help when heap debugging. Specifically, this commit
fixes some anonymous functions used as listeners in the lib/ folder.

Refs: #8913

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • commit message follows commit guidelines
@@ -240,7 +240,7 @@ exports.translatePeerCertificate = function translatePeerCertificate(c) {
c.infoAccess = Object.create(null);

// XXX: More key validation?
info.replace(/([^\n:]*):([^\n]*)(?:\n|$)/g, function(all, key, val) {
info.replace(/([^\n:]*):([^\n]*)(?:\n|$)/g, function replacerCallback(all, key, val) {

This comment has been minimized.

@Trott

Trott Jun 19, 2018

Member

Is that supposed to be replaceCallback instead of replacerCallback?

This comment has been minimized.

@mlrv

mlrv Jun 20, 2018

Author Contributor

It wasn't a typo in my head. I suppose that it makes sense in both versions:

  • replacerCallback -> the replacer function (inside replace)
  • replaceCallback -> the callback of the replace function

Happy to change it of course

This comment has been minimized.

@Trott

Trott Jun 20, 2018

Member

Nah, if it wasn't a typo, it's fine with me. Just wanted to give you the opportunity to fix it up if it was a mistake.

@Trott
Copy link
Member

Trott left a comment

LGTM if CI is green

@trivikr

This comment has been minimized.

Copy link
Contributor

trivikr commented Jun 20, 2018

@benjamingr
Copy link
Member

benjamingr left a comment

Thanks for doing this and following up! 🎉

@mlrv

This comment has been minimized.

Copy link
Contributor Author

mlrv commented Jun 20, 2018

Glad to see it all seems to go well :)

If I understood correctly, the standard process is to wait at least 48 hours before merging, am I right?

Is there anything else that needs to be done?

@benjamingr

This comment has been minimized.

Copy link
Member

benjamingr commented Jun 20, 2018

@mlrv that is correct, we can fast track this one though since it's naming rather than functionality. This is all explained here: https://github.com/nodejs/node/blob/master/COLLABORATOR_GUIDE.md#waiting-for-approvals . It also explicitly states that since this is a good-first-issue then fast-tracking might be appropriate.

Collaborators 👍 this comment to support fast-tracking this change.

@BridgeAR BridgeAR added the fast-track label Jun 20, 2018

@Trott

This comment has been minimized.

Copy link
Member

Trott commented Jun 20, 2018

CI again to try to confirm Windows failure is unlikely to be related: https://ci.nodejs.org/job/node-test-pull-request/15538/

@lpinca

lpinca approved these changes Jun 20, 2018

@Trott

This comment has been minimized.

Copy link
Member

Trott commented Jun 21, 2018

Hmmm... let's try a total re-run:

CI: https://ci.nodejs.org/job/node-test-pull-request/15555/

@apapirovski
Copy link
Member

apapirovski left a comment

Hi @mlrv — thank you for working on this. In my opinion naming should provide some value, rather than just being decorative. Names such as socketOnceCallback do not help anyone and do not make the stack trace any more descriptive than an anonymous function would. I've left some comments regarding some potentially more useful names.

@@ -721,7 +721,7 @@ Readable.prototype.pipe = function(dest, pipeOpts) {
};

function pipeOnDrain(src) {
return function() {
return function pipeOnDrainInner() {

This comment has been minimized.

@apapirovski

apapirovski Jun 25, 2018

Member

pipeOnDrainCallback? It won't be "inner" by the time it's in a stack trace.

@@ -185,7 +185,7 @@ OutgoingMessage.prototype.setTimeout = function setTimeout(msecs, callback) {
}

if (!this.socket) {
this.once('socket', function(socket) {
this.once('socket', function socketOnceCallback(socket) {

This comment has been minimized.

@apapirovski

apapirovski Jun 25, 2018

Member

socketSetTimeoutOnConnect?

@@ -202,7 +202,7 @@ OutgoingMessage.prototype.destroy = function destroy(error) {
if (this.socket) {
this.socket.destroy(error);
} else {
this.once('socket', function(socket) {
this.once('socket', function socketOnceCallback(socket) {

This comment has been minimized.

@apapirovski

apapirovski Jun 25, 2018

Member

socketDestroyOnConnect?

@@ -240,7 +240,7 @@ exports.translatePeerCertificate = function translatePeerCertificate(c) {
c.infoAccess = Object.create(null);

// XXX: More key validation?
info.replace(/([^\n:]*):([^\n]*)(?:\n|$)/g, function(all, key, val) {
info.replace(/([^\n:]*):([^\n]*)(?:\n|$)/g, function replacerCallback(all, key, val) {

This comment has been minimized.

@apapirovski

apapirovski Jun 25, 2018

Member

Switch to an anonymous function instead of naming it? The function name is not particularly useful.

This comment has been minimized.

@Trott

Trott Jun 26, 2018

Member

I thought there was consensus that naming anonymous callback functions was helpful. If that's not the case, I should update #8913 (comment).

This comment has been minimized.

@mlrv

mlrv Jun 29, 2018

Author Contributor

@apapirovski any update on this?

This comment has been minimized.

@apapirovski

apapirovski Jul 29, 2018

Member

My bad here as far as dropping the ball and misphrasing. What I meant to say is: I think this should just be an arrow function. I don't think we gain much by naming callbacks for things like String.prototype.replace.

This comment has been minimized.

@mlrv

mlrv Jul 29, 2018

Author Contributor

I implemented the suggestions and fixed the conflicts. Happy to go ahead if all the checks are green?

@mlrv

This comment has been minimized.

Copy link
Contributor Author

mlrv commented Jun 26, 2018

Hi @apapirovski, thanks for the feedback, I totally see your point. Happy to change the names if you think those could be more helpful. On the last comment, not sure I agree with you, what do other people think?

@@ -240,7 +240,7 @@ exports.translatePeerCertificate = function translatePeerCertificate(c) {
c.infoAccess = Object.create(null);

// XXX: More key validation?
info.replace(/([^\n:]*):([^\n]*)(?:\n|$)/g, function (all, key, val) {
info.replace(/([^\n:]*):([^\n]*)(?:\n|$)/g, function(all, key, val) {

This comment has been minimized.

@apapirovski

apapirovski Jul 30, 2018

Member

I would suggest just using (all, key, val) => { here.

@mlrv

This comment has been minimized.

Copy link
Contributor Author

mlrv commented Jul 30, 2018

@benjamingr all green, good to go? :)

@Trott

This comment has been minimized.

@Trott Trott dismissed their stale review Aug 1, 2018

not sure about the arrow function fitting in with the rest but won't block

@Trott

This comment has been minimized.

Copy link
Member

Trott commented Aug 1, 2018

Weird. CI failed on git due to a conflict. Let's try again...

CI: https://ci.nodejs.org/job/node-test-pull-request/16105/

@Trott

This comment has been minimized.

Copy link
Member

Trott commented Aug 1, 2018

GitHub says this has no conflicts with the base branch, but manually trying to apply the changes shows conflicts. I'll resolve them, push back up, and restart CI.

mlrv added some commits Jun 19, 2018

lib: name anonymous callbacks
This commit is to help in the effort to name all anonymous
functions to help when heap debugging. Specifically, this commit
fixes some anonymous functions used as listeners in the lib/ folder.

Refs: #8913

@Trott Trott force-pushed the mlrv:marco/issue-8913 branch from 760ec4c to b1e3dc1 Aug 1, 2018

@Trott

This comment has been minimized.

@Trott

This comment has been minimized.

Copy link
Member

Trott commented Aug 1, 2018

Might be good for people to double-check the changes now that I've done a rebase and resolved conflicts.

@Trott

This comment has been minimized.

Copy link
Member

Trott commented Aug 3, 2018

maclover7 added a commit that referenced this pull request Aug 4, 2018

http,tls: name anonymous callbacks
This commit is to help in the effort to name all anonymous
functions to help when heap debugging. Specifically, this commit
fixes some anonymous functions used as listeners in the lib/ folder.

PR-URL: #21412
Reviewed-By: Weijia Wang <starkwang@126.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: Jon Moss <me@jonathanmoss.me>
Refs: #8913
@maclover7

This comment has been minimized.

Copy link
Member

maclover7 commented Aug 4, 2018

Landed in d7496bf, congrats on your first PR to Node.js!
❤️ 💚 💙 💛 💜

@maclover7 maclover7 closed this Aug 4, 2018

targos added a commit that referenced this pull request Aug 6, 2018

http,tls: name anonymous callbacks
This commit is to help in the effort to name all anonymous
functions to help when heap debugging. Specifically, this commit
fixes some anonymous functions used as listeners in the lib/ folder.

PR-URL: #21412
Reviewed-By: Weijia Wang <starkwang@126.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
Reviewed-By: Jon Moss <me@jonathanmoss.me>
Refs: #8913

@rvagg rvagg referenced this pull request Aug 13, 2018

Merged

Release proposal: v10.9.0 #22295

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.