Show More
Commit Description:
submission report
Commit Description:
submission report
References:
File last commit:
Show/Diff file:
Action:
node_modules/es-abstract/2019/TrimString.js
| 29 lines
| 812 B
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var trimStart = require('string.prototype.trimleft'); | ||||
var trimEnd = require('string.prototype.trimright'); | ||||
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; | ||||
}; | ||||