/*! * jQuery Migrate - v1.2.1 - 2013-05-08 * https://github.com/jquery/jquery-migrate * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT */ (function(jQuery, window, undefined) { // See http://bugs.jquery.com/ticket/13335 // "use strict"; var warnedAbout = {}; // List of warnings already given; public read only jQuery.migrateWarnings = []; // Set to true to prevent console output; migrateWarnings still maintained jQuery.migrateMute = true; // Show a message on the console so devs know we're active if (!jQuery.migrateMute && window.console && window.console.log) { window.console.log("JQMIGRATE: Logging is active"); } // Set to false to disable traces that appear with warnings if (jQuery.migrateTrace === undefined) { jQuery.migrateTrace = true; } // Forget any warnings we've already given; public jQuery.migrateReset = function() { warnedAbout = {}; jQuery.migrateWarnings.length = 0; }; function migrateWarn(msg) { var console = window.console; if (!warnedAbout[msg]) { warnedAbout[msg] = true; jQuery.migrateWarnings.push(msg); if (console && console.warn && !jQuery.migrateMute) { console.warn("JQMIGRATE: " + msg); if (jQuery.migrateTrace && console.trace) { console.trace(); } } } } function migrateWarnProp(obj, prop, value, msg) { if (Object.defineProperty) { // On ES5 browsers (non-oldIE), warn if the code tries to get prop; // allow property to be overwritten in case some other plugin wants it try { Object.defineProperty(obj, prop, { configurable: true, enumerable: true, get: function() { migrateWarn(msg); return value; }, set: function(newValue) { migrateWarn(msg); value = newValue; } }); return; } catch (err) { // IE8 is a dope about Object.defineProperty, can't warn there } } // Non-ES5 (or broken) browser; just set the property jQuery._definePropertyBroken = true; obj[prop] = value; } if (document.compatMode === "BackCompat") { // jQuery has never supported or tested Quirks Mode migrateWarn("jQuery is not compatible with Quirks Mode"); } var attrFn = jQuery("", { size: 1 }).attr("size") && jQuery.attrFn, oldAttr = jQuery.attr, valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get || function() { return null; }, valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set || function() { return undefined; }, rnoType = /^(?:input|button)$/i, rnoAttrNodeType = /^[238]$/, rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, ruseDefault = /^(?:checked|selected)$/i; // jQuery.attrFn migrateWarnProp(jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated"); jQuery.attr = function(elem, name, value, pass) { var lowerName = name.toLowerCase(), nType = elem && elem.nodeType; if (pass) { // Since pass is used internally, we only warn for new jQuery // versions where there isn't a pass arg in the formal params if (oldAttr.length < 4) { migrateWarn("jQuery.fn.attr( props, pass ) is deprecated"); } if (elem && !rnoAttrNodeType.test(nType) && (attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name]))) { return jQuery(elem)[name](value); } } // Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking // for disconnected elements we don't warn on $( "