7cbc99b68d509bee90c8b4dd8ad1a472acc4adc625d4ef84a80b693f7e130ff6f816797c8bc088ffa00b4457b7fa48bdb673b7c9e0d8a961f3e93812362933 899 B

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