'use strict'; var $TypeError = require('es-errors/type'); var isPrefixOf = require('../helpers/isPrefixOf'); // var callBound = require('call-bind/callBound'); // var $charAt = callBound('String.prototype.charAt'); // https://262.ecma-international.org/9.0/#sec-isstringprefix module.exports = function IsStringPrefix(p, q) { if (typeof p !== 'string') { throw new $TypeError('Assertion failed: "p" must be a String'); } if (typeof 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; */ };