mirror of
				https://github.com/musix-org/musix-oss
				synced 2025-11-04 06:49:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			952 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			952 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'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;
 | 
						|
	*/
 | 
						|
};
 |