|                                                                             |  | 'use strict';const singleComment = Symbol('singleComment');const multiComment = Symbol('multiComment');const stripWithoutWhitespace = () => '';const stripWithWhitespace = (string, start, end) => string.slice(start, end).replace(/\S/g, ' ');
const isEscaped = (jsonString, quotePosition) => {	let index = quotePosition - 1;	let backslashCount = 0;
	while (jsonString[index] === '\\') {		index -= 1;		backslashCount += 1;	}
	return Boolean(backslashCount % 2);};
module.exports = (jsonString, options = {}) => {	if (typeof jsonString !== 'string') {		throw new TypeError(`Expected argument \`jsonString\` to be a \`string\`, got \`${typeof jsonString}\``);	}
	const strip = options.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace;
	let insideString = false;	let insideComment = false;	let offset = 0;	let result = '';
	for (let i = 0; i < jsonString.length; i++) {		const currentCharacter = jsonString[i];		const nextCharacter = jsonString[i + 1];
		if (!insideComment && currentCharacter === '"') {			const escaped = isEscaped(jsonString, i);			if (!escaped) {				insideString = !insideString;			}		}
		if (insideString) {			continue;		}
		if (!insideComment && currentCharacter + nextCharacter === '//') {			result += jsonString.slice(offset, i);			offset = i;			insideComment = singleComment;			i++;		} else if (insideComment === singleComment && currentCharacter + nextCharacter === '\r\n') {			i++;			insideComment = false;			result += strip(jsonString, offset, i);			offset = i;			continue;		} else if (insideComment === singleComment && currentCharacter === '\n') {			insideComment = false;			result += strip(jsonString, offset, i);			offset = i;		} else if (!insideComment && currentCharacter + nextCharacter === '/*') {			result += jsonString.slice(offset, i);			offset = i;			insideComment = multiComment;			i++;			continue;		} else if (insideComment === multiComment && currentCharacter + nextCharacter === '*/') {			i++;			insideComment = false;			result += strip(jsonString, offset, i + 1);			offset = i + 1;			continue;		}	}
	return result + (insideComment ? strip(jsonString.slice(offset)) : jsonString.slice(offset));};
 |