]> source.dussan.org Git - jquery.git/commitdiff
Core: Deprecate jQuery.isWindow
authorShashanka Nataraj <shashankan.10@gmail.com>
Fri, 23 Jun 2017 04:14:43 +0000 (04:14 +0000)
committerTimmy Willison <4timmywil@gmail.com>
Mon, 10 Jul 2017 16:00:27 +0000 (12:00 -0400)
Fixes gh-3629
Close gh-3702

src/core.js
src/deprecated.js
src/dimensions.js
src/event/trigger.js
src/offset.js
src/var/isWindow.js [new file with mode: 0644]
test/unit/basic.js
test/unit/core.js
test/unit/deprecated.js

index ce43d737e9490cc4bf81b85d824c0a3fca5a2a55..fc538a49a2b807717a26b956c2d20b5238ec3389 100644 (file)
@@ -16,10 +16,11 @@ define( [
        "./var/fnToString",
        "./var/ObjectFunctionString",
        "./var/support",
+       "./var/isWindow",
        "./core/DOMEval"
 ], function( arr, document, getProto, slice, concat, push, indexOf,
        class2type, toString, hasOwn, fnToString, ObjectFunctionString,
-       support, DOMEval ) {
+       support, isWindow, DOMEval ) {
 
 "use strict";
 
@@ -220,10 +221,6 @@ jQuery.extend( {
                return typeof obj === "function" && typeof obj.nodeType !== "number";
        },
 
-       isWindow: function( obj ) {
-               return obj != null && obj === obj.window;
-       },
-
        isNumeric: function( obj ) {
 
                // As of jQuery 3.0, isNumeric is limited to
@@ -469,7 +466,7 @@ function isArrayLike( obj ) {
        var length = !!obj && "length" in obj && obj.length,
                type = jQuery.type( obj );
 
-       if ( jQuery.isFunction( obj ) || jQuery.isWindow( obj ) ) {
+       if ( jQuery.isFunction( obj ) || isWindow( obj ) ) {
                return false;
        }
 
index 9589ec872618926fe2fd8f711b3c8b50a8f414f7..3ae78aac8d4db9af4f10a4478d9c30f0a1027f80 100644 (file)
@@ -1,7 +1,8 @@
 define( [
        "./core",
-       "./core/nodeName"
-], function( jQuery, nodeName ) {
+       "./core/nodeName",
+       "./var/isWindow"
+], function( jQuery, nodeName, isWindow ) {
 
 "use strict";
 
@@ -36,5 +37,6 @@ jQuery.holdReady = function( hold ) {
 jQuery.isArray = Array.isArray;
 jQuery.parseJSON = JSON.parse;
 jQuery.nodeName = nodeName;
+jQuery.isWindow = isWindow;
 
 } );
index 46e7b1c4602634c2e8ab38b7afcd40cf55886e0e..2a2c0391df5ac34cc4800670191cee39709ff661 100644 (file)
@@ -1,8 +1,9 @@
 define( [
        "./core",
        "./core/access",
+       "./var/isWindow",
        "./css"
-], function( jQuery, access ) {
+], function( jQuery, access, isWindow ) {
 
 "use strict";
 
@@ -19,7 +20,7 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
                        return access( this, function( elem, type, value ) {
                                var doc;
 
-                               if ( jQuery.isWindow( elem ) ) {
+                               if ( isWindow( elem ) ) {
 
                                        // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
                                        return funcName.indexOf( "outer" ) === 0 ?
index c3b048026d62d9f36fd394921d7090d7b5b7472b..1ecda7d689a10bd995af631002051352e1d6dff9 100644 (file)
@@ -4,9 +4,9 @@ define( [
        "../data/var/dataPriv",
        "../data/var/acceptData",
        "../var/hasOwn",
-
+       "../var/isWindow",
        "../event"
-], function( jQuery, document, dataPriv, acceptData, hasOwn ) {
+], function( jQuery, document, dataPriv, acceptData, hasOwn, isWindow ) {
 
 "use strict";
 
@@ -76,7 +76,7 @@ jQuery.extend( jQuery.event, {
 
                // Determine event propagation path in advance, per W3C events spec (#9951)
                // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
-               if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+               if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
 
                        bubbleType = special.delegateType || type;
                        if ( !rfocusMorph.test( bubbleType + type ) ) {
@@ -128,7 +128,7 @@ jQuery.extend( jQuery.event, {
 
                                // Call a native DOM method on the target with the same name as the event.
                                // Don't do default actions on window, that's where global variables be (#6170)
-                               if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+                               if ( ontype && jQuery.isFunction( elem[ type ] ) && !isWindow( elem ) ) {
 
                                        // Don't re-trigger an onFOO event when we call its FOO() method
                                        tmp = elem[ ontype ];
index 563c6e8cd9878e6d17802ff8212f6bff26624da3..f1d64d6a2c770af2e4535e19871ab729b806ba7b 100644 (file)
@@ -7,12 +7,12 @@ define( [
        "./css/curCSS",
        "./css/addGetHookIf",
        "./css/support",
-
+       "./var/isWindow",
        "./core/init",
        "./css",
        "./selector" // contains
 ], function( jQuery, access, document, documentElement, rnumnonpx,
-             curCSS, addGetHookIf, support ) {
+             curCSS, addGetHookIf, support, isWindow ) {
 
 "use strict";
 
@@ -186,7 +186,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
 
                        // Coalesce documents and windows
                        var win;
-                       if ( jQuery.isWindow( elem ) ) {
+                       if ( isWindow( elem ) ) {
                                win = elem;
                        } else if ( elem.nodeType === 9 ) {
                                win = elem.defaultView;
diff --git a/src/var/isWindow.js b/src/var/isWindow.js
new file mode 100644 (file)
index 0000000..2ba1168
--- /dev/null
@@ -0,0 +1,8 @@
+define( function() {
+       "use strict";
+
+       return function isWindow( obj ) {
+               return obj != null && obj === obj.window;
+       };
+
+} );
index 5a2f5abc2b3293b7cd4e5418ec4c57cf21538597..15bca8ff645dfb1723028830fc2e329b3e9f5d23 100644 (file)
@@ -76,7 +76,7 @@ QUnit.test( "show/hide", function( assert ) {
 }
 
 QUnit.test( "core", function( assert ) {
-       assert.expect( 27 );
+       assert.expect( 25 );
 
        var elem = jQuery( "<div></div><span></span>" );
 
@@ -100,9 +100,6 @@ QUnit.test( "core", function( assert ) {
                "<?xml version='1.0' encoding='UTF-8'?><foo bar='baz'></foo>"
        ) ), "jQuery.isXMLDoc" );
 
-       assert.ok( jQuery.isWindow( window ), "jQuery.isWindow(window)" );
-       assert.ok( !jQuery.isWindow( 2 ), "jQuery.isWindow(Number)" );
-
        assert.strictEqual( jQuery.inArray( 3, [ "a", 6, false, 3, {} ] ), 3, "jQuery.inArray - true" );
        assert.strictEqual(
                jQuery.inArray( 3, [ "a", 6, false, "3", {} ] ),
index 66a18268ce12d6088a1d5d0d2451b0d159b75ab2..322b21dc629e3305a8280a7619db6a9266b38377 100644 (file)
@@ -680,25 +680,6 @@ QUnit.test( "isXMLDoc - XML", function( assert ) {
        assert.ok( jQuery.isXMLDoc( jQuery( "tab", xml )[ 0 ] ), "XML Tab Element" );
 } );
 
-QUnit.test( "isWindow", function( assert ) {
-       assert.expect( 14 );
-
-       assert.ok( jQuery.isWindow( window ), "window" );
-       assert.ok( jQuery.isWindow( document.getElementsByTagName( "iframe" )[ 0 ].contentWindow ), "iframe.contentWindow" );
-       assert.ok( !jQuery.isWindow(), "empty" );
-       assert.ok( !jQuery.isWindow( null ), "null" );
-       assert.ok( !jQuery.isWindow( undefined ), "undefined" );
-       assert.ok( !jQuery.isWindow( document ), "document" );
-       assert.ok( !jQuery.isWindow( document.documentElement ), "documentElement" );
-       assert.ok( !jQuery.isWindow( "" ), "string" );
-       assert.ok( !jQuery.isWindow( 1 ), "number" );
-       assert.ok( !jQuery.isWindow( true ), "boolean" );
-       assert.ok( !jQuery.isWindow( {} ), "object" );
-       assert.ok( !jQuery.isWindow( { setInterval: function() {} } ), "fake window" );
-       assert.ok( !jQuery.isWindow( /window/ ), "regexp" );
-       assert.ok( !jQuery.isWindow( function() {} ), "function" );
-} );
-
 QUnit.test( "jQuery('html')", function( assert ) {
        assert.expect( 18 );
 
index 5c05d9b0008ad98167e3913973c320647ac9f905..f555ac6559b461f47b6b55c2ef43d256fd250828 100644 (file)
@@ -164,3 +164,22 @@ QUnit.test( "jQuery.nodeName", function( assert ) {
                "Works on custom elements (true)"
        );
 } );
+
+QUnit.test( "jQuery.isWindow", function( assert ) {
+       assert.expect( 14 );
+
+       assert.ok( jQuery.isWindow( window ), "window" );
+       assert.ok( jQuery.isWindow( document.getElementsByTagName( "iframe" )[ 0 ].contentWindow ), "iframe.contentWindow" );
+       assert.ok( !jQuery.isWindow(), "empty" );
+       assert.ok( !jQuery.isWindow( null ), "null" );
+       assert.ok( !jQuery.isWindow( undefined ), "undefined" );
+       assert.ok( !jQuery.isWindow( document ), "document" );
+       assert.ok( !jQuery.isWindow( document.documentElement ), "documentElement" );
+       assert.ok( !jQuery.isWindow( "" ), "string" );
+       assert.ok( !jQuery.isWindow( 1 ), "number" );
+       assert.ok( !jQuery.isWindow( true ), "boolean" );
+       assert.ok( !jQuery.isWindow( {} ), "object" );
+       assert.ok( !jQuery.isWindow( { setInterval: function() {} } ), "fake window" );
+       assert.ok( !jQuery.isWindow( /window/ ), "regexp" );
+       assert.ok( !jQuery.isWindow( function() {} ), "function" );
+} );