Prev: using screenX and screenY?
Next: ECMA-262-5 in detail. Chapter 1. Properties and Property Descriptors.
From: Thomas 'PointedEars' Lahn on 30 Apr 2010 06:22 Lasse Reichstein Nielsen wrote: > Thomas 'PointedEars' Lahn <PointedEars(a)web.de> writes: >> Suffice it to say that Function.prototype.prototype does refer to an >> Object instance in JavaScript 1.8.2, and perhaps earlier versions, which, >> after tests, is going to be documented accordingly. > > As data points for non JavaScript browsers: > > IE 8: undefined > IE 9 prview: undefined > Opera 9.52: undefined > Safari 4.0.5 undefined > Chrome dev : null > > Mozilla seems to be alone in having Function.prototype.prototype be > an object, a fresh object with a constructor property satisfying > Function.prototype.prototype.constructor == Function.prototype Thanks, added for the next revision (tests pending). PointedEars -- Prototype.js was written by people who don't know javascript for people who don't know javascript. People who don't know javascript are not the best source of advice on designing systems that use javascript. -- Richard Cornford, cljs, <f806at$ail$1$8300dec7(a)news.demon.co.uk>
From: Thomas 'PointedEars' Lahn on 30 Apr 2010 06:27 Thomas 'PointedEars' Lahn wrote: > You are an idiot for insinuating that I had assigned `undefined' > intentionally, not knowing that that would be error-prone, when > there was/is sufficient evidence to suggest otherwise > (`if (jsx_object.isMethod(fHandler))'). if (!jsx_object.isMethod(fHandler)) (The problem there was that this condition was met, but the default value assigned to `fHandler' was wrong because of the change to closures.) PointedEars -- var bugRiddenCrashPronePieceOfJunk = ( navigator.userAgent.indexOf('MSIE 5') != -1 && navigator.userAgent.indexOf('Mac') != -1 ) // Plone, register_function.js:16
From: Lasse Reichstein Nielsen on 30 Apr 2010 06:43 Thomas 'PointedEars' Lahn <PointedEars(a)web.de> writes: > Garrett Smith wrote: >> | The Function prototype object is itself a Function object (its >> | [[Class]] is "Function") that, when invoked, accepts any arguments and >> | returns undefined. > > Again, that does _not_ say what can happen between the moment the function > is called and the moment it returns. So it does _not_ support your > assumption that the function would be a "no-op" either way. Ofcourse it does. It says what the function does. Just like any other function specified in the standard, it's not allowed to do observable things that are not stated. You are reading something into this specification that isn't there, namely that this is some minimal requrirement of what the function must do, and not, like everywhere else, the exact specification. Just because some specifications uses a numbered list of steps doesn't mean that that is what prevents the function from doing more than what those steps describe. This specification is equivalent to using the "algorithm": 1. Return undefined /L -- Lasse Reichstein Holst Nielsen 'Javascript frameworks is a disruptive technology'
From: Thomas 'PointedEars' Lahn on 30 Apr 2010 07:00 Lasse Reichstein Nielsen wrote: > Thomas 'PointedEars' Lahn <PointedEars(a)web.de> writes: >> Garrett Smith wrote: >>> | The Function prototype object is itself a Function object (its >>> | [[Class]] is "Function") that, when invoked, accepts any arguments and >>> | returns undefined. >> >> Again, that does _not_ say what can happen between the moment the >> function is called and the moment it returns. So it does _not_ support >> your assumption that the function would be a "no-op" either way. > > Ofcourse it does. It says what the function does. Just like any other > function specified in the standard, it's not allowed to do observable > things that are not stated. So it could very well do things that are not observable by the caller. > You are reading something into this specification that isn't there, namely > that this is some minimal requrirement of what the function must do, and > not, like everywhere else, the exact specification. No and no. > Just because some specifications uses a numbered list of steps doesn't > mean that that is what prevents the function from doing more than what > those steps describe. No. > This specification is equivalent to using the "algorithm": > 1. Return undefined I concur, but that is not at issue here. PointedEars -- realism: HTML 4.01 Strict evangelism: XHTML 1.0 Strict madness: XHTML 1.1 as application/xhtml+xml -- Bjoern Hoehrmann
From: Ry Nohryb on 30 Apr 2010 10:22
On Apr 30, 1:36 am, Garrett Smith <dhtmlkitc...(a)gmail.com> wrote: > > Ah, PointedEars, never one to miss an opportunity to harass the FAQ > Maintainer with his confusion. And here again... (...) s/Maintainer/guardian/ -- Jorge. |