Object.create( null ) creates an Object without predefined methods like
hasOwnProperty or constructor. This allow to use
key in object
instead of
Object.prototype.hasOwnProperty.call( object, key )
even if the key is 'constructor'.
Change-Id: I6ef9019309022a2a990deda685ba71ca61b86df3
- var hasOwn = Object.hasOwnProperty;
-
/**
* Cancel any delayed maybeFetch() call and callback the context so
* they can cancel any async fetching if they use AJAX or something.
/**
* Cancel any delayed maybeFetch() call and callback the context so
* they can cancel any async fetching if they use AJAX or something.
) {
context.data.prevText = val;
// Try cache first
) {
context.data.prevText = val;
// Try cache first
- if ( context.config.cache && hasOwn.call( cache, val ) ) {
+ if ( context.config.cache && val in cache ) {
if ( mw.now() - cache[ val ].timestamp < context.config.cacheMaxAge ) {
context.data.$textbox.suggestions( 'suggestions', cache[ val ].suggestions );
if ( typeof context.config.update.after === 'function' ) {
if ( mw.now() - cache[ val ].timestamp < context.config.cacheMaxAge ) {
context.data.$textbox.suggestions( 'suggestions', cache[ val ].suggestions );
if ( typeof context.config.update.after === 'function' ) {
prevText: null,
// Cache of fetched suggestions
prevText: null,
// Cache of fetched suggestions
+ cache: Object.create( null ),
// Number of results visible without scrolling
visibleResults: 0,
// Number of results visible without scrolling
visibleResults: 0,