diff --git src/bp-core/js/avatar.js src/bp-core/js/avatar.js
index 938feaeda..44b913307 100644
--- src/bp-core/js/avatar.js
+++ src/bp-core/js/avatar.js
@@ -1,8 +1,8 @@
-/* global bp, BP_Uploader, _, Backbone */
+/* global BP_Uploader, _, Backbone */
 
 window.bp = window.bp || {};
 
-( function( exports, $ ) {
+( function( bp, $ ) {
 
 	// Bail if not set.
 	if ( typeof BP_Uploader === 'undefined' ) {
@@ -679,4 +679,4 @@ window.bp = window.bp || {};
 
 	bp.Avatar.start();
 
-})( bp, jQuery );
+})( window.bp, jQuery );
diff --git src/bp-core/js/bp-plupload.js src/bp-core/js/bp-plupload.js
index a8020d597..d73bd8931 100644
--- src/bp-core/js/bp-plupload.js
+++ src/bp-core/js/bp-plupload.js
@@ -1,9 +1,9 @@
-/* global bp, plupload, BP_Uploader, _, JSON, Backbone */
+/* global plupload, BP_Uploader, _, JSON, Backbone */
 
 window.wp = window.wp || {};
 window.bp = window.bp || {};
 
-( function( exports, $ ) {
+( function( bp, $ ) {
 
 	// Bail if not set.
 	if ( typeof BP_Uploader === 'undefined' ) {
@@ -85,14 +85,17 @@ window.bp = window.bp || {};
 
 			if ( uploader.features.dragdrop && ! self.params.browser.mobile ) {
 				container.addClass( 'drag-drop' );
-				drop_element.bind( 'dragover.wp-uploader', function() {
+
+				drop_element.on( 'dragover.wp-uploader', function() {
 					container.addClass( 'drag-over' );
-				} ).bind( 'dragleave.wp-uploader, drop.wp-uploader', function() {
+				} );
+
+				drop_element.on( 'dragleave.wp-uploader, drop.wp-uploader', function() {
 					container.removeClass( 'drag-over' );
 				} );
 			} else {
 				container.removeClass( 'drag-drop' );
-				drop_element.unbind( '.wp-uploader' );
+				drop_element.off( '.wp-uploader' );
 			}
 
 		} );
@@ -416,4 +419,4 @@ window.bp = window.bp || {};
 		template: bp.template( 'progress-window' )
 	} );
 
-})( bp, jQuery );
+})( window.bp, jQuery );
diff --git src/bp-core/js/confirm.js src/bp-core/js/confirm.js
index 6e223497a..1fd334612 100644
--- src/bp-core/js/confirm.js
+++ src/bp-core/js/confirm.js
@@ -1,7 +1,7 @@
 /* jshint devel: true */
 /* global BP_Confirm */
 
-jQuery( document ).ready( function() {
+jQuery( function() {
 	jQuery( '#buddypress' ).on( 'click', 'a.confirm', function() {
 		if ( confirm( BP_Confirm.are_you_sure ) ) {
 			return true;
diff --git src/bp-core/js/cover-image.js src/bp-core/js/cover-image.js
index 158ccda0d..3c9a7ee92 100644
--- src/bp-core/js/cover-image.js
+++ src/bp-core/js/cover-image.js
@@ -1,8 +1,8 @@
-/* global bp, BP_Uploader, _, Backbone */
+/* global BP_Uploader, _, Backbone */
 
 window.bp = window.bp || {};
 
-( function( exports, $ ) {
+( function( bp, $ ) {
 
 	// Bail if not set.
 	if ( typeof BP_Uploader === 'undefined' ) {
@@ -274,4 +274,4 @@ window.bp = window.bp || {};
 
 	bp.CoverImage.start();
 
-})( bp, jQuery );
+})( window.bp, jQuery );
diff --git src/bp-core/js/vendor/jquery-cookie.js src/bp-core/js/vendor/jquery-cookie.js
index 18172bf60..e752d798f 100644
--- src/bp-core/js/vendor/jquery-cookie.js
+++ src/bp-core/js/vendor/jquery-cookie.js
@@ -52,14 +52,14 @@
 
 	function read(s, converter) {
 		var value = config.raw ? s : parseCookieValue(s);
-		return $.isFunction(converter) ? converter(value) : value;
+		return typeof converter === 'function' ? converter(value) : value;
 	}
 
 	var config = $.cookie = function(key, value, options) {
 
 		// Write.
 
-		if (value !== undefined && !$.isFunction(value)) {
+		if (value !== undefined && typeof value !== 'function' ) {
 			options = $.extend({}, config.defaults, options);
 
 			if (typeof options.expires === 'number') {
@@ -117,4 +117,4 @@
 		return !$.cookie(key);
 	};
 
-}));
\ No newline at end of file
+}));
diff --git src/bp-core/js/vendor/jquery-scroll-to.js src/bp-core/js/vendor/jquery-scroll-to.js
index 8fe92b208..999d795f2 100644
--- src/bp-core/js/vendor/jquery-scroll-to.js
+++ src/bp-core/js/vendor/jquery-scroll-to.js
@@ -2,62 +2,48 @@
 /* jshint -W065 */
 
 /*!
- * jQuery.ScrollTo
- * Copyright (c) 2007-2014 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
+ * jQuery.scrollTo
+ * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
  * Licensed under MIT
- * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
- * @projectDescription Easy element scrolling using jQuery.
+ * https://github.com/flesler/jquery.scrollTo
+ * @projectDescription Lightweight, cross-browser and highly customizable animated scrolling with jQuery
  * @author Ariel Flesler
- * @version 1.4.12
+ * @version 2.1.3
  */
-
-(function(factory) {
-	// AMD.
+;(function(factory) {
+	'use strict';
 	if (typeof define === 'function' && define.amd) {
+		// AMD
 		define(['jquery'], factory);
-	// CommonJS.
-	} else if (typeof exports === 'object') {
-		factory(require('jquery'));
-	// Browser globals.
+	} else if (typeof module !== 'undefined' && module.exports) {
+		// CommonJS
+		module.exports = factory(require('jquery'));
 	} else {
+		// Global
 		factory(jQuery);
 	}
-}(function($) {
+})(function($) {
+	'use strict';
 
 	var $scrollTo = $.scrollTo = function(target, duration, settings) {
 		return $(window).scrollTo(target, duration, settings);
 	};
 
 	$scrollTo.defaults = {
-		axis: 'xy',
-		duration: parseFloat($.fn.jquery) >= 1.3 ? 0 : 1,
-		limit: true
-	};
-
-	// Returns the element that needs to be animated to scroll the window.
-	// Kept for backwards compatibility (specially for localScroll & serialScroll).
-	$scrollTo.window = function() {
-		return $(window)._scrollable();
+		axis:'xy',
+		duration: 0,
+		limit:true
 	};
 
-	// Hack, hack, hack :)
-	// Returns the real elements to scroll (supports window/iframes, documents and regular nodes).
-	$.fn._scrollable = function() {
-		return this.map(function() {
-			var elem = this,
-					isWin = !elem.nodeName || $.inArray(elem.nodeName.toLowerCase(), ['iframe', '#document', 'html', 'body']) !== -1;
-
-			if (!isWin) {
-				return elem;
-			}
-
-			var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem;
+	function isWin(elem) {
+		return !elem.nodeName ||
+			$.inArray(elem.nodeName.toLowerCase(), ['iframe','#document','html','body']) !== -1;
+	}
 
-			return /webkit/i.test(navigator.userAgent) || doc.compatMode === 'BackCompat' ?
-					doc.body :
-					doc.documentElement;
-		});
-	};
+	function isFunction(obj) {
+		// Brought from jQuery since it's deprecated
+		return typeof obj === 'function'
+	}
 
 	$.fn.scrollTo = function(target, duration, settings) {
 		if (typeof duration === 'object') {
@@ -65,41 +51,37 @@
 			duration = 0;
 		}
 		if (typeof settings === 'function') {
-			settings = {onAfter: settings};
+			settings = { onAfter:settings };
 		}
-
 		if (target === 'max') {
 			target = 9e9;
 		}
 
 		settings = $.extend({}, $scrollTo.defaults, settings);
-		// Speed is still recognized for backwards compatibility.
+		// Speed is still recognized for backwards compatibility
 		duration = duration || settings.duration;
-		// Make sure the settings are given right.
-		settings.queue = settings.queue && settings.axis.length > 1;
-
-		// Let's keep the overall duration.
-		if (settings.queue) {
+		// Make sure the settings are given right
+		var queue = settings.queue && settings.axis.length > 1;
+		if (queue) {
+			// Let's keep the overall duration
 			duration /= 2;
 		}
-
 		settings.offset = both(settings.offset);
 		settings.over = both(settings.over);
 
-		return this._scrollable().each(function() {
+		return this.each(function() {
+			// Null target yields nothing, just like jQuery does
+			if (target === null) return;
 
-			// Null target yields nothing, just like jQuery does.
-			if (target === null) {
-				return;
-			}
-
-			var elem = this,
-					$elem = $(elem),
-					targ = target, toff, attr = {},
-					win = $elem.is('html,body');
+			var win = isWin(this),
+				elem = win ? this.contentWindow || window : this,
+				$elem = $(elem),
+				targ = target,
+				attr = {},
+				toff;
 
 			switch (typeof targ) {
-				// A number will pass the regex.
+				// A number will pass the regex
 				case 'number':
 				case 'string':
 					if (/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)) {
@@ -107,102 +89,130 @@
 						// We are done
 						break;
 					}
-					// Relative/Absolute selector, no break!
-					targ = win ? $(targ) : $(targ, this);
-					if (!targ.length) {
-						return;
-					}
+					// Relative/Absolute selector
+					targ = win ? $(targ) : $(targ, elem);
 					/* falls through */
 				case 'object':
-					// DOMElement / jQuery.
+					if (targ.length === 0) return;
+					// DOMElement / jQuery
 					if (targ.is || targ.style) {
-						// Get the real position of the target.
+						// Get the real position of the target
 						toff = (targ = $(targ)).offset();
 					}
 			}
 
-			var offset = $.isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset;
+			var offset = isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset;
 
 			$.each(settings.axis.split(''), function(i, axis) {
-				var Pos = axis === 'x' ? 'Left' : 'Top',
-						pos = Pos.toLowerCase(),
-						key = 'scroll' + Pos,
-						old = elem[key],
-						max = $scrollTo.max(elem, axis);
+				var Pos	= axis === 'x' ? 'Left' : 'Top',
+					pos = Pos.toLowerCase(),
+					key = 'scroll' + Pos,
+					prev = $elem[key](),
+					max = $scrollTo.max(elem, axis);
 
-				if (toff) { // jQuery / DOMElement.
-					attr[key] = toff[pos] + (win ? 0 : old - $elem.offset()[pos]);
+				if (toff) {// jQuery / DOMElement
+					attr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()[pos]);
 
-					// If it's a dom element, reduce the margin.
+					// If it's a dom element, reduce the margin
 					if (settings.margin) {
-						attr[key] -= parseInt(targ.css('margin' + Pos)) || 0;
-						attr[key] -= parseInt(targ.css('border' + Pos + 'Width')) || 0;
+						attr[key] -= parseInt(targ.css('margin'+Pos), 10) || 0;
+						attr[key] -= parseInt(targ.css('border'+Pos+'Width'), 10) || 0;
 					}
 
 					attr[key] += offset[pos] || 0;
 
-					// Scroll to a fraction of its width/height.
 					if (settings.over[pos]) {
-						attr[key] += targ[axis === 'x' ? 'width' : 'height']() * settings.over[pos];
+						// Scroll to a fraction of its width/height
+						attr[key] += targ[axis === 'x'?'width':'height']() * settings.over[pos];
 					}
 				} else {
 					var val = targ[pos];
-					// Handle percentage values.
+					// Handle percentage values
 					attr[key] = val.slice && val.slice(-1) === '%' ?
-							parseFloat(val) / 100 * max
-							: val;
+						parseFloat(val) / 100 * max
+						: val;
 				}
 
-				// Number or 'number'.
+				// Number or 'number'
 				if (settings.limit && /^\d+$/.test(attr[key])) {
 					// Check the limits
 					attr[key] = attr[key] <= 0 ? 0 : Math.min(attr[key], max);
 				}
 
-				// Queueing axes.
-				if (!i && settings.queue) {
-					// Don't waste time animating, if there's no need.
-					if (old !== attr[key]) {
-						// Intermediate animation.
+				// Don't waste time animating, if there's no need.
+				if (!i && settings.axis.length > 1) {
+					if (prev === attr[key]) {
+						// No animation needed
+						attr = {};
+					} else if (queue) {
+						// Intermediate animation
 						animate(settings.onAfterFirst);
+						// Don't animate this axis again in the next iteration.
+						attr = {};
 					}
-					// Don't animate this axis again in the next iteration.
-					delete attr[key];
 				}
 			});
 
 			animate(settings.onAfter);
 
 			function animate(callback) {
-				$elem.animate(attr, duration, settings.easing, callback && function() {
-					callback.call(this, targ, settings);
+				var opts = $.extend({}, settings, {
+					// The queue setting conflicts with animate()
+					// Force it to always be true
+					queue: true,
+					duration: duration,
+					complete: callback && function() {
+						callback.call(elem, targ, settings);
+					}
 				});
+				$elem.animate(attr, opts);
 			}
-
-		}).end();
+		});
 	};
 
 	// Max scrolling position, works on quirks mode
 	// It only fails (not too badly) on IE, quirks mode.
 	$scrollTo.max = function(elem, axis) {
 		var Dim = axis === 'x' ? 'Width' : 'Height',
-				scroll = 'scroll' + Dim;
+			scroll = 'scroll'+Dim;
 
-		if (!$(elem).is('html,body')) {
+		if (!isWin(elem))
 			return elem[scroll] - $(elem)[Dim.toLowerCase()]();
-		}
 
 		var size = 'client' + Dim,
-				html = elem.ownerDocument.documentElement,
-				body = elem.ownerDocument.body;
+			doc = elem.ownerDocument || elem.document,
+			html = doc.documentElement,
+			body = doc.body;
 
 		return Math.max(html[scroll], body[scroll]) - Math.min(html[size], body[size]);
 	};
 
 	function both(val) {
-		return $.isFunction(val) || typeof val === 'object' ? val : {top: val, left: val};
+		return isFunction(val) || $.isPlainObject(val) ? val : { top:val, left:val };
 	}
 
-	// AMD requirement.
+	// Add special hooks so that window scroll properties can be animated
+	$.Tween.propHooks.scrollLeft =
+	$.Tween.propHooks.scrollTop = {
+		get: function(t) {
+			return $(t.elem)[t.prop]();
+		},
+		set: function(t) {
+			var curr = this.get(t);
+			// If interrupt is true and user scrolled, stop animating
+			if (t.options.interrupt && t._last && t._last !== curr) {
+				return $(t.elem).stop();
+			}
+			var next = Math.round(t.now);
+			// Don't waste CPU
+			// Browsers don't render floating point scroll
+			if (curr !== next) {
+				$(t.elem)[t.prop](next);
+				t._last = this.get(t);
+			}
+		}
+	};
+
+	// AMD requirement
 	return $scrollTo;
-}));
\ No newline at end of file
+});
diff --git src/bp-core/js/webcam.js src/bp-core/js/webcam.js
index 46e768af5..1280787ca 100644
--- src/bp-core/js/webcam.js
+++ src/bp-core/js/webcam.js
@@ -1,8 +1,8 @@
-/* global bp, BP_Uploader, _, Backbone */
+/* global BP_Uploader, _, Backbone */
 
 window.bp = window.bp || {};
 
-( function() {
+( function( bp ) {
 
 	// Bail if not set.
 	if ( typeof BP_Uploader === 'undefined' ) {
@@ -317,4 +317,4 @@ window.bp = window.bp || {};
 
 	bp.WebCam.start();
 
-})( bp, jQuery );
+})( window.bp );
diff --git src/bp-core/js/widget-members.js src/bp-core/js/widget-members.js
index a46273e11..1918fcfd8 100644
--- src/bp-core/js/widget-members.js
+++ src/bp-core/js/widget-members.js
@@ -1,4 +1,4 @@
-jQuery(document).ready( function() {
+jQuery( function() {
 	member_widget_click_handler();
 
 	// WP 4.5 - Customizer selective refresh support.
diff --git src/bp-templates/bp-legacy/js/buddypress.js src/bp-templates/bp-legacy/js/buddypress.js
index 268b727a2..791f337a6 100644
--- src/bp-templates/bp-legacy/js/buddypress.js
+++ src/bp-templates/bp-legacy/js/buddypress.js
@@ -1,5 +1,6 @@
 /* jshint undef: false, unused:false */
-/* @version 3.0.0 */
+/* @version 1.7.0 */
+/* @version 8.0.0 */
 // AJAX Functions
 var jq = jQuery;
 
@@ -12,7 +13,7 @@ var activity_last_recorded  = 0;
 
 var directoryPreferences = {};
 
-jq(document).ready( function() {
+jq( function() {
 	var activity_oldestpage = 1;
 
 	/**** Page Load Actions *******************************************************/
@@ -41,7 +42,7 @@ jq(document).ready( function() {
 			easing:'swing'
 		} );
 
-		$whats_new.val('').focus().val( $member_nicename );
+		$whats_new.val('').trigger( 'focus' ).val( $member_nicename );
 	} else {
 		jq('#whats-new-options').hide();
 	}
@@ -133,9 +134,9 @@ jq(document).ready( function() {
 			}
 		} );
 
-		form.find( '*' ).each( function() {
-			if ( jq.nodeName( this, 'textarea' ) || jq.nodeName( this, 'input' ) ) {
-				jq(this).prop( 'disabled', true );
+		form.find( '*' ).each( function( i, elem ) {
+			if ( elem.nodeName.toLowerCase() === 'textarea' || elem.nodeName.toLowerCase() ==='input' ) {
+				jq( elem ).prop( 'disabled', true );
 			}
 		} );
 
@@ -184,11 +185,11 @@ jq(document).ready( function() {
 		}, inputs );
 
 		jq.post( ajaxurl, post_data, function( response ) {
-			form.find( '*' ).each( function() {
-				if ( jq.nodeName( this, 'textarea' ) || jq.nodeName( this, 'input' ) ) {
-					jq(this).prop( 'disabled', false );
+			form.find( '*' ).each( function( i, elem ) {
+				if ( elem.nodeName.toLowerCase() === 'textarea' || elem.nodeName.toLowerCase() ==='input' ) {
+					jq( elem ).prop( 'disabled', false );
 				}
-			});
+			} );
 
 			/* Check for errors and append if found. */
 			if ( response[0] + response[1] === '-1' ) {
@@ -582,7 +583,7 @@ jq(document).ready( function() {
 				offset:-100,
 				easing:'swing'
 			} );
-			jq('#ac-form-' + ids[2] + ' textarea').focus();
+			jq('#ac-form-' + ids[2] + ' textarea').trigger( 'focus' );
 
 			return false;
 		}
@@ -1124,7 +1125,7 @@ jq(document).ready( function() {
 			'friend_id': friend_id,
 			'group_id': jq('#group_id').val()
 		},
-		function(response)
+		function()
 		{
 			if ( invites_new_template ) {
 				// With new-style templates, we refresh the
@@ -1382,7 +1383,7 @@ jq(document).ready( function() {
 		}
 
 		// toggle "Blog Details" block whenever checkbox is checked
-		blog_checked.change(function() {
+		blog_checked.on( 'change', function() {
 			jq('#blog-details').toggle();
 		});
 	}
diff --git src/bp-templates/bp-legacy/js/password-verify.js src/bp-templates/bp-legacy/js/password-verify.js
index 14e530c22..58d73c7bd 100644
--- src/bp-templates/bp-legacy/js/password-verify.js
+++ src/bp-templates/bp-legacy/js/password-verify.js
@@ -1,5 +1,6 @@
 /* jshint undef: false */
-/* @version 3.0.0 */
+/* @since 1.7.0 */
+/* @version 8.0.0 */
 /* Password Verify */
 ( function( $ ){
 	function check_pass_strength() {
@@ -41,9 +42,9 @@
 	}
 
 	// Bind check_pass_strength to keyup events in the password fields
-	$( document ).ready( function() {
-		$( '.password-entry' ).val( '' ).keyup( check_pass_strength );
-		$( '.password-entry-confirm' ).val( '' ).keyup( check_pass_strength );
+	$( function() {
+		$( '.password-entry' ).val( '' ).on( 'keyup', check_pass_strength );
+		$( '.password-entry-confirm' ).val( '' ).on( 'keyup', check_pass_strength );
 	});
 
 } )( jQuery );
diff --git src/bp-templates/bp-nouveau/js/buddypress-activity-post-form.js src/bp-templates/bp-nouveau/js/buddypress-activity-post-form.js
index 4465aeca1..27f242e23 100644
--- src/bp-templates/bp-nouveau/js/buddypress-activity-post-form.js
+++ src/bp-templates/bp-nouveau/js/buddypress-activity-post-form.js
@@ -1,10 +1,10 @@
-/* global bp, BP_Nouveau, _, Backbone */
+/* global BP_Nouveau, _, Backbone */
 /* @since 3.0.0 */
-/* @version 5.0.0 */
+/* @version 8.0.0 */
 window.wp = window.wp || {};
 window.bp = window.bp || {};
 
-( function( exports, $ ) {
+( function( bp, $ ) {
 	bp.Nouveau = bp.Nouveau || {};
 
 	// Bail if not set
@@ -785,4 +785,4 @@ window.bp = window.bp || {};
 
 	bp.Nouveau.Activity.postForm.start();
 
-} )( bp, jQuery );
+} )( window.bp, jQuery );
diff --git src/bp-templates/bp-nouveau/js/buddypress-activity.js src/bp-templates/bp-nouveau/js/buddypress-activity.js
index 1e6ded9cc..0eab0891a 100644
--- src/bp-templates/bp-nouveau/js/buddypress-activity.js
+++ src/bp-templates/bp-nouveau/js/buddypress-activity.js
@@ -1,10 +1,10 @@
 /* jshint browser: true */
-/* global bp, BP_Nouveau */
+/* global BP_Nouveau */
 /* @since 3.0.0 */
-/* @version 7.0.0 */
+/* @version 8.0.0 */
 window.bp = window.bp || {};
 
-( function( exports, $ ) {
+( function( bp, $ ) {
 
 	// Bail if not set
 	if ( typeof BP_Nouveau === 'undefined' ) {
@@ -74,7 +74,7 @@ window.bp = window.bp || {};
 
 			// Activity actions
 			$( '#buddypress [data-bp-list="activity"]' ).on( 'click', '.activity-item', bp.Nouveau, this.activityActions );
-			$( document ).keydown( this.commentFormAction );
+			$( document ).on( 'keydown', this.commentFormAction );
 		},
 
 		/**
@@ -700,7 +700,7 @@ window.bp = window.bp || {};
 					easing:'swing'
 				} );
 
-				$( '#ac-form-' + activity_id + ' textarea' ).focus();
+				$( '#ac-form-' + activity_id + ' textarea' ).trigger( 'focus' );
 			}
 
 			// Removing the form
@@ -824,7 +824,7 @@ window.bp = window.bp || {};
 				return event;
 			}
 
-			keyCode = ( event.keyCode) ? event.keyCode : event.which;
+			keyCode = ( event.keyCode ) ? event.keyCode : event.which;
 
 			if ( 27 === keyCode && false === event.ctrlKey  ) {
 				if ( element.tagName === 'TEXTAREA' ) {
@@ -839,4 +839,4 @@ window.bp = window.bp || {};
 	// Launch BP Nouveau Activity
 	bp.Nouveau.Activity.start();
 
-} )( bp, jQuery );
+} )( window.bp, jQuery );
diff --git src/bp-templates/bp-nouveau/js/buddypress-group-invites.js src/bp-templates/bp-nouveau/js/buddypress-group-invites.js
index 595f5ee8e..d06896860 100644
--- src/bp-templates/bp-nouveau/js/buddypress-group-invites.js
+++ src/bp-templates/bp-nouveau/js/buddypress-group-invites.js
@@ -1,9 +1,10 @@
-/* global wp, bp, BP_Nouveau, _, Backbone */
-/* @version 4.0.0 */
+/* global wp, BP_Nouveau, _, Backbone */
+/* @since 3.0.0 */
+/* @version 8.0.0 */
 window.wp = window.wp || {};
 window.bp = window.bp || {};
 
-( function( exports, $ ) {
+( function( bp, $ ) {
 
 	// Bail if not set
 	if ( typeof BP_Nouveau === 'undefined' ) {
@@ -844,4 +845,4 @@ window.bp = window.bp || {};
 	// Launch BP Nouveau Groups
 	bp.Nouveau.GroupInvites.start();
 
-} )( bp, jQuery );
+} )( window.bp, jQuery );
diff --git src/bp-templates/bp-nouveau/js/buddypress-messages.js src/bp-templates/bp-nouveau/js/buddypress-messages.js
index 44732ceaa..365070564 100644
--- src/bp-templates/bp-nouveau/js/buddypress-messages.js
+++ src/bp-templates/bp-nouveau/js/buddypress-messages.js
@@ -1,10 +1,10 @@
-/* global wp, bp, BP_Nouveau, _, Backbone, tinymce, tinyMCE */
+/* global wp, BP_Nouveau, _, Backbone, tinymce, tinyMCE */
 /* jshint devel: true */
 /* @version 3.1.0 */
 window.wp = window.wp || {};
 window.bp = window.bp || {};
 
-( function( exports, $ ) {
+( function( bp, $ ) {
 
 	// Bail if not set.
 	if ( typeof BP_Nouveau === 'undefined' ) {
@@ -106,7 +106,7 @@ window.bp = window.bp || {};
 				return;
 			} else {
 				// Mentions isn't available, so bail.
-				if ( _.isEmpty( exports.mentions ) ) {
+				if ( _.isEmpty( bp.mentions ) ) {
 					return;
 				}
 
@@ -1429,4 +1429,4 @@ window.bp = window.bp || {};
 	// Launch BP Nouveau Groups.
 	bp.Nouveau.Messages.start();
 
-} )( bp, jQuery );
+} )( window.bp, jQuery );
diff --git src/bp-templates/bp-nouveau/js/buddypress-notifications.js src/bp-templates/bp-nouveau/js/buddypress-notifications.js
index 93395cce4..52452e205 100644
--- src/bp-templates/bp-nouveau/js/buddypress-notifications.js
+++ src/bp-templates/bp-nouveau/js/buddypress-notifications.js
@@ -1,8 +1,9 @@
-/* global bp, BP_Nouveau */
-/* @version 3.0.0 */
+/* global BP_Nouveau */
+/* @since 3.0.0 */
+/* @version 8.0.0 */
 window.bp = window.bp || {};
 
-( function( exports, $ ) {
+( function( bp, $ ) {
 
 	// Bail if not set.
 	if ( typeof BP_Nouveau === 'undefined' ) {
@@ -137,4 +138,4 @@ window.bp = window.bp || {};
 	// Launch BP Nouveau Notifications.
 	bp.Nouveau.Notifications.start();
 
-} )( bp, jQuery );
+} )( window.bp, jQuery );
diff --git src/bp-templates/bp-nouveau/js/buddypress-nouveau.js src/bp-templates/bp-nouveau/js/buddypress-nouveau.js
index 66f45baca..37e74ff66 100644
--- src/bp-templates/bp-nouveau/js/buddypress-nouveau.js
+++ src/bp-templates/bp-nouveau/js/buddypress-nouveau.js
@@ -1,12 +1,12 @@
-/* global wp, bp, BP_Nouveau, JSON */
+/* global wp, BP_Nouveau, JSON */
 /* jshint devel: true */
 /* jshint browser: true */
 /* @since 3.0.0 */
-/* @version 7.0.0 */
+/* @version 8.0.0 */
 window.wp = window.wp || {};
 window.bp = window.bp || {};
 
-( function( exports, $ ) {
+( function( bp, $ ) {
 
 	// Bail if not set.
 	if ( typeof BP_Nouveau === 'undefined' ) {
@@ -824,4 +824,4 @@ window.bp = window.bp || {};
 	// Launch BP Nouveau.
 	bp.Nouveau.start();
 
-} )( bp, jQuery );
+} )( window.bp, jQuery );
diff --git src/bp-templates/bp-nouveau/js/buddypress-xprofile.js src/bp-templates/bp-nouveau/js/buddypress-xprofile.js
index 829e427d8..de8782613 100644
--- src/bp-templates/bp-nouveau/js/buddypress-xprofile.js
+++ src/bp-templates/bp-nouveau/js/buddypress-xprofile.js
@@ -1,8 +1,8 @@
-/* global bp, BP_Nouveau */
-/* @version 3.0.0 */
-window.bp = window.bp || {};
+/* global BP_Nouveau */
+/* @since 3.0.0 */
+/* @version 8.0.0 */
 
-( function( exports, $ ) {
+( function( $ ) {
 
 	// Bail if not set.
 	if ( typeof BP_Nouveau === 'undefined' ) {
@@ -45,7 +45,7 @@ window.bp = window.bp || {};
 				$( '.visibility-toggle-link').attr( 'aria-expanded', 'false' );
 	} );
 
-	$( '#profile-edit-form input:not(:submit), #profile-edit-form textarea, #profile-edit-form select, #signup_form input:not(:submit), #signup_form textarea, #signup_form select' ).change( function() {
+	$( '#profile-edit-form input:not(:submit), #profile-edit-form textarea, #profile-edit-form select, #signup_form input:not(:submit), #signup_form textarea, #signup_form select' ).on( 'change', function() {
 		var shouldconfirm = true;
 
 		$( '#profile-edit-form input:submit, #signup_form input:submit' ).on( 'click', function() {
@@ -76,4 +76,4 @@ window.bp = window.bp || {};
 			} );
 		}
 	};
-} )( bp, jQuery );
+} )( jQuery );
diff --git src/bp-templates/bp-nouveau/js/customizer.js src/bp-templates/bp-nouveau/js/customizer.js
index 073e5b2ed..caddc3f52 100644
--- src/bp-templates/bp-nouveau/js/customizer.js
+++ src/bp-templates/bp-nouveau/js/customizer.js
@@ -1,4 +1,5 @@
 /* global _ */
+/* @since 3.0.0 */
 /* @version 3.0.0 */
 window.wp = window.wp || {};
 
diff --git src/bp-templates/bp-nouveau/js/password-verify.js src/bp-templates/bp-nouveau/js/password-verify.js
index db822f16c..03c0e3c69 100644
--- src/bp-templates/bp-nouveau/js/password-verify.js
+++ src/bp-templates/bp-nouveau/js/password-verify.js
@@ -2,7 +2,7 @@
 /* Password Verify */
 /* global pwsL10n */
 /* @since 3.0.0 */
-/* @version 5.0.0 */
+/* @version 8.0.0 */
 ( function( $ ){
 	/**
 	 * Function to inform the user about the strength of its password.
@@ -48,7 +48,7 @@
 	}
 
 	// Bind check_pass_strength to keyup events in the password fields.
-	$( document ).ready( function() {
+	$( function() {
 		$( '.password-entry' ).val( '' ).keyup( check_pass_strength );
 		$( '.password-entry-confirm' ).val( '' ).keyup( check_pass_strength );
 
