From 06f6cd1ffd2a4e9f5955d146d229492f245d83cb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20Go=C5=82=C4=99biowski?= Date: Fri, 20 Mar 2015 16:28:10 +0100 Subject: [PATCH] Core: Update tested jsdom, drop obsolete workarounds The latest version supporting Node.js is 3.1.2; some workarounds are not needed for this version. For example, in jsdom 3.1.2 a document created via document.implementation.createHTMLDocument( "" ) has a body. Fixes gh-2153 Closes gh-2154 --- package.json | 2 +- src/core/support.js | 11 ++---- src/css/support.js | 94 ++++++++++++++++++++++----------------------- 3 files changed, 49 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index c8218539c..623fe44e1 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "grunt-jsonlint": "1.0.4", "grunt-npmcopy": "0.1.0", "gzip-js": "0.3.2", - "jsdom": "1.5.0", + "jsdom": "3.1.2", "load-grunt-tasks": "1.0.0", "native-promise-only": "0.7.8-a", "npm": "2.1.12", diff --git a/src/core/support.js b/src/core/support.js index 7fc1d82b2..4ef1dacab 100644 --- a/src/core/support.js +++ b/src/core/support.js @@ -4,14 +4,9 @@ define([ ], function( document, support ) { support.createHTMLDocument = (function() { - var doc = document.implementation.createHTMLDocument( "" ); - // Support: Node with jsdom<=1.5.0+ - // jsdom's document created via the above method doesn't contain the body - if ( !doc.body ) { - return false; - } - doc.body.innerHTML = "
"; - return doc.body.childNodes.length === 2; + var body = document.implementation.createHTMLDocument( "" ).body; + body.innerHTML = "
"; + return body.childNodes.length === 2; })(); return support; diff --git a/src/css/support.js b/src/css/support.js index 4dd22bd2a..fde735318 100644 --- a/src/css/support.js +++ b/src/css/support.js @@ -46,61 +46,57 @@ define([ documentElement.removeChild( container ); } - // Support: node.js jsdom - // Don't assume that getComputedStyle is a property of the global object - if ( window.getComputedStyle ) { - jQuery.extend( support, { - pixelPosition: function() { - // This test is executed only once but we still do memoizing - // since we can use the boxSizingReliable pre-computing. - // No need to check if the test was already performed, though. + jQuery.extend( support, { + pixelPosition: function() { + // This test is executed only once but we still do memoizing + // since we can use the boxSizingReliable pre-computing. + // No need to check if the test was already performed, though. + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + if ( boxSizingReliableVal == null ) { computeStyleTests(); - return pixelPositionVal; - }, - boxSizingReliable: function() { - if ( boxSizingReliableVal == null ) { - computeStyleTests(); - } - return boxSizingReliableVal; - }, - pixelMarginRight: function() { - // Support: Android 4.0-4.3 - // We're checking for boxSizingReliableVal here instead of pixelMarginRightVal - // since that compresses better and they're computed together anyway. - if ( boxSizingReliableVal == null ) { - computeStyleTests(); - } - return pixelMarginRightVal; - }, - reliableMarginRight: function() { + } + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + // Support: Android 4.0-4.3 + // We're checking for boxSizingReliableVal here instead of pixelMarginRightVal + // since that compresses better and they're computed together anyway. + if ( boxSizingReliableVal == null ) { + computeStyleTests(); + } + return pixelMarginRightVal; + }, + reliableMarginRight: function() { - // Support: Android 2.3 - // Check if div with explicit width and no margin-right incorrectly - // gets computed margin-right based on width of container. (#3333) - // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right - // This support function is only executed once so no memoizing is needed. - var ret, - marginDiv = div.appendChild( document.createElement( "div" ) ); + // Support: Android 2.3 + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // This support function is only executed once so no memoizing is needed. + var ret, + marginDiv = div.appendChild( document.createElement( "div" ) ); - // Reset CSS: box-sizing; display; margin; border; padding - marginDiv.style.cssText = div.style.cssText = - // Support: Android 2.3 - // Vendor-prefix box-sizing - "-webkit-box-sizing:content-box;box-sizing:content-box;" + - "display:block;margin:0;border:0;padding:0"; - marginDiv.style.marginRight = marginDiv.style.width = "0"; - div.style.width = "1px"; - documentElement.appendChild( container ); + // Reset CSS: box-sizing; display; margin; border; padding + marginDiv.style.cssText = div.style.cssText = + // Support: Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;box-sizing:content-box;" + + "display:block;margin:0;border:0;padding:0"; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + documentElement.appendChild( container ); - ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight ); + ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight ); - documentElement.removeChild( container ); - div.removeChild( marginDiv ); + documentElement.removeChild( container ); + div.removeChild( marginDiv ); - return ret; - } - }); - } + return ret; + } + }); })(); return support; -- 2.39.5