aboutsummaryrefslogtreecommitdiffstats
path: root/src/core.js
diff options
context:
space:
mode:
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>2019-07-29 21:14:46 +0200
committerMichał Gołębiowski-Owczarek <m.goleb@gmail.com>2019-07-29 21:19:21 +0200
commit47835965bd100a3661d8299d8b769ceeb8b6ce48 (patch)
tree5ef322bc48cd27d5a5f004e6e3fcf955c67fc9eb /src/core.js
parent79b74e043a4ee737d44a95094ff1184e40bd5b16 (diff)
downloadjquery-47835965bd100a3661d8299d8b769ceeb8b6ce48.tar.gz
jquery-47835965bd100a3661d8299d8b769ceeb8b6ce48.zip
Selector: Inline Sizzle into the selector module
This commit removes Sizzle from jQuery, inlining its code & removing obsolete workarounds where applicable. The selector-native module has been removed. Further work on the selector module may decrease the size enough that it will no longer be necessary. If it turns out it's still useful, we'll reinstate it but the code will look different anyway as we'll want to share as much code as possible with the existing selector module. The Sizzle AUTHORS.txt file has been merged with the jQuery one - people are sorted by their first contributions to either of the two repositories. The commit reduces the gzipped jQuery size by 1460 bytes compared to master. Closes gh-4395
Diffstat (limited to 'src/core.js')
-rw-r--r--src/core.js52
1 files changed, 50 insertions, 2 deletions
diff --git a/src/core.js b/src/core.js
index f1ef9ef97..fdc32dde8 100644
--- a/src/core.js
+++ b/src/core.js
@@ -25,8 +25,9 @@ define( [
"use strict";
-var
- version = "@VERSION",
+var version = "@VERSION",
+
+ rhtmlSuffix = /HTML$/i,
// Define a local copy of jQuery
jQuery = function( selector, context ) {
@@ -259,6 +260,44 @@ jQuery.extend( {
return obj;
},
+
+ // Retrieve the text value of an array of DOM nodes
+ text: function( elem ) {
+ var node,
+ ret = "",
+ i = 0,
+ nodeType = elem.nodeType;
+
+ if ( !nodeType ) {
+
+ // If no nodeType, this is expected to be an array
+ while ( ( node = elem[ i++ ] ) ) {
+
+ // Do not traverse comment nodes
+ ret += jQuery.text( node );
+ }
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+
+ // Use textContent for elements
+ // innerText usage removed for consistency of new lines (jQuery #11153)
+ if ( typeof elem.textContent === "string" ) {
+ return elem.textContent;
+ } else {
+
+ // Traverse its children
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+ ret += jQuery.text( elem );
+ }
+ }
+ } else if ( nodeType === 3 || nodeType === 4 ) {
+ return elem.nodeValue;
+ }
+
+ // Do not include comment or processing instruction nodes
+
+ return ret;
+ },
+
trim: function( text ) {
return text == null ? "" : trim.call( text );
},
@@ -285,6 +324,15 @@ jQuery.extend( {
return arr == null ? -1 : indexOf.call( arr, elem, i );
},
+ isXMLDoc: function( elem ) {
+ var namespace = elem.namespaceURI,
+ docElem = ( elem.ownerDocument || elem ).documentElement;
+
+ // Assume HTML when documentElement doesn't yet exist, such as inside
+ // document fragments.
+ return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" );
+ },
+
merge: function( first, second ) {
var len = +second.length,
j = 0,