IE Leak: Array.flatten #2175

ibolmo opened this Issue Dec 19, 2011 · 0 comments


None yet
1 participant

ibolmo commented Dec 19, 2011

As per: #2127 (comment)

It appears that the calling of instanceof on 'non-objects' (mootools.js flatten()) causes the memory leaks in IE.

We ended up implementing the following:

if( {
        instanceOf = this.instanceOf = function(item, object) {
            if (item == null) return false;
            // Avoid calling instanceof on certain "non-objects" to prevent memory leaks in IE
            if (!item.hasOwnProperty) return false;
            var constructor = item.$constructor || item.constructor;
            while (constructor){
                if (constructor === object) return true;
                constructor = constructor.parent;
            return item instanceof object;

@ibolmo ibolmo closed this Jan 30, 2012

@ibolmo ibolmo reopened this Jan 30, 2012

@ibolmo ibolmo referenced this issue Jan 30, 2012


Fixes #2175 #2264

ibolmo added a commit to ibolmo/mootools-core that referenced this issue Feb 5, 2012

Fixes #2175
This adds an additional check to `instanceOf` that prevents extraneous
instanceof checks for non-objects (e.g. window) as per:

PASSES: IE6-9; FFx 3-5, 8, 10; Chrome latest; Safari 5; Opera 11

@ibolmo ibolmo closed this in 5223508 Feb 7, 2012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment