Index: .travis.yml
===================================================================
--- .travis.yml	(revision 43946)
+++ .travis.yml	(working copy)
@@ -14,6 +14,7 @@
   include:
   - php: 7.1
     env: WP_TRAVISCI=travis:js
+  - php: 7.3
   - php: 7.2
   - php: 7.1
   - php: 7.0
@@ -30,6 +31,7 @@
   - php: nightly
   allow_failures:
   - php: nightly
+  - php: 7.3
 before_install:
 - |
   if [[ "$WP_TRAVISCI" == "travis:phpunit" ]]; then
@@ -63,7 +65,7 @@
   # Install the specified version of PHPUnit depending on the PHP version:
   if [[ "$WP_TRAVISCI" == "travis:phpunit" ]]; then
     case "$TRAVIS_PHP_VERSION" in
-      7.2|7.1|7.0|nightly)
+      7.3|7.2|7.1|7.0|nightly)
         echo "Using PHPUnit 6.x"
         composer global require "phpunit/phpunit:^6"
         ;;
Index: src/wp-includes/class-wp-comment-query.php
===================================================================
--- src/wp-includes/class-wp-comment-query.php	(revision 43946)
+++ src/wp-includes/class-wp-comment-query.php	(working copy)
@@ -633,6 +633,7 @@
 		$number = absint( $this->query_vars['number'] );
 		$offset = absint( $this->query_vars['offset'] );
 		$paged = absint( $this->query_vars['paged'] );
+		$limits = '';
 
 		if ( ! empty( $number ) ) {
 			if ( $offset ) {
@@ -817,7 +818,8 @@
 			$this->sql_clauses['where']['post_author__not_in'] = 'post_author NOT IN ( ' . implode( ',', wp_parse_id_list( $this->query_vars['post_author__not_in'] ) ) . ' )';
 		}
 
-		$join = '';
+		$join    = '';
+		$groupby = '';
 
 		if ( $join_posts_table ) {
 			$join .= "JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->comments.comment_post_ID";
Index: src/wp-includes/class-wp-network-query.php
===================================================================
--- src/wp-includes/class-wp-network-query.php	(revision 43946)
+++ src/wp-includes/class-wp-network-query.php	(working copy)
@@ -326,10 +326,11 @@
 			$orderby = "$wpdb->site.id $order";
 		}
 
-		$number = absint( $this->query_vars['number'] );
-		$offset = absint( $this->query_vars['offset'] );
-
-		if ( ! empty( $number ) ) {
+		$number = absint( $this->query_vars['number'] );
+		$offset = absint( $this->query_vars['offset'] );
+		$limits = '';
+
+		if ( ! empty( $number ) ) {
 			if ( $offset ) {
 				$limits = 'LIMIT ' . $offset . ',' . $number;
 			} else {
@@ -390,11 +391,13 @@
 		}
 
 		$join = '';
+
+		$where = implode( ' AND ', $this->sql_clauses['where'] );
+
+		$groupby = '';
+
+		$pieces = array( 'fields', 'join', 'where', 'orderby', 'limits', 'groupby' );
 
-		$where = implode( ' AND ', $this->sql_clauses['where'] );
-
-		$pieces = array( 'fields', 'join', 'where', 'orderby', 'limits', 'groupby' );
-
 		/**
 		 * Filters the network query clauses.
 		 *
Index: src/wp-includes/class-wp-site-query.php
===================================================================
--- src/wp-includes/class-wp-site-query.php	(revision 43946)
+++ src/wp-includes/class-wp-site-query.php	(working copy)
@@ -370,10 +370,11 @@
 			$orderby = "blog_id $order";
 		}
 
-		$number = absint( $this->query_vars['number'] );
-		$offset = absint( $this->query_vars['offset'] );
-
-		if ( ! empty( $number ) ) {
+		$number = absint( $this->query_vars['number'] );
+		$offset = absint( $this->query_vars['offset'] );
+		$limits = '';
+
+		if ( ! empty( $number ) ) {
 			if ( $offset ) {
 				$limits = 'LIMIT ' . $offset . ',' . $number;
 			} else {
@@ -522,11 +523,13 @@
 		}
 
 		$join = '';
+
+		$where = implode( ' AND ', $this->sql_clauses['where'] );
+
+		$groupby = '';
+
+		$pieces = array( 'fields', 'join', 'where', 'orderby', 'limits', 'groupby' );
 
-		$where = implode( ' AND ', $this->sql_clauses['where'] );
-
-		$pieces = array( 'fields', 'join', 'where', 'orderby', 'limits', 'groupby' );
-
 		/**
 		 * Filters the site query clauses.
 		 *
Index: src/wp-includes/class-wp-xmlrpc-server.php
===================================================================
--- src/wp-includes/class-wp-xmlrpc-server.php	(revision 43946)
+++ src/wp-includes/class-wp-xmlrpc-server.php	(working copy)
@@ -3517,6 +3517,9 @@
 
 		/** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
 		do_action( 'xmlrpc_call', 'wp.editComment' );
+		$comment = array(
+			'comment_ID' => $comment_ID,
+		);
 
 		if ( isset($content_struct['status']) ) {
 			$statuses = get_comment_statuses();
@@ -3524,32 +3527,35 @@
 
 			if ( ! in_array($content_struct['status'], $statuses) )
 				return new IXR_Error( 401, __( 'Invalid comment status.' ) );
-			$comment_approved = $content_struct['status'];
+
+			$comment['comment_approved'] = $content_struct['status'];
 		}
 
 		// Do some timestamp voodoo
 		if ( !empty( $content_struct['date_created_gmt'] ) ) {
 			// We know this is supposed to be GMT, so we're going to slap that Z on there by force
-			$dateCreated = rtrim( $content_struct['date_created_gmt']->getIso(), 'Z' ) . 'Z';
-			$comment_date = get_date_from_gmt(iso8601_to_datetime($dateCreated));
-			$comment_date_gmt = iso8601_to_datetime($dateCreated, 'GMT');
+
+			$dateCreated                 = rtrim( $content_struct['date_created_gmt']->getIso(), 'Z' ) . 'Z';
+			$comment['comment_date']     = get_date_from_gmt( iso8601_to_datetime( $dateCreated ) );
+			$comment['comment_date_gmt'] = iso8601_to_datetime( $dateCreated, 'GMT' );
 		}
 
-		if ( isset($content_struct['content']) )
-			$comment_content = $content_struct['content'];
+		if ( isset($content_struct['content']) ) {
+			$comment['comment_content'] = $content_struct['content'];
+		}
 
-		if ( isset($content_struct['author']) )
-			$comment_author = $content_struct['author'];
+		if ( isset($content_struct['author']) ) {
+			$comment['comment_author'] = $content_struct['author'];
+		}
 
-		if ( isset($content_struct['author_url']) )
-			$comment_author_url = $content_struct['author_url'];
+		if ( isset($content_struct['author_url']) ) {
+			$comment['comment_author_url'] = $content_struct['author_url'];
+		}
 
-		if ( isset($content_struct['author_email']) )
-			$comment_author_email = $content_struct['author_email'];
+		if ( isset($content_struct['author_email']) ) {
+			$comment['comment_author_email'] = $content_struct['author_email'];
+		}
 
-		// We've got all the data -- post it:
-		$comment = compact('comment_ID', 'comment_content', 'comment_approved', 'comment_date', 'comment_date_gmt', 'comment_author', 'comment_author_email', 'comment_author_url');
-
 		$result = wp_update_comment($comment);
 		if ( is_wp_error( $result ) )
 			return new IXR_Error(500, $result->get_error_message());
@@ -4989,16 +4995,25 @@
 			$post_name = $content_struct['wp_slug'];
 
 		// Only use a password if one was given.
-		if ( isset($content_struct['wp_password']) )
+		if ( isset($content_struct['wp_password']) ) {
 			$post_password = $content_struct['wp_password'];
+		} else {
+			$post_password = '';
+		}
 
 		// Only set a post parent if one was provided.
-		if ( isset($content_struct['wp_page_parent_id']) )
+		if ( isset($content_struct['wp_page_parent_id']) ) {
 			$post_parent = $content_struct['wp_page_parent_id'];
+ 		} else {
+			$post_parent = 0;
+  		}
 
 		// Only set the menu_order if it was provided.
-		if ( isset($content_struct['wp_page_order']) )
+		if ( isset($content_struct['wp_page_order']) ) {
 			$menu_order = $content_struct['wp_page_order'];
+ 		} else {
+			$menu_order = 0;
+  		}
 
 		$post_author = $user->ID;
 
@@ -5308,14 +5323,16 @@
 
 		$this->escape($postdata);
 
-		$ID = $postdata['ID'];
-		$post_content = $postdata['post_content'];
-		$post_title = $postdata['post_title'];
-		$post_excerpt = $postdata['post_excerpt'];
-		$post_password = $postdata['post_password'];
-		$post_parent = $postdata['post_parent'];
-		$post_type = $postdata['post_type'];
-		$menu_order = $postdata['menu_order'];
+		$ID             = $postdata['ID'];
+		$post_content   = $postdata['post_content'];
+		$post_title     = $postdata['post_title'];
+		$post_excerpt   = $postdata['post_excerpt'];
+		$post_password  = $postdata['post_password'];
+		$post_parent    = $postdata['post_parent'];
+		$post_type      = $postdata['post_type'];
+		$menu_order     = $postdata['menu_order'];
+		$ping_status    = $postdata['ping_status'];
+		$comment_status = $postdata['comment_status'];
 
 		// Let WordPress manage slug if none was provided.
 		$post_name = $postdata['post_name'];
Index: src/wp-includes/comment.php
===================================================================
--- src/wp-includes/comment.php	(revision 43946)
+++ src/wp-includes/comment.php	(working copy)
@@ -2977,7 +2977,7 @@
  */
 function wp_handle_comment_submission( $comment_data ) {
 
-	$comment_post_ID = $comment_parent = 0;
+	$comment_post_ID = $comment_parent = $user_ID = 0;
 	$comment_author = $comment_author_email = $comment_author_url = $comment_content = null;
 
 	if ( isset( $comment_data['comment_post_ID'] ) ) {
Index: src/wp-includes/post.php
===================================================================
--- src/wp-includes/post.php	(revision 43946)
+++ src/wp-includes/post.php	(working copy)
@@ -3374,6 +3374,13 @@
 		$post_parent = 0;
 	}
 
+	$new_postarr = array_merge(
+		array(
+			'ID' => $post_ID,
+		),
+		compact( array_diff( array_keys( $defaults ), array( 'context', 'filter' ) ) )
+	);
+
 	/**
 	 * Filters the post parent -- used to check for and prevent hierarchy loops.
 	 *
@@ -3384,7 +3391,7 @@
 	 * @param array $new_postarr Array of parsed post data.
 	 * @param array $postarr     Array of sanitized, but otherwise unmodified post data.
 	 */
-	$post_parent = apply_filters( 'wp_insert_post_parent', $post_parent, $post_ID, compact( array_keys( $postarr ) ), $postarr );
+	$post_parent = apply_filters( 'wp_insert_post_parent', $post_parent, $post_ID, $new_postarr, $postarr );
 
 	/*
 	 * If the post is being untrashed and it has a desired slug stored in post meta,
Index: tests/phpunit/tests/dependencies/scripts.php
===================================================================
--- tests/phpunit/tests/dependencies/scripts.php	(revision 43946)
+++ tests/phpunit/tests/dependencies/scripts.php	(working copy)
@@ -819,6 +819,7 @@
 	 * @covers wp_enqueue_code_editor()
 	 */
 	public function test_wp_enqueue_code_editor_when_generated_array_by_compact_will_be_passed() {
+		$file                   = '';
 		$wp_enqueue_code_editor = wp_enqueue_code_editor( compact( 'file' ) );
 		$this->assertNonEmptyMultidimensionalArray( $wp_enqueue_code_editor );
 
