From 985856b823b1648bffc3fd63c1faf836d0ddaf7c Mon Sep 17 00:00:00 2001 From: John Resig Date: Thu, 26 Feb 2009 18:00:41 +0000 Subject: [PATCH] No longer use arguments.callee or RegExp (use new RegExp, instead) for ES 3.1 and Caja compatibility. Fixes jQuery bug #4251. --- src/event.js | 8 ++++---- src/selector.js | 2 +- src/support.js | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/event.js b/src/event.js index 230af19..26c5620 100644 --- a/src/event.js +++ b/src/event.js @@ -116,7 +116,7 @@ jQuery.event = { // Namespaced event handlers var namespaces = type.split("."); type = namespaces.shift(); - var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); + var namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); if ( events[type] ) { // remove the given handler for the given type @@ -249,7 +249,7 @@ jQuery.event = { // Cache this now, all = true means, any handler all = !namespaces.length && !event.exclusive; - var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); + var namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)"); handlers = ( jQuery.data(this, "events") || {} )[event.type]; @@ -354,7 +354,7 @@ jQuery.event = { }, teardown: function( namespaces ){ if ( namespaces.length ) { - var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)"); + var remove = 0, name = new RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)"); jQuery.each( (jQuery.data(this, "events").live || {}), function(){ if ( name.test(this.type) ) @@ -560,7 +560,7 @@ jQuery.fn.extend({ }); function liveHandler( event ){ - var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"), + var check = new RegExp("(^|\\.)" + event.type + "(\\.|$)"), stop = true, elems = []; diff --git a/src/selector.js b/src/selector.js index e58b257..3bfc5f5 100644 --- a/src/selector.js +++ b/src/selector.js @@ -659,7 +659,7 @@ var Expr = Sizzle.selectors = { var origPOS = Expr.match.POS; for ( var type in Expr.match ) { - Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); + Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source ); } var makeArray = function(array, results) { diff --git a/src/support.js b/src/support.js index b11f847..4298250 100644 --- a/src/support.js +++ b/src/support.js @@ -75,11 +75,11 @@ root.removeChild( script ); if ( div.attachEvent && div.fireEvent ) { - div.attachEvent("onclick", function(){ + div.attachEvent("onclick", function click(){ // Cloning a node shouldn't copy over any // bound event handlers (IE does this) jQuery.support.noCloneEvent = false; - div.detachEvent("onclick", arguments.callee); + div.detachEvent("onclick", click); }); div.cloneNode(true).fireEvent("onclick"); } -- 1.7.10.4