You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					29 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					29 lines
				
				1.1 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								var requireObjectCoercible = require('../internals/require-object-coercible');
							 | 
						||
| 
								 | 
							
								var whitespaces = require('../internals/whitespaces');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var whitespace = '[' + whitespaces + ']';
							 | 
						||
| 
								 | 
							
								var ltrim = RegExp('^' + whitespace + whitespace + '*');
							 | 
						||
| 
								 | 
							
								var rtrim = RegExp(whitespace + whitespace + '*$');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
							 | 
						||
| 
								 | 
							
								var createMethod = function (TYPE) {
							 | 
						||
| 
								 | 
							
								  return function ($this) {
							 | 
						||
| 
								 | 
							
								    var string = String(requireObjectCoercible($this));
							 | 
						||
| 
								 | 
							
								    if (TYPE & 1) string = string.replace(ltrim, '');
							 | 
						||
| 
								 | 
							
								    if (TYPE & 2) string = string.replace(rtrim, '');
							 | 
						||
| 
								 | 
							
								    return string;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = {
							 | 
						||
| 
								 | 
							
								  // `String.prototype.{ trimLeft, trimStart }` methods
							 | 
						||
| 
								 | 
							
								  // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart
							 | 
						||
| 
								 | 
							
								  start: createMethod(1),
							 | 
						||
| 
								 | 
							
								  // `String.prototype.{ trimRight, trimEnd }` methods
							 | 
						||
| 
								 | 
							
								  // https://tc39.github.io/ecma262/#sec-string.prototype.trimend
							 | 
						||
| 
								 | 
							
								  end: createMethod(2),
							 | 
						||
| 
								 | 
							
								  // `String.prototype.trim` method
							 | 
						||
| 
								 | 
							
								  // https://tc39.github.io/ecma262/#sec-string.prototype.trim
							 | 
						||
| 
								 | 
							
								  trim: createMethod(3)
							 | 
						||
| 
								 | 
							
								};
							 |