diff options
Diffstat (limited to 'src/node_modules/es-abstract/2019/TrimString.js')
-rw-r--r-- | src/node_modules/es-abstract/2019/TrimString.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/node_modules/es-abstract/2019/TrimString.js b/src/node_modules/es-abstract/2019/TrimString.js new file mode 100644 index 0000000..b27112c --- /dev/null +++ b/src/node_modules/es-abstract/2019/TrimString.js @@ -0,0 +1,29 @@ +'use strict'; + +var trimStart = require('string.prototype.trimstart'); +var trimEnd = require('string.prototype.trimend'); + +var GetIntrinsic = require('../GetIntrinsic'); + +var $TypeError = GetIntrinsic('%TypeError%'); + +var RequireObjectCoercible = require('./RequireObjectCoercible'); +var ToString = require('./ToString'); + +// https://ecma-international.org/ecma-262/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; +}; |