Capitalized Deferred & _Deferred to clearly mark them as new types, like Event.
[jquery.git] / src / core.js
index 79ea5ce..1beebd1 100644 (file)
@@ -546,6 +546,28 @@ jQuery.extend({
                        jQuery.error( "Invalid JSON: " + data );
                }
        },
+       
+       // Cross-browser xml parsing
+       // (xml & tmp used internally)
+       parseXML: function( data , xml , tmp ) {
+
+               if ( window.DOMParser ) { // Standard
+                       tmp = new DOMParser();
+                       xml = tmp.parseFromString( data , "text/xml" );
+               } else { // IE
+                       xml = new ActiveXObject( "Microsoft.XMLDOM" );
+                       xml.async = "false";
+                       xml.loadXML( data );
+               }
+               
+               tmp = xml.documentElement;
+               
+               if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
+                       jQuery.error( "Invalid XML: " + data );
+               }
+               
+               return xml;
+       },
 
        noop: function() {},
 
@@ -783,7 +805,7 @@ jQuery.extend({
        },
        
        // Create a simple deferred (one callbacks list)
-       _deferred: function( cancellable ) {
+       _Deferred: function( cancellable ) {
                
                // cancellable by default
                cancellable = cancellable !== false;
@@ -800,7 +822,7 @@ jQuery.extend({
                        deferred  = {
                                
                                // then( f1, f2, ...)
-                               then: function() {
+                               then: function () {
                                        
                                        if ( ! cancelled ) {
                                        
@@ -879,7 +901,7 @@ jQuery.extend({
        
        // Full fledged deferred (two callbacks list)
        // Typical success/error system
-       deferred: function( func , cancellable ) {
+       Deferred: function( func , cancellable ) {
                
                // Handle varargs
                if ( arguments.length === 1 ) {
@@ -890,8 +912,8 @@ jQuery.extend({
                        }
                }
                
-               var errorDeferred = jQuery._deferred( cancellable ),
-                       deferred = jQuery._deferred( cancellable ),
+               var errorDeferred = jQuery._Deferred( cancellable ),
+                       deferred = jQuery._Deferred( cancellable ),
                        // Keep reference of the cancel method since we'll redefine it
                        cancelThen = deferred.cancel;
                        
@@ -931,7 +953,7 @@ jQuery.extend({
                method = method || "then";
                object = jQuery.isDeferred( object , method ) ?
                        object :
-                       jQuery.deferred().resolve( object );
+                       jQuery.Deferred().resolve( object );
                object.fail = object.fail || function() { return this; };
                object[ method ] = object[ method ] || object.then;
                object.then = object.then || object[ method ];
@@ -957,7 +979,7 @@ jQuery.extend({
 
 // Create readyList deferred
 // also force $.fn.ready to be recognized as a defer
-readyList = jQuery._deferred( false );
+readyList = jQuery._Deferred( false );
 jQuery.fn.ready._ = deferredMarker;
 
 // Populate the class2type map