Show More
Commit Description:
submission report
Commit Description:
submission report
References:
File last commit:
Show/Diff file:
Action:
node_modules/es-abstract/2018/IsStringPrefix.js
| 47 lines
| 952 B
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var GetIntrinsic = require('../GetIntrinsic'); | ||||
var $TypeError = GetIntrinsic('%TypeError%'); | ||||
var isPrefixOf = require('../helpers/isPrefixOf'); | ||||
// var callBound = require('../helpers/callBound'); | ||||
// var $charAt = callBound('String.prototype.charAt'); | ||||
var Type = require('./Type'); | ||||
// https://www.ecma-international.org/ecma-262/9.0/#sec-isstringprefix | ||||
module.exports = function IsStringPrefix(p, q) { | ||||
if (Type(p) !== 'String') { | ||||
throw new $TypeError('Assertion failed: "p" must be a String'); | ||||
} | ||||
if (Type(q) !== 'String') { | ||||
throw new $TypeError('Assertion failed: "q" must be a String'); | ||||
} | ||||
return isPrefixOf(p, q); | ||||
/* | ||||
if (p === q || p === '') { | ||||
return true; | ||||
} | ||||
var pLength = p.length; | ||||
var qLength = q.length; | ||||
if (pLength >= qLength) { | ||||
return false; | ||||
} | ||||
// assert: pLength < qLength | ||||
for (var i = 0; i < pLength; i += 1) { | ||||
if ($charAt(p, i) !== $charAt(q, i)) { | ||||
return false; | ||||
} | ||||
} | ||||
return true; | ||||
*/ | ||||
}; | ||||