1var $export = require('./_export'); 2var defined = require('./_defined'); 3var fails = require('./_fails'); 4var spaces = require('./_string-ws'); 5var space = '[' + spaces + ']'; 6var non = '\u200b\u0085'; 7var ltrim = RegExp('^' + space + space + '*'); 8var rtrim = RegExp(space + space + '*$'); 9 10var exporter = function (KEY, exec, ALIAS) { 11 var exp = {}; 12 var FORCE = fails(function () { 13 return !!spaces[KEY]() || non[KEY]() != non; 14 }); 15 var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; 16 if (ALIAS) exp[ALIAS] = fn; 17 $export($export.P + $export.F * FORCE, 'String', exp); 18}; 19 20// 1 -> String#trimLeft 21// 2 -> String#trimRight 22// 3 -> String#trim 23var trim = exporter.trim = function (string, TYPE) { 24 string = String(defined(string)); 25 if (TYPE & 1) string = string.replace(ltrim, ''); 26 if (TYPE & 2) string = string.replace(rtrim, ''); 27 return string; 28}; 29 30module.exports = exporter; 31