scratch

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 58  →  ?path2? @ 125
/bower_components/jquery/src/core.js
@@ -1,11 +1,5 @@
/* global Symbol */
// Defining this global in .eslintrc.json would create a danger of using the global
// unguarded in another place, it seems safer to define global only for this module
 
define( [
define([
"./var/arr",
"./var/document",
"./var/getProto",
"./var/slice",
"./var/concat",
"./var/push",
@@ -13,34 +7,29 @@
"./var/class2type",
"./var/toString",
"./var/hasOwn",
"./var/fnToString",
"./var/ObjectFunctionString",
"./var/support",
"./core/DOMEval"
], function( arr, document, getProto, slice, concat, push, indexOf,
class2type, toString, hasOwn, fnToString, ObjectFunctionString,
support, DOMEval ) {
"./var/support"
], function( arr, slice, concat, push, indexOf, class2type, toString, hasOwn, support ) {
 
"use strict";
 
var
version = "3.1.1",
// Use the correct document accordingly with window argument (sandbox)
document = window.document,
 
version = "@VERSION",
 
// Define a local copy of jQuery
jQuery = function( selector, context ) {
 
// The jQuery object is actually just the init constructor 'enhanced'
// Need init if jQuery is called (just allow error to be thrown if not included)
return new jQuery.fn.init( selector, context );
},
 
// Support: Android <=4.0 only
// Support: Android<4.1
// Make sure we trim BOM and NBSP
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
 
// Matches dashed string for camelizing
rmsPrefix = /^-ms-/,
rdashAlpha = /-([a-z])/g,
rdashAlpha = /-([\da-z])/gi,
 
// Used by jQuery.camelCase as callback to replace()
fcamelCase = function( all, letter ) {
@@ -48,12 +37,14 @@
};
 
jQuery.fn = jQuery.prototype = {
 
// The current version of jQuery being used
jquery: version,
 
constructor: jQuery,
 
// Start with an empty selector
selector: "",
 
// The default length of a jQuery object is 0
length: 0,
 
@@ -64,14 +55,13 @@
// Get the Nth element in the matched element set OR
// Get the whole matched element set as a clean array
get: function( num ) {
return num != null ?
 
// Return all the elements in a clean array
if ( num == null ) {
return slice.call( this );
}
// Return just the one element from the set
( num < 0 ? this[ num + this.length ] : this[ num ] ) :
 
// Return just the one element from the set
return num < 0 ? this[ num + this.length ] : this[ num ];
// Return all the elements in a clean array
slice.call( this );
},
 
// Take an array of elements and push it onto the stack
@@ -83,6 +73,7 @@
 
// Add the old object onto the stack (as a reference)
ret.prevObject = this;
ret.context = this.context;
 
// Return the newly-formed element set
return ret;
@@ -89,14 +80,16 @@
},
 
// Execute a callback for every element in the matched set.
each: function( callback ) {
return jQuery.each( this, callback );
// (You can seed the arguments with an array of args, but this is
// only used internally.)
each: function( callback, args ) {
return jQuery.each( this, callback, args );
},
 
map: function( callback ) {
return this.pushStack( jQuery.map( this, function( elem, i ) {
return this.pushStack( jQuery.map(this, function( elem, i ) {
return callback.call( elem, i, elem );
} ) );
}));
},
 
slice: function() {
@@ -114,11 +107,11 @@
eq: function( i ) {
var len = this.length,
j = +i + ( i < 0 ? len : 0 );
return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
},
 
end: function() {
return this.prevObject || this.constructor();
return this.prevObject || this.constructor(null);
},
 
// For internal use only.
@@ -130,7 +123,7 @@
 
jQuery.extend = jQuery.fn.extend = function() {
var options, name, src, copy, copyIsArray, clone,
target = arguments[ 0 ] || {},
target = arguments[0] || {},
i = 1,
length = arguments.length,
deep = false;
@@ -145,7 +138,7 @@
}
 
// Handle case when target is a string or something (possible in deep copy)
if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
target = {};
}
 
@@ -156,10 +149,8 @@
}
 
for ( ; i < length; i++ ) {
 
// Only deal with non-null/undefined values
if ( ( options = arguments[ i ] ) != null ) {
 
if ( (options = arguments[ i ]) != null ) {
// Extend the base object
for ( name in options ) {
src = target[ name ];
@@ -171,15 +162,13 @@
}
 
// Recurse if we're merging plain objects or arrays
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
( copyIsArray = jQuery.isArray( copy ) ) ) ) {
 
if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
if ( copyIsArray ) {
copyIsArray = false;
clone = src && jQuery.isArray( src ) ? src : [];
clone = src && jQuery.isArray(src) ? src : [];
 
} else {
clone = src && jQuery.isPlainObject( src ) ? src : {};
clone = src && jQuery.isPlainObject(src) ? src : {};
}
 
// Never move original objects, clone them
@@ -197,8 +186,7 @@
return target;
};
 
jQuery.extend( {
 
jQuery.extend({
// Unique for each copy of jQuery on the page
expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
 
@@ -212,7 +200,7 @@
noop: function() {},
 
isFunction: function( obj ) {
return jQuery.type( obj ) === "function";
return jQuery.type(obj) === "function";
},
 
isArray: Array.isArray,
@@ -222,46 +210,34 @@
},
 
isNumeric: function( obj ) {
 
// As of jQuery 3.0, isNumeric is limited to
// strings and numbers (primitives or objects)
// that can be coerced to finite numbers (gh-2662)
var type = jQuery.type( obj );
return ( type === "number" || type === "string" ) &&
 
// parseFloat NaNs numeric-cast false positives ("")
// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
// subtraction forces infinities to NaN
!isNaN( obj - parseFloat( obj ) );
// parseFloat NaNs numeric-cast false positives (null|true|false|"")
// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
// subtraction forces infinities to NaN
// adding 1 corrects loss of precision from parseFloat (#15100)
return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;
},
 
isPlainObject: function( obj ) {
var proto, Ctor;
 
// Detect obvious negatives
// Use toString instead of jQuery.type to catch host objects
if ( !obj || toString.call( obj ) !== "[object Object]" ) {
// Not plain objects:
// - Any object or value whose internal [[Class]] property is not "[object Object]"
// - DOM nodes
// - window
if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
return false;
}
 
proto = getProto( obj );
 
// Objects with no prototype (e.g., `Object.create( null )`) are plain
if ( !proto ) {
return true;
if ( obj.constructor &&
!hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
return false;
}
 
// Objects with prototype are plain iff they were constructed by a global Object function
Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
// If the function hasn't returned already, we're confident that
// |obj| is a plain object, created by {} or constructed with new Object
return true;
},
 
isEmptyObject: function( obj ) {
 
/* eslint-disable no-unused-vars */
// See https://github.com/eslint/eslint/issues/6125
var name;
 
for ( name in obj ) {
return false;
}
@@ -272,20 +248,37 @@
if ( obj == null ) {
return obj + "";
}
 
// Support: Android <=2.3 only (functionish RegExp)
// Support: Android<4.0, iOS<6 (functionish RegExp)
return typeof obj === "object" || typeof obj === "function" ?
class2type[ toString.call( obj ) ] || "object" :
class2type[ toString.call(obj) ] || "object" :
typeof obj;
},
 
// Evaluates a script in a global context
globalEval: function( code ) {
DOMEval( code );
var script,
indirect = eval;
 
code = jQuery.trim( code );
 
if ( code ) {
// If the code includes a valid, prologue position
// strict mode pragma, execute code by injecting a
// script tag into the document.
if ( code.indexOf("use strict") === 1 ) {
script = document.createElement("script");
script.text = code;
document.head.appendChild( script ).parentNode.removeChild( script );
} else {
// Otherwise, avoid the DOM node creation, insertion
// and removal by using an indirect global eval
indirect( code );
}
}
},
 
// Convert dashed to camelCase; used by the css and data modules
// Support: IE <=9 - 11, Edge 12 - 13
// Support: IE9-11+
// Microsoft forgot to hump their vendor prefix (#9572)
camelCase: function( string ) {
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
@@ -295,21 +288,50 @@
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
},
 
each: function( obj, callback ) {
var length, i = 0;
// args is for internal usage only
each: function( obj, callback, args ) {
var value,
i = 0,
length = obj.length,
isArray = isArraylike( obj );
 
if ( isArrayLike( obj ) ) {
length = obj.length;
for ( ; i < length; i++ ) {
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
break;
if ( args ) {
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback.apply( obj[ i ], args );
 
if ( value === false ) {
break;
}
}
} else {
for ( i in obj ) {
value = callback.apply( obj[ i ], args );
 
if ( value === false ) {
break;
}
}
}
 
// A special, fast, case for the most common use of each
} else {
for ( i in obj ) {
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
break;
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback.call( obj[ i ], i, obj[ i ] );
 
if ( value === false ) {
break;
}
}
} else {
for ( i in obj ) {
value = callback.call( obj[ i ], i, obj[ i ] );
 
if ( value === false ) {
break;
}
}
}
}
 
@@ -316,7 +338,7 @@
return obj;
},
 
// Support: Android <=4.0 only
// Support: Android<4.1
trim: function( text ) {
return text == null ?
"" :
@@ -328,7 +350,7 @@
var ret = results || [];
 
if ( arr != null ) {
if ( isArrayLike( Object( arr ) ) ) {
if ( isArraylike( Object(arr) ) ) {
jQuery.merge( ret,
typeof arr === "string" ?
[ arr ] : arr
@@ -345,8 +367,6 @@
return arr == null ? -1 : indexOf.call( arr, elem, i );
},
 
// Support: Android <=4.0 only, PhantomJS 1 only
// push.apply(_, arraylike) throws on ancient WebKit
merge: function( first, second ) {
var len = +second.length,
j = 0,
@@ -382,13 +402,14 @@
 
// arg is for internal usage only
map: function( elems, callback, arg ) {
var length, value,
var value,
i = 0,
length = elems.length,
isArray = isArraylike( elems ),
ret = [];
 
// Go through the array, translating each of the items to their new values
if ( isArrayLike( elems ) ) {
length = elems.length;
if ( isArray ) {
for ( ; i < length; i++ ) {
value = callback( elems[ i ], i, arg );
 
@@ -449,25 +470,20 @@
// jQuery.support is not used in Core but other projects attach their
// properties to it so it needs to exist.
support: support
} );
});
 
if ( typeof Symbol === "function" ) {
jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
}
 
// Populate the class2type map
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
function( i, name ) {
jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
class2type[ "[object " + name + "]" ] = name.toLowerCase();
} );
});
 
function isArrayLike( obj ) {
function isArraylike( obj ) {
 
// Support: real iOS 8.2 only (not reproducible in simulator)
// Support: iOS 8.2 (not reproducible in simulator)
// `in` check used to prevent JIT error (gh-2145)
// hasOwn isn't used here due to false negatives
// regarding Nodelist length in IE
var length = !!obj && "length" in obj && obj.length,
var length = "length" in obj && obj.length,
type = jQuery.type( obj );
 
if ( type === "function" || jQuery.isWindow( obj ) ) {
@@ -474,9 +490,13 @@
return false;
}
 
if ( obj.nodeType === 1 && length ) {
return true;
}
 
return type === "array" || length === 0 ||
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
}
 
return jQuery;
} );
});