Bug Tracker

Ticket #4251: jquery.diff

File jquery.diff, 2.5 KB (added by metaweta, 13 years ago)

Patch fixing the bug.

  • support.js

     
    7575        root.removeChild( script );
    7676
    7777        if ( div.attachEvent && div.fireEvent ) {
    78                 div.attachEvent("onclick", function(){
     78                div.attachEvent("onclick", function click(){
    7979                        // Cloning a node shouldn't copy over any
    8080                        // bound event handlers (IE does this)
    8181                        jQuery.support.noCloneEvent = false;
    82                         div.detachEvent("onclick", arguments.callee);
     82                        div.detachEvent("onclick", click);
    8383                });
    8484                div.cloneNode(true).fireEvent("onclick");
    8585        }
  • selector.js

     
    659659var origPOS = Expr.match.POS;
    660660
    661661for ( var type in Expr.match ) {
    662         Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
     662        Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
    663663}
    664664
    665665var makeArray = function(array, results) {
  • event.js

     
    116116                                        // Namespaced event handlers
    117117                                        var namespaces = type.split(".");
    118118                                        type = namespaces.shift();
    119                                         var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
     119                                        var namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
    120120
    121121                                        if ( events[type] ) {
    122122                                                // remove the given handler for the given type
     
    249249                // Cache this now, all = true means, any handler
    250250                all = !namespaces.length && !event.exclusive;
    251251               
    252                 var namespace = RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
     252                var namespace = new RegExp("(^|\\.)" + namespaces.slice().sort().join(".*\\.") + "(\\.|$)");
    253253
    254254                handlers = ( jQuery.data(this, "events") || {} )[event.type];
    255255
     
    354354                        },
    355355                        teardown:  function( namespaces ){
    356356                                if ( namespaces.length ) {
    357                                         var remove = 0, name = RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
     357                                        var remove = 0, name = new RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
    358358                                       
    359359                                        jQuery.each( (jQuery.data(this, "events").live || {}), function(){
    360360                                                if ( name.test(this.type) )
     
    560560});
    561561
    562562function liveHandler( event ){
    563         var check = RegExp("(^|\\.)" + event.type + "(\\.|$)"),
     563        var check = new RegExp("(^|\\.)" + event.type + "(\\.|$)"),
    564564                stop = true,
    565565                elems = [];
    566566