Wild guess but nobody pointed it out because your statement is wrong... "str1"+"str2" == "str1str2".... On Dec 13, 2012 2:35 PM, "Marcel Laverdet" <[email protected]> wrote:
> > var myobj = require( the-file ); > > eval( 'myobjs.' + file-name = myobj;'); > > How has no one commented on the fact that you're doing > numeric arithmetic on a bunch of strings? All this is going to do is give > you a parse error, and when you fix that you're just doing require(NaN). > > With all due respect to your 25 years of software I do think you need to > take a step back and start with the basics here until you build up a good > foundation. I don't think you're in the position right now to fully reason > whether eval() is evil or not. You can trust Rick, he is a JS oracle. > > On Wed, Dec 12, 2012 at 9:43 PM, Rick Waldron <[email protected]>wrote: > >> >> 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 <[email protected]> >> wrote: >> On 12/12/2012, at 18:37, Rick Waldron wrote: >> >> >> On Wed, Dec 12, 2012 at 2:17 AM, Isaac Schlueter <[email protected]> wrote: >> On Tue, Dec 11, 2012 at 7:18 PM, spqr <[email protected]> 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 [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 >> >> >> -- >> 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 >> > > -- > 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 > -- 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
