changeset 27:8165b83907af

remove bind()
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 10 Aug 2022 23:48:47 -0600
parents 160be99e1517
children f227fdfebded
files src/formats/bbcode.js src/formats/xhtml.js src/sceditor.js
diffstat 3 files changed, 84 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/src/formats/bbcode.js	Tue Aug 09 23:30:24 2022 -0600
+++ b/src/formats/bbcode.js	Wed Aug 10 23:48:47 2022 -0600
@@ -2522,14 +2522,16 @@
 		 * @param {string} source
 		 * @param {boolean} [legacyAsFragment] Used by fromBBCode() method
 		 */
-		function toHtml(asFragment, source, legacyAsFragment) {
-			var	parser = newBBCodeParser(base.opts.parserOptions);
-			var html = parser.toHTML(
-				base.opts.bbcodeTrim ? source.trim() : source
-			);
+		function toHtml(asFragment) {
+			return function(source, legacyAsFragment) {
+				var	parser = newBBCodeParser(base.opts.parserOptions);
+				var html = parser.toHTML(
+					base.opts.bbcodeTrim ? source.trim() : source
+				);
 
-			return (asFragment || legacyAsFragment) ?
-				removeFirstLastDiv(html) : html;
+				return (asFragment || legacyAsFragment) ?
+					removeFirstLastDiv(html) : html;
+			};
 		}
 
 		/**
@@ -2542,59 +2544,61 @@
 		 * @return {string}
 		 * @private
 		 */
-		function toSource(asFragment, html, context, parent) {
-			context = context || document;
+		function toSource(asFragment) {
+			return function(html, context, parent) {
+				context = context || document;
 
-			var	bbcode, elements;
-			var containerParent = context.createElement('div');
-			var container = context.createElement('div');
-			var parser = newBBCodeParser(base.opts.parserOptions);
+				var	bbcode, elements;
+				var containerParent = context.createElement('div');
+				var container = context.createElement('div');
+				var parser = newBBCodeParser(base.opts.parserOptions);
 
-			container.innerHTML = html;
-			css(containerParent, 'visibility', 'hidden');
-			containerParent.appendChild(container);
-			context.body.appendChild(containerParent);
+				container.innerHTML = html;
+				css(containerParent, 'visibility', 'hidden');
+				containerParent.appendChild(container);
+				context.body.appendChild(containerParent);
 
-			if (asFragment) {
-				// Add text before and after so removeWhiteSpace doesn't remove
-				// leading and trailing whitespace
-				containerParent.insertBefore(
-					context.createTextNode('#'),
-					containerParent.firstChild
-				);
-				containerParent.appendChild(context.createTextNode('#'));
-			}
+				if (asFragment) {
+					// Add text before and after so removeWhiteSpace doesn't remove
+					// leading and trailing whitespace
+					containerParent.insertBefore(
+						context.createTextNode('#'),
+						containerParent.firstChild
+					);
+					containerParent.appendChild(context.createTextNode('#'));
+				}
 
-			// Match parents white-space handling
-			if (parent) {
-				css(container, 'whiteSpace', css(parent, 'whiteSpace'));
-			}
+				// Match parents white-space handling
+				if (parent) {
+					css(container, 'whiteSpace', css(parent, 'whiteSpace'));
+				}
 
-			// Remove all nodes with sceditor-ignore class
-			elements = container.getElementsByClassName('sceditor-ignore');
-			while (elements.length) {
-				elements[0].parentNode.removeChild(elements[0]);
-			}
+				// Remove all nodes with sceditor-ignore class
+				elements = container.getElementsByClassName('sceditor-ignore');
+				while (elements.length) {
+					elements[0].parentNode.removeChild(elements[0]);
+				}
 
-			dom.removeWhiteSpace(containerParent);
+				dom.removeWhiteSpace(containerParent);
 
-			bbcode = elementToBbcode(container);
+				bbcode = elementToBbcode(container);
 
-			context.body.removeChild(containerParent);
+				context.body.removeChild(containerParent);
 
-			bbcode = parser.toBBCode(bbcode, true);
+				bbcode = parser.toBBCode(bbcode, true);
 
-			if (base.opts.bbcodeTrim) {
-				bbcode = bbcode.trim();
-			}
+				if (base.opts.bbcodeTrim) {
+					bbcode = bbcode.trim();
+				}
 
-			return bbcode;
-		};
+				return bbcode;
+			};
+		}
 
-		base.toHtml = toHtml.bind(null, false);
-		base.fragmentToHtml = toHtml.bind(null, true);
-		base.toSource = toSource.bind(null, false);
-		base.fragmentToSource = toSource.bind(null, true);
+		base.toHtml = toHtml(false);
+		base.fragmentToHtml = toHtml(true);
+		base.toSource = toSource(false);
+		base.fragmentToSource = toSource(true);
 
 		return base;
 	};
--- a/src/formats/xhtml.js	Tue Aug 09 23:30:24 2022 -0600
+++ b/src/formats/xhtml.js	Wed Aug 10 23:48:47 2022 -0600
@@ -536,32 +536,34 @@
 		 * @return {string}
 		 * @memberOf jQuery.sceditor.plugins.xhtml.prototype
 		 */
-		function toSource(isFragment, html, context) {
-			var xhtml,
-				container = context.createElement('div');
-			container.innerHTML = html;
+		function toSource(isFragment) {
+			return function(html, context) {
+				var xhtml,
+					container = context.createElement('div');
+				container.innerHTML = html;
 
-			css(container, 'visibility', 'hidden');
-			context.body.appendChild(container);
+				css(container, 'visibility', 'hidden');
+				context.body.appendChild(container);
 
-			convertTags(container);
-			removeTags(container);
-			removeAttribs(container);
+				convertTags(container);
+				removeTags(container);
+				removeAttribs(container);
 
-			if (!isFragment) {
-				wrapInlines(container);
-			}
+				if (!isFragment) {
+					wrapInlines(container);
+				}
 
-			xhtml = (new sceditor.XHTMLSerializer()).serialize(container, true);
+				xhtml = (new sceditor.XHTMLSerializer()).serialize(container, true);
+
+				context.body.removeChild(container);
 
-			context.body.removeChild(container);
+				return xhtml;
+			};
+		}
 
-			return xhtml;
-		};
+		base.toSource = toSource(false);
 
-		base.toSource = toSource.bind(null, false);
-
-		base.fragmentToSource = toSource.bind(null, true);;
+		base.fragmentToSource = toSource(true);;
 
 		/**
 		 * Runs all converters for the specified tagName
@@ -588,10 +590,10 @@
 							return;
 						}
 
-						converter.conv.call(base, node);
+						converter.conv(node);
 					});
 				} else if (converter.conv) {
-					converter.conv.call(base, node);
+					converter.conv(node);
 				}
 			});
 		};
--- a/src/sceditor.js	Tue Aug 09 23:30:24 2022 -0600
+++ b/src/sceditor.js	Wed Aug 10 23:48:47 2022 -0600
@@ -11,29 +11,31 @@
 	 * @param {*} arg
 	 * @returns {boolean}
 	 */
-	function isTypeof(type, arg) {
-		return typeof arg === type;
+	function isTypeof(type) {
+		return function(arg) {
+			return typeof arg === type;
+		};
 	}
 
 	/**
 	 * @type {function(*): boolean}
 	 */
-	var isString = isTypeof.bind(null, 'string');
+	var isString = isTypeof('string');
 
 	/**
 	 * @type {function(*): boolean}
 	 */
-	var isUndefined = isTypeof.bind(null, 'undefined');
+	var isUndefined = isTypeof('undefined');
 
 	/**
 	 * @type {function(*): boolean}
 	 */
-	var isFunction = isTypeof.bind(null, 'function');
+	var isFunction = isTypeof('function');
 
 	/**
 	 * @type {function(*): boolean}
 	 */
-	var isNumber = isTypeof.bind(null, 'number');
+	var isNumber = isTypeof('number');
 
 
 	/**
@@ -2464,7 +2466,7 @@
 				}
 
 				onEvent(content, 'click', '.button', insertUrl);
-				onEvent(content, 'keypress', function (target, e) {
+				onEvent(content, 'keypress', function (e) {
 					// 13 = enter key
 					if (e.which === 13 && linkInput.value) {
 						insertUrl(e);