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.
-- 
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

Reply via email to