Tim Caswell <[email protected]> wrote: > Yes there is a slight difference under the hood, at least in the initial > abstract syntax tree. Usually this is done in an async callback where the > return value is going to be ignored anyway. >
Is there an easy (or at least not ridiculously hard) way to get node to spit out the AST in human readable form? I've used the "return callback()" pattern anywhere that terseness and/or clarity indicated (e.g. short circuits/early returns as others have surmised), but what I'm afraid of is that it's actually causing an issue for some async scenarios. Because the compiler doesn't know what the callback will return, nor if returning that value from the caller will be meaningful, I'm wondering if it keeps the otherwise unneeded method on the stack so it can wait for the callback to return, and then return that value back up the stack. In contrast when using approach B the compiler can know explicitly both that the callback's return value is ignored by the caller, and that the caller is not going to return a value, so it's safe for it to immediately pop the caller off the stack (ala tail recursion). I have no idea if v8 actually does anything like this, it just seems possible. --Ken -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
