Index: src/wp-includes/functions.php
===================================================================
--- src/wp-includes/functions.php	(revision 29898)
+++ src/wp-includes/functions.php	(working copy)
@@ -286,7 +286,7 @@
 		return false;
 	}
 	$data = trim( $data );
- 	if ( 'N;' == $data ) {
+	if ( 'N;' == $data ) {
 		return true;
 	}
 	if ( strlen( $data ) < 4 ) {
@@ -2512,7 +2512,7 @@
 
 			-webkit-box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
 			box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0,0,0,.08);
-		 	vertical-align: top;
+			vertical-align: top;
 		}
 
 		.button.button-large {
@@ -2538,7 +2538,7 @@
 			border-color: #999;
 			color: #333;
 			-webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
-		 	box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+			box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 		}
 
 		<?php if ( 'rtl' == $text_direction ) : ?>
@@ -2768,7 +2768,7 @@
 		  ':arrow:' => 'icon_arrow.gif',
 		  ':shock:' => 'icon_eek.gif',
 		  ':smile:' => 'icon_smile.gif',
-		    ':???:' => 'icon_confused.gif',
+			':???:' => 'icon_confused.gif',
 		   ':cool:' => 'icon_cool.gif',
 		   ':evil:' => 'icon_evil.gif',
 		   ':grin:' => 'icon_biggrin.gif',
@@ -2777,36 +2777,36 @@
 		   ':razz:' => 'icon_razz.gif',
 		   ':roll:' => 'icon_rolleyes.gif',
 		   ':wink:' => 'icon_wink.gif',
-		    ':cry:' => 'icon_cry.gif',
-		    ':eek:' => 'icon_surprised.gif',
-		    ':lol:' => 'icon_lol.gif',
-		    ':mad:' => 'icon_mad.gif',
-		    ':sad:' => 'icon_sad.gif',
-		      '8-)' => 'icon_cool.gif',
-		      '8-O' => 'icon_eek.gif',
-		      ':-(' => 'icon_sad.gif',
-		      ':-)' => 'icon_smile.gif',
-		      ':-?' => 'icon_confused.gif',
-		      ':-D' => 'icon_biggrin.gif',
-		      ':-P' => 'icon_razz.gif',
-		      ':-o' => 'icon_surprised.gif',
-		      ':-x' => 'icon_mad.gif',
-		      ':-|' => 'icon_neutral.gif',
-		      ';-)' => 'icon_wink.gif',
+			':cry:' => 'icon_cry.gif',
+			':eek:' => 'icon_surprised.gif',
+			':lol:' => 'icon_lol.gif',
+			':mad:' => 'icon_mad.gif',
+			':sad:' => 'icon_sad.gif',
+			  '8-)' => 'icon_cool.gif',
+			  '8-O' => 'icon_eek.gif',
+			  ':-(' => 'icon_sad.gif',
+			  ':-)' => 'icon_smile.gif',
+			  ':-?' => 'icon_confused.gif',
+			  ':-D' => 'icon_biggrin.gif',
+			  ':-P' => 'icon_razz.gif',
+			  ':-o' => 'icon_surprised.gif',
+			  ':-x' => 'icon_mad.gif',
+			  ':-|' => 'icon_neutral.gif',
+			  ';-)' => 'icon_wink.gif',
 		// This one transformation breaks regular text with frequency.
 		//     '8)' => 'icon_cool.gif',
-		       '8O' => 'icon_eek.gif',
-		       ':(' => 'icon_sad.gif',
-		       ':)' => 'icon_smile.gif',
-		       ':?' => 'icon_confused.gif',
-		       ':D' => 'icon_biggrin.gif',
-		       ':P' => 'icon_razz.gif',
-		       ':o' => 'icon_surprised.gif',
-		       ':x' => 'icon_mad.gif',
-		       ':|' => 'icon_neutral.gif',
-		       ';)' => 'icon_wink.gif',
-		      ':!:' => 'icon_exclaim.gif',
-		      ':?:' => 'icon_question.gif',
+			   '8O' => 'icon_eek.gif',
+			   ':(' => 'icon_sad.gif',
+			   ':)' => 'icon_smile.gif',
+			   ':?' => 'icon_confused.gif',
+			   ':D' => 'icon_biggrin.gif',
+			   ':P' => 'icon_razz.gif',
+			   ':o' => 'icon_surprised.gif',
+			   ':x' => 'icon_mad.gif',
+			   ':|' => 'icon_neutral.gif',
+			   ';)' => 'icon_wink.gif',
+			  ':!:' => 'icon_exclaim.gif',
+			  ':?:' => 'icon_question.gif',
 		);
 	}
 
@@ -3329,6 +3329,57 @@
 }
 
 /**
+ * Mark a property as deprecated and inform when it has been used.
+ *
+ * There is a hook deprecated_property_run that will be called that can be used
+ * to get the backtrace up to what file and function used the deprecated
+ * property.
+ *
+ * The current behavior is to trigger a user error if WP_DEBUG is true.
+ *
+ * @since X4.2
+ * @access private
+ *
+ * @param string $property The property that was accessed.
+ * @param string $version  The version of WordPress that deprecated the argument used.
+ * @param string $message  Optional. A message regarding the change. Default null.
+ */
+function _deprecated_property( $property, $version, $message = null ) {
+
+	/**
+	 * Fires when a deprecated property is accessed.
+	 *
+	 * @since X4.2
+	 *
+	 * @param string $property The property that was accessed.
+	 * @param string $message  A message regarding the change.
+	 * @param string $version  The version of WordPress that deprecated the property used.
+	 */
+	do_action( 'deprecated_property_run', $property, $message, $version );
+
+	/**
+	 * Filter whether to trigger an error for deprecated properties.
+	 *
+	 * @since X4.2
+	 *
+	 * @param bool $trigger Whether to trigger the error for deprecated properties. Default true.
+	 */
+	if ( WP_DEBUG && apply_filters( 'deprecated_property_trigger_error', true ) ) {
+		if ( function_exists( '__' ) ) {
+			if ( ! is_null( $message ) )
+				trigger_error( sprintf( __('%1$s is <strong>deprecated</strong> since version %2$s! %3$s'), $property, $version, $message ) );
+			else
+				trigger_error( sprintf( __('%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.'), $property, $version ) );
+		} else {
+			if ( ! is_null( $message ) )
+				trigger_error( sprintf( '%1$s is <strong>deprecated</strong> since version %2$s! %3$s', $property, $version, $message ) );
+			else
+				trigger_error( sprintf( '%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.', $property, $version ) );
+		}
+	}
+}
+
+/**
  * Mark something as being incorrectly called.
  *
  * There is a hook doing_it_wrong_run that will be called that can be used
Index: tests/phpunit/includes/testcase.php
===================================================================
--- tests/phpunit/includes/testcase.php	(revision 29898)
+++ tests/phpunit/includes/testcase.php	(working copy)
@@ -196,9 +196,12 @@
 		}
 		add_action( 'deprecated_function_run', array( $this, 'deprecated_function_run' ) );
 		add_action( 'deprecated_argument_run', array( $this, 'deprecated_function_run' ) );
-		add_action( 'doing_it_wrong_run', array( $this, 'doing_it_wrong_run' ) );
+		add_action( 'deprecated_property_run', array( $this, 'deprecated_function_run' ) );
+		add_action( 'doing_it_wrong_run',      array( $this, 'doing_it_wrong_run' ) );
+
 		add_action( 'deprecated_function_trigger_error', '__return_false' );
 		add_action( 'deprecated_argument_trigger_error', '__return_false' );
+		add_action( 'deprecated_property_trigger_error', '__return_false' );
 		add_action( 'doing_it_wrong_trigger_error',      '__return_false' );
 	}
 
Index: tests/phpunit/tests/functions/deprecated.php
===================================================================
--- tests/phpunit/tests/functions/deprecated.php	(revision 29898)
+++ tests/phpunit/tests/functions/deprecated.php	(working copy)
@@ -23,6 +23,12 @@
 	protected $_deprecated_arguments = array();
 
 	/**
+	 * List of properties that have been passed through _deprecated_property()
+	 * @var string[]
+	 */
+	protected $_deprecated_properties = array();
+
+	/**
 	 * List of files that have been passed through _deprecated_file()
 	 * @var string[]
 	 */
@@ -34,13 +40,20 @@
 	 */
 	public function setUp() {
 		parent::setUp();
+
 		$this->_deprecated_functions = array();
-		$this->_deprecated_arguments = array();
-		$this->_deprecated_files = array();
 		add_action( 'deprecated_function_run' , array( $this, 'deprecated_function' ), 10, 3 );
 		add_action( 'deprecated_function_trigger_error', '__return_false' );
+
+		$this->_deprecated_arguments = array();
 		add_action( 'deprecated_argument_run' , array( $this, 'deprecated_argument' ), 10, 3 );
 		add_action( 'deprecated_argument_trigger_error', '__return_false' );
+
+		$this->_deprecated_properties = array();
+		add_action( 'deprecated_property_run' , array( $this, 'deprecated_property' ), 10, 3 );
+		add_action( 'deprecated_property_trigger_error', '__return_false' );
+
+		$this->_deprecated_files = array();
 		add_action( 'deprecated_file_included' , array( $this, 'deprecated_file' ), 10, 4 );
 		add_action( 'deprecated_file_trigger_error', '__return_false' );
 	}
@@ -52,10 +65,16 @@
 	public function teardown() {
 		remove_action( 'deprecated_function_run' , array( $this, 'deprecated_function' ), 10, 3 );
 		remove_action( 'deprecated_function_trigger_error', '__return_false' );
+
 		remove_action( 'deprecated_argument_run' , array( $this, 'deprecated_argument' ), 10, 3 );
 		remove_action( 'deprecated_argument_trigger_error', '__return_false' );
-		remove_action( 'deprecated_file_included' , array( $this, 'deprecated_argument' ), 10, 4 );
+
+		remove_action( 'deprecated_property_run' , array( $this, 'deprecated_property' ), 10, 3 );
+		remove_action( 'deprecated_property_trigger_error', '__return_false' );
+
+		remove_action( 'deprecated_file_included' , array( $this, 'deprecated_file' ), 10, 4 );
 		remove_action( 'deprecated_file_trigger_error', '__return_false' );
+
 		parent::tearDown();
 	}
 
@@ -90,13 +109,29 @@
 	}
 
 	/**
-	 * Catch arguments that have passed through _deprecated_argument
-	 * @param string $argument
+	 * Catch arguments that have passed through _deprecated_property
+	 * @param string $property
 	 * @param string $message
 	 * @param float $version
 	 * @return void
 	 */
-	public function deprecated_file( $file, $version, $replacement, $message ) {
+	public function deprecated_property( $property, $message, $version ) {
+		$this->_deprecated_properties[] = array(
+			'property' => $property,
+			'message'  => $message,
+			'version'  => $version
+		);
+	}
+
+	/**
+	 * Catch arguments that have passed through _deprecated_file
+	 * @param string $file
+	 * @param string $message
+	 * @param float $version
+	 * @param string $replacement
+	 * @return void
+	 */
+	public function deprecated_file( $file, $replacement, $version, $message ) {
 		$this->_deprecated_files[] = array(
 			'file'        => $file,
 			'version'     => $version,
@@ -113,6 +148,10 @@
 	 */
 	protected function was_deprecated( $type, $name ) {
 		switch ( $type ) {
+			case 'property' :
+				$search = $this->_deprecated_properties;
+				$key    = 'property';
+				break;
 			case 'argument' :
 				$search = $this->_deprecated_arguments;
 				$key    = 'argument';
