Make sure that at least one argument is provided to .slice(), in accordance with...
authorJohn Resig <jeresig@gmail.com>
Thu, 23 Jul 2009 13:22:55 +0000 (13:22 +0000)
committerJohn Resig <jeresig@gmail.com>
Thu, 23 Jul 2009 13:22:55 +0000 (13:22 +0000)
src/core.js
src/event.js
src/selector.js

index b105c4c..7281b44 100644 (file)
@@ -128,7 +128,9 @@ jQuery.fn = jQuery.prototype = {
                return this.length;
        },
 
-       toArray: slice,
+       toArray: function(){
+               return slice.call( this, 0 );
+       },
 
        // Get the Nth element in the matched element set OR
        // Get the whole matched element set as a clean array
index 8eaf44e..e911f29 100644 (file)
@@ -57,7 +57,7 @@ jQuery.event = {
                        // Namespaced event handlers
                        var namespaces = type.split(".");
                        type = namespaces.shift();
-                       handler.type = namespaces.slice().sort().join(".");
+                       handler.type = namespaces.slice(0).sort().join(".");
 
                        // Get the current list of functions bound to this event
                        var handlers = events[ type ],
@@ -133,7 +133,7 @@ jQuery.event = {
                                        var namespaces = type.split(".");
                                        type = namespaces.shift();
                                        var all = !namespaces.length,
-                                               namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"),
+                                               namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join(".*\\.") + "(\\.|$)"),
                                                special = this.special[ type ] || {};
 
                                        if ( events[ type ] ) {
@@ -291,7 +291,7 @@ jQuery.event = {
                // Cache this now, all = true means, any handler
                all = !namespaces.length && !event.exclusive;
 
-               var namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
+               var namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join(".*\\.") + "(\\.|$)");
 
                handlers = ( jQuery.data(this, "events") || {} )[ event.type ];
 
index c6fc025..fb33246 100644 (file)
@@ -661,7 +661,7 @@ for ( var type in Expr.match ) {
 }
 
 var makeArray = function(array, results) {
-       array = Array.prototype.slice.call( array );
+       array = Array.prototype.slice.call( array, 0 );
 
        if ( results ) {
                results.push.apply( results, array );
@@ -674,7 +674,7 @@ var makeArray = function(array, results) {
 // Perform a simple check to determine if the browser is capable of
 // converting a NodeList to an array using builtin methods.
 try {
-       Array.prototype.slice.call( document.documentElement.childNodes );
+       Array.prototype.slice.call( document.documentElement.childNodes, 0 );
 
 // Provide a fallback method if it does not work
 } catch(e){