Skip to content
Permalink
Browse files

Make sure that at least one argument is provided to .slice(), in acco…

…rdance with the spec. Fixes jQuery bug #4942.
  • Loading branch information
jeresig committed Jul 23, 2009
1 parent b964e56 commit 0a6c5205d21c29485ff8338881825135b6d9f373
Showing with 8 additions and 6 deletions.
  1. +3 −1 src/core.js
  2. +3 −3 src/event.js
  3. +2 −2 src/selector.js
@@ -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
@@ -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 ];

@@ -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){

0 comments on commit 0a6c520

Please sign in to comment.
You can’t perform that action at this time.