Re-lgtm. On Thu, Sep 25, 2008 at 8:58 AM, Mads Ager <[EMAIL PROTECTED]> wrote: > > We call it anonymous to print these functions in the same way as other > JavaScript engines. However, we accidentally shadow global variables > named anonymous and allow recursion through the name anonymous. I > have updated the changelist to address these issues. Could you take > another look? > > -- Mads > > On Wed, Sep 24, 2008 at 10:34 AM, Christian Plesner Hansen > <[EMAIL PROTECTED]> wrote: >> >> Lgtm. >> >> Any idea why the function is called "anonymous"? Seems pointless (and >> self-contradictory since anonymous means "without name"). >> >> On Wed, Sep 24, 2008 at 10:31 AM, <[EMAIL PROTECTED]> wrote: >> > >> > Reviewers: plesner, >> > >> > Description: >> > Make sure that the body of the function created by calling Function is >> > on a line of its own. This allows the body to be terminated by a >> > single-line comment. >> > >> > This is a fix for http://code.google.com/p/v8/issues/detail?id=85 >> > >> > Please review this at http://codereview.chromium.org/4248 >> > >> > Affected files: >> > M src/v8natives.js >> > M test/mjsunit/function.js >> > >> > >> > Index: test/mjsunit/function.js >> > =================================================================== >> > --- test/mjsunit/function.js (revision 366) >> > +++ test/mjsunit/function.js (working copy) >> > @@ -27,23 +27,27 @@ >> > >> > var f = Function(); >> > assertTrue(typeof f() == 'undefined'); >> > -var f = new Function(); >> > +f = new Function(); >> > assertTrue(typeof f() == 'undefined'); >> > >> > -var f = Function('return 1'); >> > +f = Function('return 1'); >> > assertEquals(1, f()); >> > -var f = new Function('return 1'); >> > +f = new Function('return 1'); >> > assertEquals(1, f()); >> > >> > -var f = Function('return true'); >> > +f = Function('return true'); >> > assertTrue(f()); >> > -var f = new Function('return true'); >> > +f = new Function('return true'); >> > assertTrue(f()); >> > >> > -var f = Function('x', 'return x') >> > +f = Function('x', 'return x'); >> > assertEquals(1, f(1)); >> > assertEquals('bar', f('bar')); >> > assertTrue(typeof f() == 'undefined'); >> > + >> > +f = Function('x', 'return x // comment'); >> > +assertEquals(1, f(1)); >> > + >> > var x = {}; >> > assertTrue(x === f(x)); >> > var f = new Function('x', 'return x') >> > Index: src/v8natives.js >> > =================================================================== >> > --- src/v8natives.js (revision 366) >> > +++ src/v8natives.js (working copy) >> > @@ -406,7 +406,7 @@ >> > if (p.indexOf(')') != -1) throw MakeSyntaxError('unable_to_parse',[]); >> > } >> > var body = (n > 0) ? ToString(%_Arguments(n - 1)) : ''; >> > - var source = '(function anonymous(' + p + ') { ' + body + ' })'; >> > + var source = '(function anonymous(' + p + ') {\n ' + body + '\n})'; >> > >> > // The call to SetNewFunctionAttributes will ensure the prototype >> > // property of the resulting function is enumerable (ECMA262, 15.3.5.2). >> > >> > >> > >> > > >> > >> >> > > > > >
--~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
