**Douglas Crockford's IE6 memory leak fix** <http://javascript.crockford.com/memory/leak.html> This is used to release the memory leak created by the circular references created when fixing `this` scoping for IE. It is called on page unload.
970700
function(d) {
        var a = d.attributes, i;
        if (a) {
          for (i = 0; i < a.length; i += 1) {
            if (typeof d[a[i].name] === 'function') d[a[i].name] = null;
          }
        }
        a = d.childNodes;
        if (a) {
          for (i = 0; i < a.length; i += 1) purge(d.childNodes[i]);
        }
      }
614255
public void releaseCache() {
        if (originalThunks != null) {
            // OPTIMIZATION:
            // Rather than use the standard iterator, which creates lots of int[] arrays on the heap, which need to be GC'd,
            // we use the fast version that just mutates one array. Since this is read once for us here, this is ideal.
            Iterator<int[]> fastPassByReferenceIterator = fastPassByReferenceIterator();
            int[] assignment = fastPassByReferenceIterator.next();
            while (true) {
                setAssignmentValue(assignment, originalThunks.getAssignmentValue(assignment));

                // Set the assignment arrays correctly
                if (fastPassByReferenceIterator.hasNext()) fastPassByReferenceIterator.next();
                else break;
            }
            // Release our replicated set of original thunks
            originalThunks = null;
        }
    }
930168
function ()
	{
		var s = this.fnGetSettings();
		this._fnMeasure();

		for ( var i=0, iLen=s.aoCache.length ; i<iLen ; i++ )
		{
			if ( s.aoCache[i].sType == "fixedHeader" )
			{
				this._fnScrollFixedHeader( s.aoCache[i] );
			}
			else if ( s.aoCache[i].sType == "fixedFooter" )
			{
				this._fnScrollFixedFooter( s.aoCache[i] );
			}
			else if ( s.aoCache[i].sType == "fixedLeft" )
			{
				this._fnScrollHorizontalLeft( s.aoCache[i] );
			}
			else
			{
				this._fnScrollHorizontalRight( s.aoCache[i] );
			}
		}
	}
808543
function patchUncaught() {
  var name = 'uncaughtException';
  var originalListener = process.listeners(name).pop();

  if (originalListener) {
    process.removeListener(name, originalListener);
  }

  return function() {
    if (!originalListener) return;
    process.on(name, originalListener);
  };
}
186635
function dispose(e) {
/*Line 18 - 'ZZZZZInitializer.js' */        if (!e)
/*Line 19 - 'ZZZZZInitializer.js' */            return;
/*Line 20 - 'ZZZZZInitializer.js' */        if (e.atomControl) {
/*Line 21 - 'ZZZZZInitializer.js' */            e.atomControl.dispose();
/*Line 22 - 'ZZZZZInitializer.js' */        } else {
/*Line 23 - 'ZZZZZInitializer.js' */            var ce = new ChildEnumerator(e);
/*Line 24 - 'ZZZZZInitializer.js' */            while (ce.next()) {
/*Line 25 - 'ZZZZZInitializer.js' */                dispose(ce.current());
/*Line 26 - 'ZZZZZInitializer.js' */            }
/*Line 27 - 'ZZZZZInitializer.js' */        }
/*Line 28 - 'ZZZZZInitializer.js' */    }
779774
function () {
            var i;

            stopTracking( this );
            this.element = null;

            for ( i = 0; i < MOUSETRACKERS.length; i++ ) {
                if ( MOUSETRACKERS[ i ] === this ) {
                    MOUSETRACKERS.splice( i, 1 );
                    break;
                }
            }

            THIS[ this.hash ] = null;
            delete THIS[ this.hash ];
        }
1365999
function releaseMemoryObserver() {
  // Only disable on last use.
  if (!memoryObservationCount) {
    return;
  }
  --memoryObservationCount;
  if (memoryObservationCount) {
    return;
  }

  // Unlisten for events.
  Services.obs.removeObserver(
      handleMemoryEvent, 'garbage-collection-statistics', false);

  // Reset memory notification to its original state.
  resetTemporaryPreference('javascript.options.mem.notify');
}
1310642
synchronized CachedObject release(int i) {

        CachedObject r = (CachedObject) super.addOrRemove(i, null, true);

        if (r == null) {
            return null;
        }

        cacheBytesLength -= r.getStorageSize();

        r.setInMemory(false);

        return r;
    }
274424
function checkScroll() {
            if (window.pageXOffset != scroll.left) {
                scroll.top = window.pageYOffset;
                scroll.left = window.pageXOffset;
    
                Stickyfill.refreshAll();
            } else if (window.pageYOffset != scroll.top) {
                scroll.top = window.pageYOffset;
                scroll.left = window.pageXOffset;
    
                // recalc position for all stickies
                stickies.forEach(function (sticky) {
                    return sticky._recalcPosition();
                });
            }
        }
720078
function (e) {

/*Line 908 - 'AtomControl.js' */                // disposing only one element
/*Line 909 - 'AtomControl.js' */                if (e) {
/*Line 910 - 'AtomControl.js' */                    var eac = e.atomControl;
/*Line 911 - 'AtomControl.js' */                    if (eac) {
/*Line 912 - 'AtomControl.js' */                        eac.dispose();
/*Line 913 - 'AtomControl.js' */                    } else {
/*Line 914 - 'AtomControl.js' */                        this.clearBinding(e);
/*Line 915 - 'AtomControl.js' */                        this.disposeChildren(e);
/*Line 916 - 'AtomControl.js' */                    }
/*Line 917 - 'AtomControl.js' */                    $(e).remove();
/*Line 918 - 'AtomControl.js' */                    return;
/*Line 919 - 'AtomControl.js' */                }

/*Line 921 - 'AtomControl.js' */                this._disposed = true;
/*Line 922 - 'AtomControl.js' */                this.disposeChildren(this._element);
/*Line 923 - 'AtomControl.js' */                this.clearBinding();
/*Line 924 - 'AtomControl.js' */                this.bindings.length = 0;
/*Line 925 - 'AtomControl.js' */                base.dispose.apply(this, arguments);
/*Line 926 - 'AtomControl.js' */            }
1091341
function dispose() {
    var i, eh;

    // undo all changes made by stop_browser_behavior
    if(this.options.stop_browser_behavior) {
      Utils.toggleDefaultBehavior(this.element, this.options.stop_browser_behavior, true);
    }

    // unbind all custom event handlers
    for(i=-1; (eh=this.eventHandlers[++i]);) {
      this.element.removeEventListener(eh.gesture, eh.handler, false);
    }
    this.eventHandlers = [];

    // unbind the start event listener
    Event.unbindDom(this.element, Hammer.EVENT_TYPES[EVENT_START], this.eventStartHandler);

    return null;
  }
1213091
function( ) {
        if ( !THIS[ this.hash ] ) {
            //this viewer has already been destroyed: returning immediately
            return;
        }

        this.close();

        this.clearOverlays();
        this.overlaysContainer.innerHTML = "";

        //TODO: implement this...
        //this.unbindSequenceControls()
        //this.unbindStandardControls()

        if (this.referenceStrip) {
            this.referenceStrip.destroy();
            this.referenceStrip = null;
        }

        if ( this._updateRequestId !== null ) {
            $.cancelAnimationFrame( this._updateRequestId );
            this._updateRequestId = null;
        }

        if ( this.drawer ) {
            this.drawer.destroy();
        }

        this.removeAllHandlers();

        // Go through top element (passed to us) and remove all children
        // Use removeChild to make sure it handles SVG or any non-html
        // also it performs better - http://jsperf.com/innerhtml-vs-removechild/15
        if (this.element){
            while (this.element.firstChild) {
                this.element.removeChild(this.element.firstChild);
            }
        }

        // destroy the mouse trackers
        if (this.innerTracker){
            this.innerTracker.destroy();
        }
        if (this.outerTracker){
            this.outerTracker.destroy();
        }

        THIS[ this.hash ] = null;
        delete THIS[ this.hash ];

        // clear all our references to dom objects
        this.canvas = null;
        this.container = null;

        // clear our reference to the main element - they will need to pass it in again, creating a new viewer
        this.element = null;
    }
932815
function init(){
      // Most browsers don't need special methods here..
      set_history = get_history = function(val){ return val; };
      
      // But IE6/7 do!
      if ( is_old_ie ) {
        
        // Create hidden Iframe after the end of the body to prevent initial
        // page load from scrolling unnecessarily.
        iframe = $('<iframe src="javascript:0"/>').hide().insertAfter( 'body' )[0].contentWindow;
        
        // Get history by looking at the hidden Iframe's location.hash.
        get_history = function() {
          return get_fragment( iframe.document[ str_location ][ str_href ] );
        };
        
        // Set a new history item by opening and then closing the Iframe
        // document, *then* setting its location.hash.
        set_history = function( hash, history_hash ) {
          if ( hash !== history_hash ) {
            var doc = iframe.document;
            doc.open().close();
            doc[ str_location ].hash = '#' + hash;
          }
        };
        
        // Set initial history.
        set_history( get_fragment() );
      }
    }
1121665
function () {
            if (this.__stackCache) {
                for (var key in this.__stackCache) {
                    if (this.__stackCache.hasOwnProperty(key)) {
                        var stack = this.__stackCache[key];
                        // break dom reference
                        for (var i = 0, l = stack.length; i < l; i++) {
                            stack.target = null;
                            stack.expandoValue = null;
                            delete stack.target;
                            delete stack.expandoValue;
                        }
                        delete this.__stackCache[i];
                    }
                }
                this.__stackCache = null;
            }
        }
283075
public void valueUnbound(HttpSessionBindingEvent event) 
    {
        Utility.getLogger().info("Session Unbound");
        if (this.getMainTask() == null)
            this.free();
        else   // Never - This would mean the session was released before the http response was sent (memory leak)
            Utility.getLogger().severe("Unbound error ServletApplication.valueUnbound");
    }
1027445
public void releaseMemory()
    {

        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.entry(tc, "releaseMemory");

        synchronized (this)
        {

            // v is unused
            //ArrayList v = new ArrayList();

            // Create a new stream to replace old one
            // as set latest ls prefix
            oststream = new StateStream();
            oststream.init();
            oststream.setCompletedPrefix(oack);

        }

        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
            SibTr.exit(tc, "releaseMemory");
    }
436686
function removePasteBin() {
        if (pasteBinElm) {
          var pasteBinClone;

          // WebKit/Blink might clone the div so
          // lets make sure we remove all clones
          // TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it!
          while ((pasteBinClone = editor.dom.get('mcepastebin'))) {
            editor.dom.remove(pasteBinClone);
            editor.dom.unbind(pasteBinClone);
          }

          if (lastRng) {
            editor.selection.setRng(lastRng);
          }
        }

        pasteBinElm = lastRng = null;
      }