'use strict'; var GetIntrinsic = require('get-intrinsic'); var callBound = require('call-bind/callBound'); var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); var $TypeError = GetIntrinsic('%TypeError%'); var $charCodeAt = callBound('%String.prototype.charCodeAt%'); var $push = callBound('%Array.prototype.push%'); module.exports = function CharacterRange(A, B) { if (A.length !== 1 || B.length !== 1) { throw new $TypeError('Assertion failed: CharSets A and B contain exactly one character'); } var a = A[0]; var b = B[0]; var i = $charCodeAt(a, 0); var j = $charCodeAt(b, 0); if (!(i <= j)) { throw new $TypeError('Assertion failed: i is not <= j'); } var arr = []; for (var k = i; k <= j; k += 1) { $push(arr, $fromCharCode(k)); } return arr; };