| '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; | 
| }; |