1234567891011121314151617181920212223242526272829 |
- 'use strict';
- var trimStart = require('string.prototype.trimstart');
- var trimEnd = require('string.prototype.trimend');
- var GetIntrinsic = require('get-intrinsic');
- var $TypeError = GetIntrinsic('%TypeError%');
- var RequireObjectCoercible = require('./RequireObjectCoercible');
- var ToString = require('./ToString');
- // https://262.ecma-international.org/10.0/#sec-trimstring
- module.exports = function TrimString(string, where) {
- var str = RequireObjectCoercible(string);
- var S = ToString(str);
- var T;
- if (where === 'start') {
- T = trimStart(S);
- } else if (where === 'end') {
- T = trimEnd(S);
- } else if (where === 'start+end') {
- T = trimStart(trimEnd(S));
- } else {
- throw new $TypeError('Assertion failed: invalid `where` value; must be "start", "end", or "start+end"');
- }
- return T;
- };
|