On Wednesday, December 12, 2012 at 8:09 PM, Jorge Chamorro wrote:
> On 13/12/2012, at 01:47, Rick Waldron wrote: > > > > On Wed, Dec 12, 2012 at 7:20 PM, Jorge Chamorro <jo...@jorgechamorro.com> > > wrote: > > On 12/12/2012, at 18:37, Rick Waldron wrote: > > > > > > On Wed, Dec 12, 2012 at 2:17 AM, Isaac Schlueter <i...@izs.me> wrote: > > > On Tue, Dec 11, 2012 at 7:18 PM, spqr <sritacc...@gmail.com> wrote: > > > > maybe my question should have been "why does JavaScript have eval()?" > > > > ;-) > > > > > > > > > I think a lot of people have wondered the same thing. > > > > > > Yes, it has its uses, but at this point, I don't know of any that > > > aren't better served using some other mechanism. eval() has weird > > > optimization-destroying semantics that cannot ever be changed, due to > > > the fact that JavaScript must be backwards compatible forever. > > > > > > > > > Runtime code generation? new Function( thecode ) works just as well, I > > > guess > > > > ...sometimes: > > > > (function (p) { > > > > eval("(function(){console.log(p)})")(); > > > > try { > > Function("console.log(p)")(); > > } > > catch (e) { > > console.log("FAIL -> "+ e.message); > > } > > > > })("OK"); > > > > OK > > FAIL -> Can't find variable: p > > > > > > Of course not, but that's not what I was talking about, is it? I definitely > > said "Runtime code generation", by which I meant "the entire program" is > > first generated, by some means, into a string, which is then eval'ed. See > > also: Traceur, CoffeeScript (anything the compiles something else into > > JavaScript at runtime) > > > (Sorry I hit send too soon) > > Well put, simple as that, I completely agree. > > What eval() is: a call right to the compiler as in compile(program), which is > -no matter what they say- a very nice -power- feature to have. > > And a footgun? Perhaps *sometimes*, yes, so? Beware and don't be fool! > > Yet the fools are foolish and there's little to do about that, neither eval() > *nor*the*threads* are evil, nor the culprits. I agree with every single word and all of the sentiments they imply. Rick > -- > Jorge. > > -- > 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 nodejs@googlegroups.com > To unsubscribe from this group, send email to > nodejs+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > -- 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 nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en