executeOnText(text, filename, warnIgnored) {
		const {
			configArrayFactory,
			fileEnumerator,
			lastConfigArrays,
			linter,
			options: {
				allowInlineConfig,
				cwd,
				fix,
				reportUnusedDisableDirectives,
			},
		} = internalSlotsMap.get(this);
		const results = [];
		const startTime = Date.now();
		const resolvedFilename = filename && path.resolve(cwd, filename);

		// Clear the last used config arrays.
		lastConfigArrays.length = 0;
		if (resolvedFilename && this.isPathIgnored(resolvedFilename)) {
			if (warnIgnored) {
				results.push(createIgnoreResult(resolvedFilename, cwd));
			}
		} else {
			const config = configArrayFactory.getConfigArrayForFile(
				resolvedFilename || "__placeholder__.js",
			);

			/*
			 * Store used configs for:
			 * - this method uses to collect used deprecated rules.
			 * - `getRules()` method uses to collect all loaded rules.
			 * - `--fix-type` option uses to get the loaded rule's meta data.
			 */
			lastConfigArrays.push(config);

			// Do lint.
			results.push(
				verifyText({
					text,
					filePath: resolvedFilename,
					config,
					cwd,
					fix,
					allowInlineConfig,
					reportUnusedDisableDirectives,
					fileEnumerator,
					linter,
				}),
			);
		}

		debug(`Linting complete in: ${Date.now() - startTime}ms`);
		let usedDeprecatedRules;

		return {
			results,
			...calculateStatsPerRun(results),

			// Initialize it lazily because CLI and `ESLint` API don't use it.
			get usedDeprecatedRules() {
				if (!usedDeprecatedRules) {
					usedDeprecatedRules = Array.from(
						iterateRuleDeprecationWarnings(lastConfigArrays),
					);
				}
				return usedDeprecatedRules;
			},
		};
	}
Executes the current configuration on text.
@param {string} text A string of JavaScript code to lint.
@param {string} [filename] An optional string representing the texts filename.
@param {boolean} [warnIgnored] Always warn when a file is ignored
@returns {LintReport} The results for the linting.