apps/mediawiki/htdocs/extensions/MobileFrontend/resources/mobile.browser/browser.js
/**
	 * Memoize a class method. Caches the result of the method based on the
	 * arguments. Instances do not share a cache.
	 * @ignore
	 * @param {Function} method Method to be memoized
	 * @returns {Function}
	 */
Memoize a class method. Caches the result of the method based on the
arguments. Instances do not share a cache.
@ignore
@param {Function} method Method to be memoized
@returns {Function}
Memoize a class method . Caches the result of the method based on the arguments . Instances do not share a cache . @ignore @param { Function } method Method to be memoized @returns { Function }
function memoize( method ) {
		var memoized = function () {
			var cache = this[ '__cache' + memoized.cacheId ] ||
				( this[ '__cache' + memoized.cacheId ] = {} ),
				key = [].join.call( arguments, '|' );
			if ( cache.hasOwnProperty( key ) ) {
				return cache[ key ];
			}
			return ( cache[ key ] = method.apply( this, arguments ) );
		};
		memoized.cacheId = Date.now().toString() + Math.random().toString();
		return memoized;
	}
function memoize ( method ) { var memoized = function ( ) { var cache = this [ '__cache' + memoized . cacheId ] || ( this [ '__cache' + memoized . cacheId ] = { } ) , key = [ ] . join . call ( arguments , '|' ) ; if ( cache . hasOwnProperty ( key ) ) { return cache [ key ] ; } return ( cache [ key ] = method . apply ( this , arguments ) ) ; } ; memoized . cacheId = Date . now ( ) . toString ( ) + Math . random ( ) . toString ( ) ; return memoized ; }
Memoize a class method.
Memoize a class method .
/**
		 * Memoized version of the method
		 * @ignore
		 */