Permalink
Browse files

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
  • Loading branch information...
mgol committed Mar 20, 2015
1 parent f5aa89a commit 06f6cd1ffd2a4e9f5955d146d229492f245d83cb
Showing with 49 additions and 58 deletions.
  1. +1 −1 package.json
  2. +3 −8 src/core/support.js
  3. +45 −49 src/css/support.js
View
@@ -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",
View
@@ -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 = "<form></form><form></form>";
- return doc.body.childNodes.length === 2;
+ var body = document.implementation.createHTMLDocument( "" ).body;
+ body.innerHTML = "<form></form><form></form>";
+ return body.childNodes.length === 2;
})();
return support;
View
@@ -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;

0 comments on commit 06f6cd1

Please sign in to comment.