> On 2012-01-03 08:45:27, Paul Lindner wrote:
> > I'm okay with the patch as-is, but would prefer something like this which 
> > is a modified version of the closure library goog.isDef
> > 
> > 
> > goog.isDef = function(val) {
> >   var undefined;
> >   return val !== undefined;
> > };
> >
> 
> Dan Dumont wrote:
>     Paul, is google's deployment running with advanced optimizations turned 
> on?
> 
> Stanton Sievers wrote:
>     Paul, where would such a definition live such that it is accessible 
> across all of the JavaScript files?  Any idea how we could hook that up?  I'd 
> be up for trying that... although, if we were going to introduce goog.isDef I 
> would like to replace all typeof instances with that, which is going to be a 
> much bigger change.

maybe add it to core.util?  Or possibly have its own feature which you add as a 
dependency to core...


- Ryan


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3332/#review4174
-----------------------------------------------------------


On 2011-12-29 20:05:42, Stanton Sievers wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/3332/
> -----------------------------------------------------------
> 
> (Updated 2011-12-29 20:05:42)
> 
> 
> Review request for shindig.
> 
> 
> Summary
> -------
> 
> The purpose of this patch is to remove equality checking against the 
> "undefined" keyword, i.e., "foo != undefined".  I've replaced such instances 
> with "typeof foo != 'undefined'" instead.  This eliminates possible errors 
> that can arise if the "undefined" keyword is reassigned.  
> 
> A little background regarding the motivation for this patch.... As of 
> ECMAScript 3 and before ECMAScript 5, undefined is a keyword but is not 
> restricted, thus, it's value can be re-assigned.  This is generally caused by 
> a programming error, such as assigning values to object attributes without 
> first checking that the object attribute exists - making them undefined.  
> When these types of errors occur they are difficult to track down and debug.  
> This patch is one way to help reduce possible errors caused by undefined 
> being re-assigned.
> 
> To find instances to replace, I searched for this regular expression in the 
> code base using Eclipse search within *.js files: =[ ]*undefined[ ]*
> 
> I ignored certain files, such as external libs (CodeMirror, etc) and most 
> tests.
> 
> 
> Diffs
> -----
> 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/content/samplecontainer/examples/commoncontainer/cconviews.js
>  1225624 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/container.util/util.js
>  1225624 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/core.io/io.js
>  1225624 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/core.json/json-flatten.js
>  1225624 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/i18n/datetimeparse.js
>  1225624 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/open-views/viewenhancements-container.js
>  1225624 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/shindig.container/shindig-container.js
>  1225624 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/main/javascript/features/shindig.uri/uri.js
>  1225624 
>   
> http://svn.apache.org/repos/asf/shindig/trunk/features/src/test/javascript/features/osapi/batchtest.js
>  1225624 
> 
> Diff: https://reviews.apache.org/r/3332/diff
> 
> 
> Testing
> -------
> 
> Built everything.  Ensured that the common container sample gadgets still 
> render.
> 
> 
> Thanks,
> 
> Stanton
> 
>

Reply via email to