!function() {
    function xhr( base, path, type, def ) {
        var request, data;

        // TODO: add some tests and make sure this prop really needed
        if ( !jar.xhr ) {
            request = window.XMLHttpRequest ? new window.XMLHttpRequest() : new window.ActiveXObject( "Microsoft.XMLHTTP" );

        } else {
            request = new jar.xhr();
        }

        // If jar.xhr is changed to XDomainRequest onprogress needed to unblock succes event in IE9
        // TODO: is this stuff needed?
        request.onprogress = function() {};

        request.onload = request.onreadystatechange = function() {
            if ( request.readyState && request.readyState != 4 ) {
                return;
            }

            if ( request.status === undefined || request.status >= 200 && request.status < 300 || request.status === 304 ) {
                data = type == "xml" ? request.responseXML : request.responseText;

                jar.filters[ type ]( data );
                def.resolve([ data ]);

                // jar.order[ type ] – we work only with one specific storage
                jar( base, jar.order[ type ] ).done(function() {
                    this.set( path, data, type );
                });

            } else {
                def.reject();
            }

            request.onload = request.onreadystatechange = null;
        };

        // unstested
        request.onerror = function() {
            def.reject();
        };

        request.open( "get", path, true );
        request.send();

        return def;
    }

    jar.load = function( path, base, type ) {
            var def = jar.Deferred();

            if ( arguments.length != 3 ) {
                type = path.split( "." ).pop();
            }

            function make() {
                xhr( base, path, type, def );
            }

            // Quick hack, should be changed
            if ( type == "xsl" ) {
                type = "xml";
            }

            base = base || "jar";

            if ( jar.has( base, path ) ) {

                // jar.order[ type ] – we work only with one specific storage
                jar( base, jar.order[ type ] ).done(function() {
                    this.get( path ).done(function( data ) {
                        def.resolve([ data ]);

                // if we have data but we can't get it
                    }).fail( make );
                }).fail( make );

            } else {
                make();
            }

            // We should return promise object instead of deferred, but we should do that after perf tests
            return def;
        };
}.call( jar );

@@ -1616,28 +1616,24 @@
 ) %7B%0A        
-    
 var def = ja
@@ -1651,28 +1651,24 @@
 );%0A%0A        
-   
- 
 if ( argumen
@@ -1682,28 +1682,24 @@
 th != 3 ) %7B%0A
-    
             
@@ -1734,35 +1734,27 @@
 ();%0A        
- 
-   %7D%0A%0A    
+%7D%0A%0A
         func
@@ -1763,28 +1763,24 @@
 on make() %7B%0A
-    
             
@@ -1813,35 +1813,27 @@
  );%0A        
-  
-  
 %7D%0A%0A
-    
         // Q
@@ -1865,28 +1865,24 @@
 ged%0A        
-    
 if ( type ==
@@ -1900,28 +1900,24 @@
             
-   
- 
 type = %22xml%22
@@ -1918,36 +1918,32 @@
  %22xml%22;%0A        
-    
 %7D%0A%0A            b
@@ -1937,20 +1937,16 @@
         
-  
-  
 base = b
@@ -1960,20 +1960,16 @@
 %22jar%22;%0A%0A
-    
         
@@ -2004,36 +2004,32 @@
  %7B%0A%0A            
-    
 // jar.order%5B ty
@@ -2078,36 +2078,32 @@
 age%0A            
-   
- 
 jar( base, jar.o
@@ -2147,28 +2147,24 @@
             
-    
 this.get( pa
@@ -2204,36 +2204,32 @@
                 
- 
-   
 def.resolve(%5B da
@@ -2228,36 +2228,32 @@
 lve(%5B data %5D);%0A%0A
-    
             // i
@@ -2295,36 +2295,32 @@
                 
-    
 %7D).fail( make );
@@ -2324,36 +2324,32 @@
  );%0A            
-  
-  
 %7D).fail( make );
@@ -2350,36 +2350,32 @@
 ake );%0A%0A        
-    
 %7D else %7B%0A       
@@ -2379,20 +2379,16 @@
         
-   
- 
 make();%0A
@@ -2391,35 +2391,27 @@
 ();%0A        
-    %7D%0A%0A    
+%7D%0A%0A
         // W
@@ -2505,28 +2505,24 @@
 sts%0A        
-    
 return def;%0A
@@ -2521,20 +2521,16 @@
 rn def;%0A
-    
     %7D;%0A%7D

Fix indetation issue