Moved some RegExp in core.js, goes toward #4111.
[jquery.git] / src / core.js
index 267bc10..18ecf21 100644 (file)
@@ -25,6 +25,12 @@ var jQuery = function( selector, context ) {
        // Is it a simple selector
        isSimple = /^.[^:#\[\.,]*$/,
 
+       // Check if a string has a non-whitespace character in it
+       rnotwhite = /\S/,
+
+       // Used for trimming whitespace
+       rtrim = /^\s+|\s+$/g,
+
        // Keep a UserAgent string for use with jQuery.browser
        userAgent = navigator.userAgent.toLowerCase(),
 
@@ -43,9 +49,8 @@ jQuery.fn = jQuery.prototype = {
 
                // Handle $(DOMElement)
                if ( selector.nodeType ) {
-                       this[0] = selector;
+                       this.context = this[0] = selector;
                        this.length++;
-                       this.context = selector;
                        return this;
                }
 
@@ -132,7 +137,7 @@ jQuery.fn = jQuery.prototype = {
                        this.toArray() :
 
                        // Return just the object
-                       ( num < 0 ? this.toArray.call(this, num)[0] : this[ num ] );
+                       ( num < 0 ? this.toArray(num)[ 0 ] : this[ num ] );
        },
 
        // Take an array of elements and push it onto the stack
@@ -304,7 +309,7 @@ jQuery.extend({
 
        // Evalulates a script in a global context
        globalEval: function( data ) {
-               if ( data && /\S/.test(data) ) {
+               if ( data && rnotwhite.test(data) ) {
                        // Inspired by code by Andrea Giammarchi
                        // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
                        var head = document.getElementsByTagName("head")[0] || document.documentElement,
@@ -367,7 +372,7 @@ jQuery.extend({
        },
 
        trim: function( text ) {
-               return (text || "").replace( /^\s+|\s+$/g, "" );
+               return (text || "").replace( rtrim, "" );
        },
 
        makeArray: function( array ) {
@@ -475,7 +480,7 @@ jQuery.extend({
        // It's included for backwards compatibility and plugins,
        // although they should work to migrate away.
        browser: {
-               version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
+               version: (/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/.exec(userAgent) || [0,'0'])[1],
                safari: /webkit/.test( userAgent ),
                opera: /opera/.test( userAgent ),
                msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),