public
Description: Ruby on Rails
Homepage: http://rubyonrails.org
Clone URL: git://github.com/rails/rails.git
Search Repo:
Update Railties to Prototype 1.3.1

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1807 
5ecf4fe2-1ee6-0310-87b1-e25e094e27de
sstephenson (author)
Sun Jul 10 20:46:22 -0700 2005
commit  1911f8eee928915f1020753a4a3ba34c81131a66
tree    fc5e52cf18aa8fae81a174537cc3c29e9ebdfd9e
parent  325c5efdb3f7492068e9c9deed31b0ebdc04945c
...
1
 
2
3
4
...
11
12
13
14
 
15
16
17
18
19
...
266
267
268
269
 
270
271
 
272
273
274
 
 
 
 
 
275
276
277
...
292
293
294
295
 
296
297
298
299
300
301
...
889
890
891
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
 
 
 
 
 
 
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
 
 
 
 
 
 
 
 
 
935
936
937
 
 
 
938
939
940
...
 
1
2
3
4
...
11
12
13
 
14
15
16
17
18
19
...
266
267
268
 
269
270
 
271
272
273
 
274
275
276
277
278
279
280
281
...
296
297
298
 
299
300
301
302
303
304
305
...
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
922
923
924
925
926
927
928
929
930
931
932
933
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
0
@@ -1,4 +1,4 @@
0
-/* Prototype JavaScript framework, version 1.3.0
0
+/* Prototype JavaScript framework, version 1.3.1
0
  * (c) 2005 Sam Stephenson <sam@conio.net>
0
  *
0
  * THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
0
@@ -11,7 +11,7 @@
0
 /*--------------------------------------------------------------------------*/
0
 
0
 var Prototype = {
0
- Version: '1.3.0',
0
+ Version: '1.3.1',
0
   emptyFunction: function() {}
0
 }
0
 
0
0
0
@@ -266,12 +266,16 @@
0
   respondToReadyState: function(readyState) {
0
     var event = Ajax.Request.Events[readyState];
0
 
0
- if (event == 'Complete' && this.responseIsFailure())
0
+ if (event == 'Complete')
0
       (this.options['on' + this.transport.status]
0
- || this.options.onFailure
0
+ || this.options['on' + this.responseIsSuccess() ? 'Success' : 'Failure']
0
        || Prototype.emptyFunction)(this.transport);
0
 
0
- (this.options['on' + event] || Prototype.emptyFunction)(this.transport);
0
+ (this.options['on' + event] || Prototype.emptyFunction)(this.transport);
0
+
0
+ /* Avoid memory leak in MSIE: clean up the oncomplete event handler */
0
+ if (event == 'Complete')
0
+ this.transport.onreadystatechange = Prototype.emptyFunction;
0
   }
0
 });
0
 
0
@@ -292,7 +296,7 @@
0
     var onComplete = this.options.onComplete || Prototype.emptyFunction;
0
     this.options.onComplete = (function() {
0
       this.updateContent();
0
- onComplete(this.transport);
0
+ onComplete(this.transport);
0
     }).bind(this);
0
 
0
     this.request(url);
0
0
0
0
@@ -889,52 +893,59 @@
0
     return element;
0
   },
0
 
0
+ observers: false,
0
+
0
+ _observeAndCache: function(element, name, observer, useCapture) {
0
+ if (!this.observers) this.observers = [];
0
+ if (element.addEventListener) {
0
+ this.observers.push([element, name, observer, useCapture]);
0
+ element.addEventListener(name, observer, useCapture);
0
+ } else if (element.attachEvent) {
0
+ this.observers.push([element, name, observer, useCapture]);
0
+ element.attachEvent('on' + name, observer);
0
+ }
0
+ },
0
+
0
+ unloadCache: function() {
0
+ if (!Event.observers) return;
0
+ for (var i = 0; i < Event.observers.length; i++) {
0
+ Event.stopObserving.apply(this, Event.observers[i]);
0
+ Event.observers[i][0] = null;
0
+ }
0
+ Event.observers = false;
0
+ },
0
+
0
   observe: function(element, name, observer, useCapture) {
0
     var element = $(element);
0
     useCapture = useCapture || false;
0
     
0
- if (name == 'keypress') {
0
- if (navigator.appVersion.indexOf('AppleWebKit') > 0) {
0
- element.addEventListener('keydown', observer, useCapture);
0
- return;
0
- }
0
- if (element.addEventListener) {
0
- element.addEventListener('keypress', observer, useCapture);
0
- } else if (element.attachEvent) {
0
- element.attachEvent('onkeydown', observer);
0
- }
0
- } else {
0
- if (element.addEventListener) {
0
- element.addEventListener(name, observer, useCapture);
0
- } else if (element.attachEvent) {
0
- element.attachEvent('on' + name, observer);
0
- }
0
- }
0
+ if (name == 'keypress' &&
0
+ ((navigator.appVersion.indexOf('AppleWebKit') > 0)
0
+ || element.attachEvent))
0
+ name = 'keydown';
0
+
0
+ this._observeAndCache(element, name, observer, useCapture);
0
   },
0
 
0
   stopObserving: function(element, name, observer, useCapture) {
0
     var element = $(element);
0
     useCapture = useCapture || false;
0
     
0
- if (name == 'keypress') {
0
- if (navigator.appVersion.indexOf('AppleWebKit') > 0) {
0
- element.removeEventListener('keydown', observer, useCapture);
0
- return;
0
- }
0
- if (element.removeEventListener) {
0
- element.removeEventListener('keypress', observer, useCapture);
0
- } else if (element.detachEvent) {
0
- element.detachEvent('onkeydown', observer);
0
- }
0
- } else {
0
- if (element.removeEventListener) {
0
- element.removeEventListener(name, observer, useCapture);
0
- } else if (element.detachEvent) {
0
- element.detachEvent('on' + name, observer);
0
- }
0
+ if (name == 'keypress' &&
0
+ ((navigator.appVersion.indexOf('AppleWebKit') > 0)
0
+ || element.detachEvent))
0
+ name = 'keydown';
0
+
0
+ if (element.removeEventListener) {
0
+ element.removeEventListener(name, observer, useCapture);
0
+ } else if (element.detachEvent) {
0
+ element.detachEvent('on' + name, observer);
0
     }
0
   }
0
 });
0
+
0
+/* prevent memory leaks in IE */
0
+Event.observe(window, 'unload', Event.unloadCache, false);
0
 
0
 var Position = {
0
 

Comments

    No one has commented yet.