You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by et...@apache.org on 2008/03/06 02:52:52 UTC
svn commit: r634118 - in /incubator/shindig/trunk/features/core: json.js
util.js
Author: etnu
Date: Wed Mar 5 17:52:51 2008
New Revision: 634118
URL: http://svn.apache.org/viewvc?rev=634118&view=rev
Log:
Fixed a problem in json.js due to use of toJSON(). While this is a useful addition, it's problematic because it conflicts with other common javascript libraries.
Updated makeClosure to return the return value of the caller (SHINDIG-111)
Modified:
incubator/shindig/trunk/features/core/json.js
incubator/shindig/trunk/features/core/util.js
Modified: incubator/shindig/trunk/features/core/json.js
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/features/core/json.js?rev=634118&r1=634117&r2=634118&view=diff
==============================================================================
--- incubator/shindig/trunk/features/core/json.js (original)
+++ incubator/shindig/trunk/features/core/json.js Wed Mar 5 17:52:51 2008
@@ -109,10 +109,7 @@
if (!value) {
return 'null';
}
- // If the object has a toJSON method, call it, and stringify the result.
- if (typeof value.toJSON === 'function') {
- return stringify(value.toJSON());
- }
+ // toJSON check removed; re-implement when it doesn't break other libs.
a = [];
if (typeof value.length === 'number' &&
!(value.propertyIsEnumerable('length'))) {
Modified: incubator/shindig/trunk/features/core/util.js
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/features/core/util.js?rev=634118&r1=634117&r2=634118&view=diff
==============================================================================
--- incubator/shindig/trunk/features/core/util.js (original)
+++ incubator/shindig/trunk/features/core/util.js Wed Mar 5 17:52:51 2008
@@ -151,7 +151,7 @@
for (var i = 0, j = arguments.length; i < j; ++i) {
tmpArgs.push(arguments[i]);
}
- callback.apply(scope, tmpArgs);
+ return callback.apply(scope, tmpArgs);
};
},
Re: svn commit: r634118 - in /incubator/shindig/trunk/features/core: json.js util.js
Posted by Kevin Brown <et...@google.com>.
Yeah, it looks like prototype and scriptaculous (and possibly some others)
disagree with crockford on what the toJSON() method returns.
Crockford says: Returns a json primitive (string, number, object, or array),
which you would then pass to a separate encoding routine.
Libs say: Returns a json-encoded value.
We'll probably just want to wait until major browser vendors implement
native JSON to decide what's right here.
On Wed, Mar 5, 2008 at 5:58 PM, Paul Lindner <pl...@hi5.com> wrote:
> THANK YOU!
>
> I was wondering why Scriptaculous was stringifying arrays to strings with
> brackets...
>
>
> On 3/5/08 5:52 PM, "etnu@apache.org" <et...@apache.org> wrote:
>
> > Author: etnu
> > Date: Wed Mar 5 17:52:51 2008
> > New Revision: 634118
> >
> > URL: http://svn.apache.org/viewvc?rev=634118&view=rev
> > Log:
> > Fixed a problem in json.js due to use of toJSON(). While this is a
> useful
> > addition, it's problematic because it conflicts with other common
> javascript
> > libraries.
> > Updated makeClosure to return the return value of the caller
> (SHINDIG-111)
> >
> > Modified:
> > incubator/shindig/trunk/features/core/json.js
> > incubator/shindig/trunk/features/core/util.js
> >
> > Modified: incubator/shindig/trunk/features/core/json.js
> > URL:
> >
> http://svn.apache.org/viewvc/incubator/shindig/trunk/features/core/json.js?rev
> > =634118&r1=634117&r2=634118&view=diff
> >
> ==============================================================================
> > --- incubator/shindig/trunk/features/core/json.js (original)
> > +++ incubator/shindig/trunk/features/core/json.js Wed Mar 5 17:52:51
> 2008
> > @@ -109,10 +109,7 @@
> > if (!value) {
> > return 'null';
> > }
> > - // If the object has a toJSON method, call it, and stringify the
> result.
> > - if (typeof value.toJSON === 'function') {
> > - return stringify(value.toJSON());
> > - }
> > + // toJSON check removed; re-implement when it doesn't break other
> libs.
> > a = [];
> > if (typeof value.length === 'number' &&
> > !(value.propertyIsEnumerable('length'))) {
> >
> > Modified: incubator/shindig/trunk/features/core/util.js
> > URL:
> >
> http://svn.apache.org/viewvc/incubator/shindig/trunk/features/core/util.js?rev
> > =634118&r1=634117&r2=634118&view=diff
> >
> ==============================================================================
> > --- incubator/shindig/trunk/features/core/util.js (original)
> > +++ incubator/shindig/trunk/features/core/util.js Wed Mar 5 17:52:51
> 2008
> > @@ -151,7 +151,7 @@
> > for (var i = 0, j = arguments.length; i < j; ++i) {
> > tmpArgs.push(arguments[i]);
> > }
> > - callback.apply(scope, tmpArgs);
> > + return callback.apply(scope, tmpArgs);
> > };
> > },
> >
> >
> >
>
>
--
~Kevin
Re: svn commit: r634118 - in /incubator/shindig/trunk/features/core:
json.js util.js
Posted by Paul Lindner <pl...@hi5.com>.
THANK YOU!
I was wondering why Scriptaculous was stringifying arrays to strings with
brackets...
On 3/5/08 5:52 PM, "etnu@apache.org" <et...@apache.org> wrote:
> Author: etnu
> Date: Wed Mar 5 17:52:51 2008
> New Revision: 634118
>
> URL: http://svn.apache.org/viewvc?rev=634118&view=rev
> Log:
> Fixed a problem in json.js due to use of toJSON(). While this is a useful
> addition, it's problematic because it conflicts with other common javascript
> libraries.
> Updated makeClosure to return the return value of the caller (SHINDIG-111)
>
> Modified:
> incubator/shindig/trunk/features/core/json.js
> incubator/shindig/trunk/features/core/util.js
>
> Modified: incubator/shindig/trunk/features/core/json.js
> URL:
> http://svn.apache.org/viewvc/incubator/shindig/trunk/features/core/json.js?rev
> =634118&r1=634117&r2=634118&view=diff
> ==============================================================================
> --- incubator/shindig/trunk/features/core/json.js (original)
> +++ incubator/shindig/trunk/features/core/json.js Wed Mar 5 17:52:51 2008
> @@ -109,10 +109,7 @@
> if (!value) {
> return 'null';
> }
> - // If the object has a toJSON method, call it, and stringify the result.
> - if (typeof value.toJSON === 'function') {
> - return stringify(value.toJSON());
> - }
> + // toJSON check removed; re-implement when it doesn't break other libs.
> a = [];
> if (typeof value.length === 'number' &&
> !(value.propertyIsEnumerable('length'))) {
>
> Modified: incubator/shindig/trunk/features/core/util.js
> URL:
> http://svn.apache.org/viewvc/incubator/shindig/trunk/features/core/util.js?rev
> =634118&r1=634117&r2=634118&view=diff
> ==============================================================================
> --- incubator/shindig/trunk/features/core/util.js (original)
> +++ incubator/shindig/trunk/features/core/util.js Wed Mar 5 17:52:51 2008
> @@ -151,7 +151,7 @@
> for (var i = 0, j = arguments.length; i < j; ++i) {
> tmpArgs.push(arguments[i]);
> }
> - callback.apply(scope, tmpArgs);
> + return callback.apply(scope, tmpArgs);
> };
> },
>
>
>