define( [
	"../core",
	"../var/document",
	"../var/documentElement",
	"../var/support"
], function( jQuery, document, documentElement, support ) {

( function() {
	var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
		container = document.createElement( "div" ),
		div = document.createElement( "div" );

	// Finish early in limited (non-browser) environments
	if ( !div.style ) {
		return;
	}

	// Support: IE9-11 only
	// Style of cloned element affects source element cloned (#8908)
	div.style.backgroundClip = "content-box";
	div.cloneNode( true ).style.backgroundClip = "";
	support.clearCloneStyle = div.style.backgroundClip === "content-box";

	container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
		"padding:0;margin-top:1px;position:absolute";
	container.appendChild( div );

	// Executing both pixelPosition & boxSizingReliable tests require only one layout
	// so they're executed at the same time to save the second computation.
	function computeStyleTests() {
		div.style.cssText =
			"box-sizing:border-box;" +
			"position:relative;display:block;" +
			"margin:auto;border:1px;padding:1px;" +
			"top:1%;width:50%";
		div.innerHTML = "";
		documentElement.appendChild( container );

		var divStyle = window.getComputedStyle( div );
		pixelPositionVal = divStyle.top !== "1%";
		reliableMarginLeftVal = divStyle.marginLeft === "2px";
		boxSizingReliableVal = divStyle.width === "4px";

		// Support: Android 4.0 - 4.3 only
		// Some styles come back with percentage values, even though they shouldn't
		div.style.marginRight = "50%";
		pixelMarginRightVal = divStyle.marginRight === "4px";

		documentElement.removeChild( container );
	}

	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 boxSizingReliableVal;
		},
		pixelMarginRight: function() {

			// Support: Android 4.0 - 4.3 only
			// 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;
		},
		reliableMarginLeft: function() {

			// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44+
			if ( boxSizingReliableVal == null ) {
				computeStyleTests();
			}
			return reliableMarginLeftVal;
		}
	} );
} )();

return support;

} );

@@ -1027,16 +1027,107 @@
 sts() %7B%0A
+%0A%09%09// This is a singleton, we need to execute it only once%0A%09%09if ( !div ) %7B%0A%09%09%09return;%0A%09%09%7D%0A%0A
 %09%09div.st
@@ -1435,16 +1435,73 @@
 == %221%25%22;
+%0A%0A%09%09// Support: Android 4.0 - 4.3 only, Firefox %3C=3 - 44+
 %0A%09%09relia
@@ -1855,259 +1855,205 @@
  );%0A
-%09%7D%0A%0A%09jQuery.extend( support, %7B%0A%09%09pixelPosition: function() %7B%0A%0A%09%09%09// This test is executed only once but we still do memoizing
+%0A%09%09// Nullify the div so it wouldn't be stored in the memory and
 %0A%09%09
-%09
 // 
-since we can use the boxSizingReliable pre-computing.%0A%09%09%09// No need to check if the test was already performed, though.
+it will also be a sign that checks already performed%0A%09%09div = null;%0A%09%7D%0A%0A%09jQuery.extend( support, %7B%0A%09%09pixelPosition: function() %7B
 %0A%09%09%09
@@ -2144,50 +2144,8 @@
 ) %7B%0A
-%09%09%09if ( boxSizingReliableVal == null ) %7B%0A%09
 %09%09%09c
@@ -2156,37 +2156,32 @@
 teStyleTests();%0A
-%09%09%09%7D%0A
 %09%09%09return boxSiz
@@ -2238,244 +2238,8 @@
 ) %7B%0A
-%0A%09%09%09// Support: Android 4.0 - 4.3 only%0A%09%09%09// We're checking for boxSizingReliableVal here instead of pixelMarginRightVal%0A%09%09%09// since that compresses better and they're computed together anyway.%0A%09%09%09if ( boxSizingReliableVal == null ) %7B%0A%09
 %09%09%09c
@@ -2250,37 +2250,32 @@
 teStyleTests();%0A
-%09%09%09%7D%0A
 %09%09%09return pixelM
@@ -2333,108 +2333,8 @@
 ) %7B%0A
-%0A%09%09%09// Support: Android 4.0 - 4.3 only, Firefox %3C=3 - 44+%0A%09%09%09if ( boxSizingReliableVal == null ) %7B%0A%09
 %09%09%09c
@@ -2357,13 +2357,8 @@
 ();%0A
-%09%09%09%7D%0A
 %09%09%09r

improve support properties computation