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

Reply via email to