From bc9d8a4a150706b8134a257a108ed588b39e9071 Mon Sep 17 00:00:00 2001 From: zengyuan Date: Fri, 31 May 2024 17:32:59 +0800 Subject: [PATCH] Enable arkguard for 262 test by "--enable-arkguard" Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/I9T0NU Signed-off-by: zengyuan Change-Id: Id004cd0f1bd7eaeefb423d230666c67e7e5d2b1e --- arkguard/BUILD.gn | 1 + arkguard/src/ArkObfuscator.ts | 205 +-- arkguard/src/ArkObfuscatorForTest.ts | 260 +++ arkguard/src/cli/SecHarmony.ts | 13 +- .../test262filename/filterFilenameList.json | 1463 +++++++++++++++++ arkguard/test/test262/test262Config.json | 18 + .../ut/arkobfuscator/ArkObfuscator.spec.ts | 32 +- test262/run_sunspider.py | 24 +- test262/run_test262.py | 6 +- test262/utils.py | 5 +- 10 files changed, 1807 insertions(+), 220 deletions(-) create mode 100644 arkguard/src/ArkObfuscatorForTest.ts create mode 100644 arkguard/src/configs/test262filename/filterFilenameList.json create mode 100644 arkguard/test/test262/test262Config.json diff --git a/arkguard/BUILD.gn b/arkguard/BUILD.gn index b22d2b8830..32f76ad9b8 100644 --- a/arkguard/BUILD.gn +++ b/arkguard/BUILD.gn @@ -20,6 +20,7 @@ action("build_arkguard") { sources = [ "package.json", "src/ArkObfuscator.ts", + "src/ArkObfuscatorForTest.ts", "src/IObfuscator.ts", "src/cli/SecHarmony.ts", "src/common/ApiExtractor.ts", diff --git a/arkguard/src/ArkObfuscator.ts b/arkguard/src/ArkObfuscator.ts index 60940a57db..244e57aee7 100644 --- a/arkguard/src/ArkObfuscator.ts +++ b/arkguard/src/ArkObfuscator.ts @@ -33,9 +33,7 @@ import type { TransformerFactory, } from 'typescript'; -import * as fs from 'fs'; import path from 'path'; -import sourceMap from 'source-map'; import type { IOptions } from './configs/IOptions'; import { FileUtils } from './utils/FileUtils'; @@ -52,15 +50,11 @@ import { import { deleteLineInfoForNameString, getMapFromJson, - NAME_CACHE_SUFFIX, - PROPERTY_CACHE_FILE, IDENTIFIER_CACHE, - MEM_METHOD_CACHE, - readCache, - writeCache, + MEM_METHOD_CACHE } from './utils/NameCacheUtil'; import { ListUtil } from './utils/ListUtil'; -import { needReadApiInfo, readProjectProperties, readProjectPropertiesByCollectedPaths } from './common/ApiReader'; +import { needReadApiInfo, readProjectPropertiesByCollectedPaths } from './common/ApiReader'; import { ApiExtractor } from './common/ApiExtractor'; import esInfo from './configs/preset/es_reserved_properties.json'; import { EventList, TimeSumPrinter, TimeTracker } from './utils/PrinterUtils'; @@ -88,7 +82,7 @@ export let performancePrinter: PerformancePrinter = { iniPrinter: new TimeTracker(), }; -type ObfuscationResultType = { +export type ObfuscationResultType = { content: string; sourceMap?: RawSourceMap; nameCache?: { [k: string]: string | {} }; @@ -98,22 +92,16 @@ type ObfuscationResultType = { const JSON_TEXT_INDENT_LENGTH: number = 2; export class ArkObfuscator { // Used only for testing - private mWriteOriginalFile: boolean = false; + protected mWriteOriginalFile: boolean = false; // A text writer of Printer private mTextWriter: EmitTextWriter; - // A list of source file path - private readonly mSourceFiles: string[]; - - // Path of obfuscation configuration file. - private readonly mConfigPath: string; - // Compiler Options for typescript,use to parse ast private readonly mCompilerOptions: CompilerOptions; // User custom obfuscation profiles. - private mCustomProfiles: IOptions; + protected mCustomProfiles: IOptions; private mTransformers: TransformerFactory[]; @@ -122,9 +110,7 @@ export class ArkObfuscator { // If isKeptCurrentFile is true, both identifier and property obfuscation are skipped. static mIsKeptCurrentFile: boolean = false; - public constructor(sourceFiles?: string[], configPath?: string) { - this.mSourceFiles = sourceFiles; - this.mConfigPath = configPath; + public constructor() { this.mCompilerOptions = {}; this.mTransformers = []; } @@ -175,10 +161,6 @@ export class ArkObfuscator { return this.mCustomProfiles; } - public get configPath(): string { - return this.mConfigPath; - } - public static get isKeptCurrentFile(): boolean { return ArkObfuscator.mIsKeptCurrentFile; } @@ -209,19 +191,12 @@ export class ArkObfuscator { * init ArkObfuscator according to user config * should be called after constructor */ - public init(config?: IOptions): boolean { - if (!this.mConfigPath && !config) { + public init(config: IOptions | undefined): boolean { + if (!config) { console.error('obfuscation config file is not found and no given config.'); return false; } - if (this.mConfigPath) { - config = FileUtils.readFileAsJson(this.mConfigPath); - // this.mConfigPath from Arkguard unit test - handleReservedConfig(config, 'mNameObfuscation', 'mReservedProperties', 'mUniversalReservedProperties'); - handleReservedConfig(config, 'mNameObfuscation', 'mReservedToplevelNames', 'mUniversalReservedToplevelNames'); - } - handleReservedConfig(config, 'mRenameFileName', 'mReservedFileNames', 'mUniversalReservedFileNames'); handleReservedConfig(config, 'mRemoveDeclarationComments', 'mReservedComments', 'mUniversalReservedComments', 'mEnable'); this.mCustomProfiles = config; @@ -251,114 +226,6 @@ export class ArkObfuscator { return true; } - /** - * Obfuscate all the source files. - */ - public async obfuscateFiles(): Promise { - if (!path.isAbsolute(this.mCustomProfiles.mOutputDir)) { - this.mCustomProfiles.mOutputDir = path.join(path.dirname(this.mConfigPath), this.mCustomProfiles.mOutputDir); - } - if (this.mCustomProfiles.mOutputDir && !fs.existsSync(this.mCustomProfiles.mOutputDir)) { - fs.mkdirSync(this.mCustomProfiles.mOutputDir); - } - - performancePrinter?.filesPrinter?.startEvent(EventList.ALL_FILES_OBFUSCATION); - readProjectProperties(this.mSourceFiles, this.mCustomProfiles); - const propertyCachePath = path.join(this.mCustomProfiles.mOutputDir, - path.basename(this.mSourceFiles[0])); // Get dir name - this.readPropertyCache(propertyCachePath); - - // support directory and file obfuscate - for (const sourcePath of this.mSourceFiles) { - if (!fs.existsSync(sourcePath)) { - console.error(`File ${FileUtils.getFileName(sourcePath)} is not found.`); - return; - } - - if (fs.lstatSync(sourcePath).isFile()) { - await this.obfuscateFile(sourcePath, this.mCustomProfiles.mOutputDir); - continue; - } - - const dirPrefix: string = FileUtils.getPrefix(sourcePath); - await this.obfuscateDir(sourcePath, dirPrefix); - } - - this.producePropertyCache(propertyCachePath); - performancePrinter?.filesPrinter?.endEvent(EventList.ALL_FILES_OBFUSCATION); - performancePrinter?.timeSumPrinter?.print('Sum up time of processes'); - performancePrinter?.timeSumPrinter?.summarizeEventDuration(); - } - - /** - * obfuscate directory - * @private - */ - private async obfuscateDir(dirName: string, dirPrefix: string): Promise { - const currentDir: string = FileUtils.getPathWithoutPrefix(dirName, dirPrefix); - let newDir: string = this.mCustomProfiles.mOutputDir; - // there is no need to create directory because the directory names will be obfuscated. - if (!this.mCustomProfiles.mRenameFileName?.mEnable) { - newDir = path.join(this.mCustomProfiles.mOutputDir, currentDir); - if (!fs.existsSync(newDir)) { - fs.mkdirSync(newDir); - } - } - - const fileNames: string[] = fs.readdirSync(dirName); - for (let fileName of fileNames) { - const filePath: string = path.join(dirName, fileName); - if (fs.lstatSync(filePath).isFile()) { - await this.obfuscateFile(filePath, newDir); - continue; - } - - await this.obfuscateDir(filePath, dirPrefix); - } - } - - private readNameCache(sourceFile: string, outputDir: string): void { - if (!this.mCustomProfiles.mNameObfuscation?.mEnable || !this.mCustomProfiles.mEnableNameCache) { - return; - } - - const nameCachePath: string = path.join(outputDir, FileUtils.getFileName(sourceFile) + NAME_CACHE_SUFFIX); - const nameCache: Object = readCache(nameCachePath); - let historyNameCache = new Map(); - let identifierCache = nameCache ? Reflect.get(nameCache, IDENTIFIER_CACHE) : undefined; - deleteLineInfoForNameString(historyNameCache, identifierCache); - - renameIdentifierModule.historyNameCache = historyNameCache; - } - - private readPropertyCache(outputDir: string): void { - if (!this.mCustomProfiles.mNameObfuscation?.mRenameProperties || !this.mCustomProfiles.mEnableNameCache) { - return; - } - - const propertyCachePath: string = path.join(outputDir, PROPERTY_CACHE_FILE); - const propertyCache: Object = readCache(propertyCachePath); - if (!propertyCache) { - return; - } - - renamePropertyModule.historyMangledTable = getMapFromJson(propertyCache); - } - - private produceNameCache(namecache: { [k: string]: string | {} }, resultPath: string): void { - const nameCachePath: string = resultPath + NAME_CACHE_SUFFIX; - fs.writeFileSync(nameCachePath, JSON.stringify(namecache, null, JSON_TEXT_INDENT_LENGTH)); - } - - private producePropertyCache(outputDir: string): void { - if (this.mCustomProfiles.mNameObfuscation && - this.mCustomProfiles.mNameObfuscation.mRenameProperties && - this.mCustomProfiles.mEnableNameCache) { - const propertyCachePath: string = path.join(outputDir, PROPERTY_CACHE_FILE); - writeCache(renamePropertyModule.globalMangledTable, propertyCachePath); - } - } - private initPerformancePrinter(): void { if (this.mCustomProfiles.mPerformancePrinter) { const printConfig = this.mCustomProfiles.mPerformancePrinter; @@ -403,7 +270,7 @@ export class ArkObfuscator { return createPrinter(printerOptions); } - private isObfsIgnoreFile(fileName: string): boolean { + protected isObfsIgnoreFile(fileName: string): boolean { let suffix: string = FileUtils.getFileExtension(fileName); return suffix !== 'js' && suffix !== 'ts' && suffix !== 'ets'; @@ -447,60 +314,6 @@ export class ArkObfuscator { return updatedCache; } - /** - * Obfuscate single source file with path provided - * - * @param sourceFilePath single source file path - * @param outputDir - */ - public async obfuscateFile(sourceFilePath: string, outputDir: string): Promise { - const fileName: string = FileUtils.getFileName(sourceFilePath); - if (this.isObfsIgnoreFile(fileName)) { - fs.copyFileSync(sourceFilePath, path.join(outputDir, fileName)); - return; - } - - // Add the whitelist of file name obfuscation for ut. - if (this.mCustomProfiles.mRenameFileName?.mEnable) { - const reservedArray = this.mCustomProfiles.mRenameFileName.mReservedFileNames; - FileUtils.collectPathReservedString(this.mConfigPath, reservedArray); - } - let content: string = FileUtils.readFile(sourceFilePath); - this.readNameCache(sourceFilePath, outputDir); - performancePrinter?.filesPrinter?.startEvent(sourceFilePath); - const mixedInfo: ObfuscationResultType = await this.obfuscate(content, sourceFilePath); - performancePrinter?.filesPrinter?.endEvent(sourceFilePath, undefined, true); - - if (this.mWriteOriginalFile && mixedInfo) { - // Write the obfuscated content directly to orignal file. - fs.writeFileSync(sourceFilePath, mixedInfo.content); - return; - } - if (outputDir && mixedInfo) { - // the writing file is for the ut. - const testCasesRootPath = path.join(__dirname, '../', 'test/grammar'); - let relativePath = ''; - let resultPath = ''; - if (this.mCustomProfiles.mRenameFileName?.mEnable && mixedInfo.filePath) { - relativePath = mixedInfo.filePath.replace(testCasesRootPath, ''); - } else { - relativePath = sourceFilePath.replace(testCasesRootPath, ''); - } - resultPath = path.join(this.mCustomProfiles.mOutputDir, relativePath); - fs.mkdirSync(path.dirname(resultPath), { recursive: true }); - fs.writeFileSync(resultPath, mixedInfo.content); - - if (this.mCustomProfiles.mEnableSourceMap && mixedInfo.sourceMap) { - fs.writeFileSync(path.join(resultPath + '.map'), - JSON.stringify(mixedInfo.sourceMap, null, JSON_TEXT_INDENT_LENGTH)); - } - - if (this.mCustomProfiles.mEnableNameCache && this.mCustomProfiles.mEnableNameCache) { - this.produceNameCache(mixedInfo.nameCache, resultPath); - } - } - } - /** * Obfuscate ast of a file. * @param content ast or source code of a source file diff --git a/arkguard/src/ArkObfuscatorForTest.ts b/arkguard/src/ArkObfuscatorForTest.ts new file mode 100644 index 0000000000..f2545a62a8 --- /dev/null +++ b/arkguard/src/ArkObfuscatorForTest.ts @@ -0,0 +1,260 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + ArkObfuscator, + ObfuscationResultType, + performancePrinter, + renameIdentifierModule, + renamePropertyModule +} from './ArkObfuscator'; +import { readProjectProperties } from './common/ApiReader'; +import { FileUtils } from './utils/FileUtils'; +import { EventList } from './utils/PrinterUtils'; +import { handleReservedConfig } from './utils/TransformUtil'; +import { + IDENTIFIER_CACHE, + NAME_CACHE_SUFFIX, + PROPERTY_CACHE_FILE, + deleteLineInfoForNameString, + getMapFromJson, + readCache, + writeCache +} from './utils/NameCacheUtil'; + +import * as fs from 'fs'; +import path from 'path'; +import filterFileArray from './configs/test262filename/filterFilenameList.json'; + +import type { IOptions } from './configs/IOptions'; + +const JSON_TEXT_INDENT_LENGTH: number = 2; + +export class ArkObfuscatorForTest extends ArkObfuscator { + // A list of source file path + private readonly mSourceFiles: string[]; + + // Path of obfuscation configuration file. + private readonly mConfigPath: string; + + constructor(sourceFiles?: string[], configPath?: string) { + super(); + this.mSourceFiles = sourceFiles; + this.mConfigPath = configPath; + } + + public get configPath(): string { + return this.mConfigPath; + } + + /** + * init ArkObfuscator according to user config + * should be called after constructor + */ + public init(config: IOptions | undefined): boolean { + if (!config) { + console.error('obfuscation config file is not found and no given config.'); + return false; + } + + handleReservedConfig(config, 'mNameObfuscation', 'mReservedProperties', 'mUniversalReservedProperties'); + handleReservedConfig(config, 'mNameObfuscation', 'mReservedToplevelNames', 'mUniversalReservedToplevelNames'); + return super.init(config) + } + + /** + * Obfuscate all the source files. + */ + public async obfuscateFiles(): Promise { + if (!path.isAbsolute(this.mCustomProfiles.mOutputDir)) { + this.mCustomProfiles.mOutputDir = path.join(path.dirname(this.mConfigPath), this.mCustomProfiles.mOutputDir); + } + if (this.mCustomProfiles.mOutputDir && !fs.existsSync(this.mCustomProfiles.mOutputDir)) { + fs.mkdirSync(this.mCustomProfiles.mOutputDir); + } + + performancePrinter?.filesPrinter?.startEvent(EventList.ALL_FILES_OBFUSCATION); + readProjectProperties(this.mSourceFiles, this.mCustomProfiles); + const propertyCachePath = path.join(this.mCustomProfiles.mOutputDir, + path.basename(this.mSourceFiles[0])); // Get dir name + this.readPropertyCache(propertyCachePath); + + // support directory and file obfuscate + for (const sourcePath of this.mSourceFiles) { + if (!fs.existsSync(sourcePath)) { + console.error(`File ${FileUtils.getFileName(sourcePath)} is not found.`); + return; + } + + if (fs.lstatSync(sourcePath).isFile()) { + await this.obfuscateFile(sourcePath, this.mCustomProfiles.mOutputDir); + continue; + } + + const dirPrefix: string = FileUtils.getPrefix(sourcePath); + await this.obfuscateDir(sourcePath, dirPrefix); + } + + this.producePropertyCache(propertyCachePath); + performancePrinter?.filesPrinter?.endEvent(EventList.ALL_FILES_OBFUSCATION); + performancePrinter?.timeSumPrinter?.print('Sum up time of processes'); + performancePrinter?.timeSumPrinter?.summarizeEventDuration(); + } + + /** + * obfuscate directory + * @private + */ + private async obfuscateDir(dirName: string, dirPrefix: string): Promise { + const currentDir: string = FileUtils.getPathWithoutPrefix(dirName, dirPrefix); + let newDir: string = this.mCustomProfiles.mOutputDir; + // there is no need to create directory because the directory names will be obfuscated. + if (!this.mCustomProfiles.mRenameFileName?.mEnable) { + newDir = path.join(this.mCustomProfiles.mOutputDir, currentDir); + if (!fs.existsSync(newDir)) { + fs.mkdirSync(newDir); + } + } + + const fileNames: string[] = fs.readdirSync(dirName); + for (let fileName of fileNames) { + const filePath: string = path.join(dirName, fileName); + if (fs.lstatSync(filePath).isFile()) { + await this.obfuscateFile(filePath, newDir); + continue; + } + + await this.obfuscateDir(filePath, dirPrefix); + } + } + + /** + * Obfuscate single source file with path provided + * + * @param sourceFilePath single source file path + * @param outputDir + */ + public async obfuscateFile(sourceFilePath: string, outputDir: string): Promise { + const fileName: string = FileUtils.getFileName(sourceFilePath); + if (this.isObfsIgnoreFile(fileName)) { + fs.copyFileSync(sourceFilePath, path.join(outputDir, fileName)); + return; + } + + const test262Filename = this.getPathAfterTest262SecondLevel(sourceFilePath) + const isFileInArray = filterFileArray.includes(test262Filename); + // To skip the path where 262 test will fail. + if (isFileInArray) { + return; + } + + // Add the whitelist of file name obfuscation for ut. + if (this.mCustomProfiles.mRenameFileName?.mEnable) { + const reservedArray = this.mCustomProfiles.mRenameFileName.mReservedFileNames; + FileUtils.collectPathReservedString(this.mConfigPath, reservedArray); + } + let content: string = FileUtils.readFile(sourceFilePath); + this.readNameCache(sourceFilePath, outputDir); + performancePrinter?.filesPrinter?.startEvent(sourceFilePath); + const mixedInfo: ObfuscationResultType = await this.obfuscate(content, sourceFilePath); + performancePrinter?.filesPrinter?.endEvent(sourceFilePath, undefined, true); + + if (this.mWriteOriginalFile && mixedInfo) { + // Write the obfuscated content directly to orignal file. + fs.writeFileSync(sourceFilePath, mixedInfo.content); + return; + } + if (outputDir && mixedInfo) { + // the writing file is for the ut. + const testCasesRootPath = path.join(__dirname, '../', 'test/grammar'); + let relativePath = ''; + let resultPath = ''; + if (this.mCustomProfiles.mRenameFileName?.mEnable && mixedInfo.filePath) { + relativePath = mixedInfo.filePath.replace(testCasesRootPath, ''); + } else { + relativePath = sourceFilePath.replace(testCasesRootPath, ''); + } + resultPath = path.join(this.mCustomProfiles.mOutputDir, relativePath); + fs.mkdirSync(path.dirname(resultPath), { recursive: true }); + fs.writeFileSync(resultPath, mixedInfo.content); + + if (this.mCustomProfiles.mEnableSourceMap && mixedInfo.sourceMap) { + fs.writeFileSync(path.join(resultPath + '.map'), + JSON.stringify(mixedInfo.sourceMap, null, JSON_TEXT_INDENT_LENGTH)); + } + + if (this.mCustomProfiles.mEnableNameCache && this.mCustomProfiles.mEnableNameCache) { + this.produceNameCache(mixedInfo.nameCache, resultPath); + } + } + } + + private getPathAfterTest262SecondLevel(fullPath) { + const pathParts = fullPath.split('/'); + const dataIndex = pathParts.indexOf('test262'); + // If it is not the directory of test262, return to the original path. + if (dataIndex === -1) { + return fullPath; + } + + // 2: Calculate the index of the second-level directory after 'test262' + const secondLevelIndex = dataIndex + 2; + if (secondLevelIndex < pathParts.length) { + return pathParts.slice(secondLevelIndex).join('/'); + } + } + + private produceNameCache(namecache: { [k: string]: string | {} }, resultPath: string): void { + const nameCachePath: string = resultPath + NAME_CACHE_SUFFIX; + fs.writeFileSync(nameCachePath, JSON.stringify(namecache, null, JSON_TEXT_INDENT_LENGTH)); + } + + private readNameCache(sourceFile: string, outputDir: string): void { + if (!this.mCustomProfiles.mNameObfuscation?.mEnable || !this.mCustomProfiles.mEnableNameCache) { + return; + } + + const nameCachePath: string = path.join(outputDir, FileUtils.getFileName(sourceFile) + NAME_CACHE_SUFFIX); + const nameCache: Object = readCache(nameCachePath); + let historyNameCache = new Map(); + let identifierCache = nameCache ? Reflect.get(nameCache, IDENTIFIER_CACHE) : undefined; + deleteLineInfoForNameString(historyNameCache, identifierCache); + + renameIdentifierModule.historyNameCache = historyNameCache; + } + + private producePropertyCache(outputDir: string): void { + if (this.mCustomProfiles.mNameObfuscation && + this.mCustomProfiles.mNameObfuscation.mRenameProperties && + this.mCustomProfiles.mEnableNameCache) { + const propertyCachePath: string = path.join(outputDir, PROPERTY_CACHE_FILE); + writeCache(renamePropertyModule.globalMangledTable, propertyCachePath); + } + } + + private readPropertyCache(outputDir: string): void { + if (!this.mCustomProfiles.mNameObfuscation?.mRenameProperties || !this.mCustomProfiles.mEnableNameCache) { + return; + } + + const propertyCachePath: string = path.join(outputDir, PROPERTY_CACHE_FILE); + const propertyCache: Object = readCache(propertyCachePath); + if (!propertyCache) { + return; + } + + renamePropertyModule.historyMangledTable = getMapFromJson(propertyCache); + } +} \ No newline at end of file diff --git a/arkguard/src/cli/SecHarmony.ts b/arkguard/src/cli/SecHarmony.ts index 5c43bf03ff..4f3381f7b7 100644 --- a/arkguard/src/cli/SecHarmony.ts +++ b/arkguard/src/cli/SecHarmony.ts @@ -18,10 +18,13 @@ import {program} from 'commander'; import * as path from 'path'; -import {ArkObfuscator} from '../ArkObfuscator'; -import {performancePrinter} from '../ArkObfuscator'; +import { ArkObfuscatorForTest } from '../ArkObfuscatorForTest'; +import { performancePrinter } from '../ArkObfuscator'; import { EventList } from '../utils/PrinterUtils'; import { UnitTestUtil } from '../utils/UnitTestUtil'; +import { FileUtils } from '../utils/FileUtils'; + +import type { IOptions } from '../configs/IOptions'; /** * Main Entry of Obfuscation in @@ -44,9 +47,10 @@ const minParametersNum: number = 3; fileList.push(resolved); }); - let obfuscator: ArkObfuscator = new ArkObfuscator(fileList, configPath); + let obfuscator: ArkObfuscatorForTest = new ArkObfuscatorForTest(fileList, configPath); performancePrinter?.iniPrinter?.startEvent(EventList.OBFUSCATION_INITIALIZATION); - const initSuccess: boolean = obfuscator.init(); + const config: IOptions = FileUtils.readFileAsJson(configPath); + const initSuccess: boolean = obfuscator.init(config); let inplace: boolean = program.opts()?.inplace; if (inplace) { obfuscator.setWriteOriginalFile(true); @@ -58,7 +62,6 @@ const minParametersNum: number = 3; console.error('init from config file error.'); return; } - obfuscator.obfuscateFiles(); })(); diff --git a/arkguard/src/configs/test262filename/filterFilenameList.json b/arkguard/src/configs/test262filename/filterFilenameList.json new file mode 100644 index 0000000000..ee1bf0280e --- /dev/null +++ b/arkguard/src/configs/test262filename/filterFilenameList.json @@ -0,0 +1,1463 @@ +[ + "language/line-terminators/S7.3_A2.1_T2.js", + "language/line-terminators/S7.3_A2.2_T2.js", + "language/line-terminators/invalid-regexp-cr.js", + "language/line-terminators/invalid-regexp-ls.js", + "language/line-terminators/invalid-regexp-lf.js", + "language/line-terminators/invalid-regexp-ps.js", + "language/line-terminators/invalid-string-lf.js", + "language/line-terminators/invalid-string-cr.js", + "language/literals/string/S7.8.4_A1.1_T2.js", + "language/literals/string/S7.8.4_A1.2_T2.js", + "language/asi/S7.9.2_A1_T3.js", + "language/asi/S7.9.2_A1_T1.js", + "language/asi/S7.9.2_A1_T6.js", + "language/asi/S7.9_A11_T4.js", + "language/asi/S7.9_A11_T8.js", + "language/asi/S7.9_A10_T8.js", + "language/asi/S7.9_A6.2_T1.js", + "language/asi/S7.9_A6.2_T3.js", + "language/asi/S7.9_A6.2_T7.js", + "language/asi/S7.9_A6.2_T8.js", + "language/asi/S7.9_A6.2_T10.js", + "language/asi/S7.9_A6.2_T4.js", + "language/asi/S7.9_A6.3_T6.js", + "language/asi/S7.9_A6.2_T9.js", + "language/asi/S7.9_A6.2_T5.js", + "language/asi/S7.9_A6.2_T2.js", + "language/asi/S7.9_A6.3_T4.js", + "language/asi/S7.9_A6.2_T6.js", + "language/asi/S7.9_A6.3_T2.js", + "language/asi/S7.9_A6.3_T5.js", + "language/asi/S7.9_A6.3_T1.js", + "language/asi/S7.9_A6.3_T3.js", + "language/asi/S7.9_A6.3_T7.js", + "language/asi/S7.9_A9_T6.js", + "language/asi/S7.9_A9_T7.js", + "language/comments/S7.4_A2_T2.js", + "language/identifiers/part-unicode-13.0.0-escaped.js", + "language/identifiers/start-unicode-13.0.0.js", + "language/identifiers/start-unicode-13.0.0-escaped.js", + "language/keywords/ident-ref-case.js", + "language/keywords/ident-ref-default.js", + "language/keywords/ident-ref-else.js", + "language/keywords/ident-ref-catch.js", + "language/keywords/ident-ref-finally.js", + "language/keywords/ident-ref-try.js", + "language/line-terminators/S7.3_A6_T1.js", + "language/line-terminators/S7.3_A6_T2.js", + "language/line-terminators/S7.3_A6_T4.js", + "language/line-terminators/S7.3_A6_T3.js", + "language/line-terminators/invalid-comment-single-cr.js", + "language/line-terminators/invalid-comment-single-lf.js", + "language/module-code/export-expname-string-binding.js", + "language/module-code/instn-iee-err-circular.js", + "language/module-code/parse-err-semi-dflt-expr.js", + "language/module-code/parse-err-syntax-1.js", + "language/module-code/parse-err-semi-named-export-from.js", + "language/module-code/parse-err-export-dflt-expr.js", + "language/module-code/parse-err-semi-named-export.js", + "language/punctuators/S7.7_A2_T1.js", + "language/punctuators/S7.7_A2_T3.js", + "language/punctuators/S7.7_A2_T10.js", + "language/punctuators/S7.7_A2_T4.js", + "language/punctuators/S7.7_A2_T6.js", + "language/punctuators/S7.7_A2_T5.js", + "language/punctuators/S7.7_A2_T2.js", + "language/punctuators/S7.7_A2_T7.js", + "language/punctuators/S7.7_A2_T9.js", + "language/punctuators/S7.7_A2_T8.js", + "language/white-space/S7.2_A5_T1.js", + "language/white-space/S7.2_A5_T5.js", + "language/white-space/S7.2_A5_T4.js", + "language/white-space/S7.2_A5_T2.js", + "language/white-space/S7.2_A5_T3.js", + "language/expressions/async-arrow-function/await-as-binding-identifier-escaped.js", + "language/expressions/async-arrow-function/await-as-binding-identifier.js", + "language/expressions/async-arrow-function/await-as-param-rest-nested-arrow-parameter-position.js", + "language/expressions/async-arrow-function/dflt-params-duplicates.js", + "language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js", + "language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js", + "language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js", + "language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js", + "language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js", + "language/expressions/async-arrow-function/early-errors-arrow-formals-lineterminator.js", + "language/expressions/async-arrow-function/escaped-async.js", + "language/expressions/async-function/await-as-binding-identifier-escaped.js", + "language/expressions/async-function/await-as-binding-identifier.js", + "language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js", + "language/expressions/async-function/early-errors-expression-formals-body-duplicate.js", + "language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js", + "language/expressions/async-function/escaped-async.js", + "language/expressions/async-function/named-await-as-binding-identifier-escaped.js", + "language/expressions/async-function/named-await-as-binding-identifier.js", + "language/expressions/async-function/named-dflt-params-duplicates.js", + "language/expressions/async-function/named-rest-params-trailing-comma-early-error.js", + "language/expressions/async-function/nameless-dflt-params-duplicates.js", + "language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js", + "language/expressions/async-generator/await-as-binding-identifier.js", + "language/expressions/async-generator/dflt-params-duplicates.js", + "language/expressions/async-generator/early-errors-expression-arguments-in-formal-parameters.js", + "language/expressions/async-generator/await-as-binding-identifier-escaped.js", + "language/expressions/async-generator/early-errors-expression-eval-in-formal-parameters.js", + "language/expressions/async-generator/early-errors-expression-formals-body-duplicate-let.js", + "language/expressions/async-generator/early-errors-expression-formals-contains-await.js", + "language/expressions/async-generator/early-errors-expression-formals-contains-yield.js", + "language/expressions/async-generator/escaped-async.js", + "language/expressions/async-generator/early-errors-expression-formals-body-duplicate-const.js", + "language/expressions/async-generator/named-await-as-binding-identifier.js", + "language/expressions/async-generator/named-await-as-binding-identifier-escaped.js", + "language/expressions/async-generator/early-errors-expression-not-simple-assignment-target.js", + "language/expressions/async-generator/early-errors-expression-label-name-yield.js", + "language/expressions/async-generator/named-dflt-params-duplicates.js", + "language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js", + "language/expressions/async-generator/named-yield-as-binding-identifier.js", + "language/expressions/async-generator/named-yield-as-binding-identifier-escaped.js", + "language/expressions/async-generator/named-yield-as-label-identifier-escaped.js", + "language/expressions/async-generator/named-yield-identifier-strict.js", + "language/expressions/async-generator/named-yield-identifier-spread-strict.js", + "language/expressions/async-generator/named-yield-as-label-identifier.js", + "language/expressions/async-generator/rest-params-trailing-comma-early-error.js", + "language/expressions/async-generator/yield-as-binding-identifier.js", + "language/expressions/async-generator/yield-identifier-spread-strict.js", + "language/expressions/async-generator/yield-as-label-identifier.js", + "language/expressions/async-generator/yield-identifier-strict.js", + "language/expressions/async-generator/yield-as-label-identifier-escaped.js", + "language/expressions/async-generator/yield-as-binding-identifier-escaped.js", + "language/expressions/call/S11.2.4_A1.3_T1.js", + "language/expressions/dynamic-import/escape-sequence-import/escape-sequence-import.js", + "language/expressions/dynamic-import/escape-sequence-import.js", + "language/expressions/function/param-duplicated-strict-1.js", + "language/expressions/function/param-duplicated-strict-3.js", + "language/expressions/function/param-duplicated-strict-2.js", + "language/expressions/generators/yield-as-logical-or-expression.js", + "language/expressions/generators/yield-as-parameter.js", + "language/expressions/object/11.1.5-1gs.js", + "language/expressions/object/cover-initialized-name.js", + "language/expressions/object/setter-param-arguments-strict-outside.js", + "language/expressions/object/setter-param-eval-strict-outside.js", + "language/expressions/optional-chaining/early-errors-tail-position-null-op-template-string-esi.js", + "language/expressions/optional-chaining/early-errors-tail-position-null-op-template-string.js", + "language/expressions/optional-chaining/early-errors-tail-position-op-template-string-esi.js", + "language/expressions/optional-chaining/early-errors-tail-position-op-template-string.js", + "language/expressions/yield/invalid-left-hand-side.js", + "language/literals/numeric/binary-invalid-unicode.js", + "language/literals/numeric/octal-invalid-unicode.js", + "language/literals/regexp/early-err-flags-unicode-escape.js", + "language/module-code/top-level-await/await-expr-regexp.js", + "language/statements/async-function/await-as-binding-identifier-escaped.js", + "language/statements/async-function/await-as-binding-identifier.js", + "language/statements/async-function/dflt-params-duplicates.js", + "language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js", + "language/statements/async-function/early-errors-declaration-await-in-formals.js", + "language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js", + "language/statements/async-function/early-errors-declaration-duplicate-parameters.js", + "language/statements/async-function/early-errors-declaration-formals-body-duplicate.js", + "language/statements/async-function/escaped-async.js", + "language/statements/async-function/let-newline-await-in-async-function.js", + "language/statements/async-function/rest-params-trailing-comma-early-error.js", + "language/statements/async-generator/await-as-binding-identifier-escaped.js", + "language/statements/async-generator/await-as-binding-identifier.js", + "language/statements/async-generator/dflt-params-duplicates.js", + "language/statements/async-generator/escaped-async.js", + "language/statements/async-generator/rest-params-trailing-comma-early-error.js", + "language/statements/async-generator/yield-as-label-identifier-escaped.js", + "language/statements/async-generator/yield-identifier-spread-strict.js", + "language/statements/async-generator/yield-identifier-strict.js", + "language/statements/async-generator/yield-as-binding-identifier.js", + "language/statements/async-generator/yield-as-binding-identifier-escaped.js", + "language/statements/async-generator/yield-as-label-identifier.js", + "language/statements/block/12.1-1.js", + "language/statements/block/12.1-5.js", + "language/statements/block/12.1-2.js", + "language/statements/block/12.1-6.js", + "language/statements/block/12.1-3.js", + "language/statements/block/12.1-4.js", + "language/statements/block/S12.1_A4_T2.js", + "language/statements/block/S12.1_A4_T1.js", + "language/statements/do-while/S12.6.1_A6_T4.js", + "language/statements/do-while/S12.6.1_A6_T2.js", + "language/statements/do-while/S12.6.1_A6_T1.js", + "language/statements/do-while/S12.6.1_A6_T5.js", + "language/statements/do-while/S12.6.1_A6_T3.js", + "language/statements/do-while/S12.6.1_A6_T6.js", + "language/statements/for/S12.6.3_A7.1_T1.js", + "language/statements/for/S12.6.3_A7.1_T2.js", + "language/statements/for/S12.6.3_A7_T1.js", + "language/statements/for/S12.6.3_A7_T2.js", + "language/statements/for/head-let-bound-names-in-stmt.js", + "language/statements/for-await-of/async-func-decl-dstr-array-elem-init-in.js", + "language/statements/for/head-const-bound-names-in-stmt.js", + "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-const-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-const-async-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-const-async-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-const-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-const-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-const-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-const-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-const-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-let-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-let-async-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-let-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-let-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-let-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-let-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-let-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-var-async-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-var-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-func-dstr-var-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-func-dstr-var-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-func-dstr-var-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-func-dstr-var-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-decl-dstr-array-elem-init-in.js", + "language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-const-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-const-async-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-const-async-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-const-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-let-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-let-async-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-let-async-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-let-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-var-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-var-async-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-var-async-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-id-init-fn-name-class.js", + "language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/for-await-of/async-gen-dstr-var-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/for-await-of/escaped-of.js", + "language/statements/for-in/head-const-bound-names-dup.js", + "language/statements/for-in/head-const-bound-names-in-stmt.js", + "language/statements/for-in/head-let-bound-names-dup.js", + "language/statements/for-in/head-let-bound-names-in-stmt.js", + "language/statements/for-in/S12.6.4_A15.js", + "language/statements/for-of/head-const-bound-names-dup.js", + "language/statements/for-of/head-const-bound-names-in-stmt.js", + "language/statements/for-of/head-let-bound-names-dup.js", + "language/statements/for-of/head-let-bound-names-in-stmt.js", + "language/statements/for-of/head-lhs-let.js", + "language/statements/function/13.1-1gs.js", + "language/statements/function/13.1-8gs.js", + "language/statements/function/13.1-4gs.js", + "language/statements/function/13.1-5gs.js", + "language/statements/function/S13_A19_T2.js", + "language/statements/function/S13_A7_T3.js", + "language/statements/function/invalid-3-names.js", + "language/statements/function/invalid-2-names.js", + "language/statements/function/invalid-name-dot.js", + "language/statements/function/invalid-name-two-dots.js", + "language/statements/function/param-arguments-strict.js", + "language/statements/function/param-duplicated-strict-2.js", + "language/statements/function/param-duplicated-strict-1.js", + "language/statements/function/param-duplicated-strict-3.js", + "language/statements/function/param-eval-strict.js", + "language/statements/function/static-init-await-binding-invalid.js", + "language/statements/generators/yield-as-parameter.js", + "language/statements/generators/yield-as-logical-or-expression.js", + "language/statements/if/S12.5_A6_T2.js", + "language/statements/if/S12.5_A6_T1.js", + "language/statements/switch/S12.11_A3_T3.js", + "language/statements/try/S12.14_A16_T10.js", + "language/statements/try/S12.14_A16_T12.js", + "language/statements/try/S12.14_A16_T11.js", + "language/statements/try/S12.14_A16_T1.js", + "language/statements/try/S12.14_A16_T13.js", + "language/statements/try/S12.14_A16_T15.js", + "language/statements/try/S12.14_A16_T2.js", + "language/statements/try/S12.14_A16_T7.js", + "language/statements/try/S12.14_A16_T6.js", + "language/statements/try/S12.14_A16_T5.js", + "language/statements/try/S12.14_A16_T14.js", + "language/statements/try/S12.14_A16_T8.js", + "language/statements/try/S12.14_A16_T9.js", + "language/statements/try/S12.14_A16_T3.js", + "language/statements/try/early-catch-duplicates.js", + "language/statements/try/early-catch-lex.js", + "language/statements/try/static-init-await-binding-invalid.js", + "language/statements/variable/arguments-fn-strict-list-repeated.js", + "language/statements/variable/arguments-fn-strict-list-final.js", + "language/statements/variable/arguments-fn-strict-list-final-init.js", + "language/statements/variable/arguments-fn-strict-single-init.js", + "language/statements/variable/arguments-fn-strict-list-first.js", + "language/statements/variable/arguments-fn-strict-list-middle.js", + "language/statements/variable/S12.2_A8_T1.js", + "language/statements/variable/arguments-fn-strict-single.js", + "language/statements/while/S12.6.2_A6_T3.js", + "language/statements/while/S12.6.2_A6_T4.js", + "language/statements/while/S12.6.2_A6_T2.js", + "language/statements/while/S12.6.2_A6_T1.js", + "language/statements/while/S12.6.2_A6_T5.js", + "language/statements/while/S12.6.2_A6_T6.js", + "language/types/string/S8.4_A13_T3.js", + "language/types/string/S8.4_A14_T3.js", + "language/expressions/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/expressions/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-fn.js", + "language/expressions/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-cover.js", + "language/expressions/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-class.js", + "language/expressions/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-gen.js", + "language/expressions/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/expressions/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-class.js", + "language/expressions/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/expressions/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/expressions/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/expressions/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-class.js", + "language/expressions/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-arrow.js", + "language/expressions/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-cover.js", + "language/expressions/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-fn.js", + "language/expressions/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-gen.js", + "language/expressions/async-generator/dstr/named-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/expressions/async-generator/dstr/named-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/expressions/async-generator/dstr/named-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/expressions/async-generator/dstr/named-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/expressions/async-generator/dstr/named-ary-ptrn-elem-id-init-fn-name-class.js", + "language/expressions/async-generator/dstr/named-dflt-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/expressions/async-generator/dstr/named-dflt-ary-ptrn-elem-id-init-fn-name-class.js", + "language/expressions/async-generator/dstr/named-dflt-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/expressions/async-generator/dstr/named-dflt-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/expressions/async-generator/dstr/named-dflt-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/expressions/async-generator/dstr/named-dflt-obj-ptrn-id-init-fn-name-cover.js", + "language/expressions/async-generator/dstr/named-dflt-obj-ptrn-id-init-fn-name-gen.js", + "language/expressions/async-generator/dstr/named-dflt-obj-ptrn-id-init-fn-name-fn.js", + "language/expressions/async-generator/dstr/named-dflt-obj-ptrn-id-init-fn-name-class.js", + "language/expressions/async-generator/dstr/named-dflt-obj-ptrn-id-init-fn-name-arrow.js", + "language/expressions/async-generator/dstr/named-obj-ptrn-id-init-fn-name-cover.js", + "language/expressions/async-generator/dstr/named-obj-ptrn-id-init-fn-name-arrow.js", + "language/expressions/async-generator/dstr/named-obj-ptrn-id-init-fn-name-class.js", + "language/expressions/async-generator/dstr/named-obj-ptrn-id-init-fn-name-gen.js", + "language/expressions/async-generator/dstr/named-obj-ptrn-id-init-fn-name-fn.js", + "language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-arrow.js", + "language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-gen.js", + "language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-class.js", + "language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-cover.js", + "language/expressions/async-generator/dstr/obj-ptrn-id-init-fn-name-fn.js", + "language/expressions/class/elements/after-same-line-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/after-same-line-gen-rs-field-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-gen-rs-private-getter-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-private-method-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-private-setter.js", + "language/expressions/class/elements/after-same-line-gen-rs-private-setter-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-private-method.js", + "language/expressions/class/elements/after-same-line-gen-rs-field-identifier.js", + "language/expressions/class/elements/after-same-line-gen-rs-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-gen-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-gen-rs-private-getter.js", + "language/expressions/class/elements/after-same-line-gen-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-gen-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/after-same-line-method-rs-private-getter-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-field-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-method-rs-field-identifier.js", + "language/expressions/class/elements/after-same-line-method-rs-private-method.js", + "language/expressions/class/elements/after-same-line-method-rs-private-setter-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-method-rs-private-method-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-private-getter.js", + "language/expressions/class/elements/after-same-line-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-method-rs-private-setter.js", + "language/expressions/class/elements/after-same-line-method-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-method-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-method-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-method-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-field-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-field-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-private-getter-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-private-getter.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-private-setter-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-private-method-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-private-setter.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-private-method.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-field-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-private-getter-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-field-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-private-setter-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-private-method.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-private-setter.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-private-method-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-private-getter.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-static-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-private-getter.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-field-identifier.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-private-method.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-private-getter-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-private-setter.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-private-setter-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-private-method-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-field-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-static-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-static-method-rs-private-method-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-field-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-method-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-private-getter.js", + "language/expressions/class/elements/after-same-line-static-method-rs-private-method.js", + "language/expressions/class/elements/after-same-line-static-method-rs-field-identifier.js", + "language/expressions/class/elements/after-same-line-static-method-rs-private-setter-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-private-setter.js", + "language/expressions/class/elements/after-same-line-static-method-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-private-getter-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-method-rs-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/after-same-line-static-method-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/fields-asi-same-line-1.js", + "language/expressions/class/elements/fields-asi-same-line-2.js", + "language/expressions/class/elements/multiple-definitions-rs-private-getter-alt.js", + "language/expressions/class/elements/multiple-definitions-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/multiple-definitions-rs-field-identifier-initializer.js", + "language/expressions/class/elements/multiple-definitions-rs-field-identifier.js", + "language/expressions/class/elements/multiple-definitions-rs-private-getter.js", + "language/expressions/class/elements/multiple-definitions-rs-private-method-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-private-setter-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-private-setter.js", + "language/expressions/class/elements/multiple-definitions-rs-private-method.js", + "language/expressions/class/elements/multiple-definitions-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/multiple-definitions-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/multiple-definitions-rs-privatename-identifier.js", + "language/expressions/class/elements/multiple-definitions-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/multiple-definitions-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/multiple-definitions-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/multiple-definitions-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/multiple-definitions-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/multiple-definitions-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/multiple-definitions-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/multiple-definitions-rs-static-privatename-identifier.js", + "language/expressions/class/elements/multiple-stacked-definitions-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-field-identifier-initializer.js", + "language/expressions/class/elements/multiple-definitions-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-field-identifier.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-private-method.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-private-getter-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-private-getter.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-private-setter.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-private-method-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-private-setter-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-privatename-identifier.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/nested-equality-init-err-contains-arguments.js", + "language/expressions/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/new-no-sc-line-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-field-identifier-initializer.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-private-getter.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-field-identifier.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-private-setter-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-private-method-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-private-getter-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-private-method.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-private-setter.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-privatename-identifier.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/new-sc-line-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-privatename-identifier.js", + "language/expressions/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/new-sc-line-gen-rs-private-getter-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-private-method.js", + "language/expressions/class/elements/new-sc-line-gen-rs-private-getter.js", + "language/expressions/class/elements/new-sc-line-gen-rs-field-identifier.js", + "language/expressions/class/elements/new-sc-line-gen-rs-field-identifier-initializer.js", + "language/expressions/class/elements/new-sc-line-gen-rs-private-method-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-private-setter-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-private-setter.js", + "language/expressions/class/elements/new-sc-line-gen-rs-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/new-sc-line-gen-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/new-sc-line-method-rs-field-identifier.js", + "language/expressions/class/elements/new-sc-line-method-rs-private-method-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-field-identifier-initializer.js", + "language/expressions/class/elements/new-sc-line-method-rs-private-getter-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-private-setter.js", + "language/expressions/class/elements/new-sc-line-method-rs-private-setter-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-private-getter.js", + "language/expressions/class/elements/new-sc-line-method-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-private-method.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/new-sc-line-method-rs-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/new-sc-line-method-rs-static-privatename-identifier.js", + "language/expressions/class/elements/regular-definitions-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/regular-definitions-rs-private-getter.js", + "language/expressions/class/elements/regular-definitions-rs-private-getter-alt.js", + "language/expressions/class/elements/regular-definitions-rs-field-identifier.js", + "language/expressions/class/elements/regular-definitions-rs-field-identifier-initializer.js", + "language/expressions/class/elements/regular-definitions-rs-private-method-alt.js", + "language/expressions/class/elements/regular-definitions-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/regular-definitions-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/regular-definitions-rs-private-setter.js", + "language/expressions/class/elements/regular-definitions-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/regular-definitions-rs-private-method.js", + "language/expressions/class/elements/regular-definitions-rs-private-setter-alt.js", + "language/expressions/class/elements/regular-definitions-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/regular-definitions-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/regular-definitions-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/regular-definitions-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/regular-definitions-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/regular-definitions-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/regular-definitions-rs-privatename-identifier.js", + "language/expressions/class/elements/regular-definitions-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/regular-definitions-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/regular-definitions-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/regular-definitions-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/regular-definitions-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/regular-definitions-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/regular-definitions-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/regular-definitions-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/regular-definitions-rs-static-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/same-line-async-gen-rs-private-setter-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-private-getter-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-gen-rs-field-identifier.js", + "language/expressions/class/elements/same-line-async-gen-rs-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-gen-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-private-setter.js", + "language/expressions/class/elements/same-line-async-gen-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-field-identifier-initializer.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-gen-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-gen-rs-private-method-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-private-getter.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-private-method.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/same-line-async-method-rs-field-identifier-initializer.js", + "language/expressions/class/elements/same-line-async-method-rs-field-identifier.js", + "language/expressions/class/elements/same-line-async-method-rs-private-method-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-private-getter.js", + "language/expressions/class/elements/same-line-async-method-rs-private-getter-alt.js", + "language/expressions/class/elements/same-line-async-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/same-line-async-method-rs-private-method.js", + "language/expressions/class/elements/same-line-async-method-rs-private-setter-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-method-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/same-line-async-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-private-setter.js", + "language/expressions/class/elements/same-line-async-method-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-method-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-method-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-method-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/same-line-gen-rs-field-identifier-initializer.js", + "language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/same-line-gen-rs-private-getter-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/same-line-gen-rs-field-identifier.js", + "language/expressions/class/elements/same-line-gen-rs-private-setter.js", + "language/expressions/class/elements/same-line-gen-rs-private-method.js", + "language/expressions/class/elements/same-line-gen-rs-private-method-alt.js", + "language/expressions/class/elements/same-line-gen-rs-private-getter.js", + "language/expressions/class/elements/same-line-gen-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/same-line-async-method-rs-static-privatename-identifier.js", + "language/expressions/class/elements/same-line-gen-rs-private-setter-alt.js", + "language/expressions/class/elements/same-line-gen-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/same-line-gen-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/same-line-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-gen-rs-privatename-identifier.js", + "language/expressions/class/elements/same-line-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-gen-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/same-line-gen-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/same-line-gen-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-gen-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-gen-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/same-line-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-gen-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-method-rs-field-identifier-initializer.js", + "language/expressions/class/elements/same-line-gen-rs-static-privatename-identifier.js", + "language/expressions/class/elements/same-line-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/same-line-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/same-line-method-rs-field-identifier.js", + "language/expressions/class/elements/same-line-gen-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/same-line-method-rs-private-getter-alt.js", + "language/expressions/class/elements/same-line-method-rs-private-method-alt.js", + "language/expressions/class/elements/same-line-method-rs-private-setter.js", + "language/expressions/class/elements/same-line-method-rs-private-getter.js", + "language/expressions/class/elements/same-line-method-rs-private-method.js", + "language/expressions/class/elements/same-line-method-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-method-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-method-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/same-line-method-rs-privatename-identifier.js", + "language/expressions/class/elements/same-line-method-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/same-line-method-rs-private-setter-alt.js", + "language/expressions/class/elements/same-line-method-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-method-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-method-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/same-line-method-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-method-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/same-line-method-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-method-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/same-line-method-rs-static-privatename-identifier.js", + "language/expressions/class/elements/same-line-method-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/same-line-method-rs-static-privatename-identifier-initializer.js", + "language/expressions/class/elements/same-line-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/same-line-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/wrapped-in-sc-rs-field-identifier.js", + "language/expressions/class/elements/wrapped-in-sc-rs-private-method-alt.js", + "language/expressions/class/elements/wrapped-in-sc-grammar-privatename-identifier-semantics-stringvalue.js", + "language/expressions/class/elements/wrapped-in-sc-rs-private-setter-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-private-setter.js", + "language/expressions/class/elements/wrapped-in-sc-rs-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-private-getter-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-privatename-identifier-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-private-method.js", + "language/expressions/class/elements/wrapped-in-sc-rs-private-getter.js", + "language/expressions/class/elements/wrapped-in-sc-rs-field-identifier-initializer.js", + "language/expressions/class/elements/wrapped-in-sc-rs-privatename-identifier-initializer.js", + "language/expressions/class/elements/wrapped-in-sc-rs-privatename-identifier.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-async-generator-method-privatename-identifier.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-async-method-privatename-identifier-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-async-method-privatename-identifier.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-method-privatename-identifier-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-generator-method-privatename-identifier-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-privatename-identifier-alt-by-classname.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-privatename-identifier-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-privatename-identifier-by-classname.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-privatename-identifier-initializer-alt.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-method-privatename-identifier.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-privatename-identifier.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-generator-method-privatename-identifier.js", + "language/expressions/class/elements/wrapped-in-sc-rs-static-privatename-identifier-initializer.js", + "language/expressions/object/method-definition/generator-param-redecl-let.js", + "language/expressions/object/method-definition/generator-param-redecl-const.js", + "language/expressions/object/method-definition/name-param-redecl.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-bil-nsl-bd-err.js", + "language/expressions/object/method-definition/yield-as-logical-or-expression.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-bil-nsl-bd-dunder-err.js", + "language/expressions/object/method-definition/yield-as-parameter.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-bil-bd-nsl-bd-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-dd-nsl-dds-dunder-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-dds-nsl-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-hil-nsl-hd-dunder-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-dd-nsl-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-dds-nsl-dds-dunder-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-hil-nsl-hd-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-hil-hd-nsl-hd-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-oil-od-nsl-od-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-oil-nsl-od-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-oil-nsl-od-dunder-err.js", + "language/literals/numeric/numeric-separators/numeric-separator-literal-unicode-err.js", + "language/literals/bigint/numeric-separators/numeric-separator-literal-unicode-err.js", + "language/module-code/top-level-await/syntax/block-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/early-no-escaped-await.js", + "language/module-code/top-level-await/syntax/for-await-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/for-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/for-in-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/for-of-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/if-block-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/if-expr-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/top-level-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/try-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/typeof-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/void-await-expr-obj-literal.js", + "language/module-code/top-level-await/syntax/while-await-expr-obj-literal.js", + "language/statements/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/async-generator/dstr/ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-class.js", + "language/statements/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-cover.js", + "language/statements/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-arrow.js", + "language/statements/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-gen.js", + "language/statements/async-generator/dstr/dflt-ary-ptrn-elem-id-init-fn-name-fn.js", + "language/statements/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-class.js", + "language/statements/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-gen.js", + "language/statements/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-cover.js", + "language/statements/async-generator/dstr/dflt-obj-ptrn-id-init-fn-name-fn.js", + "language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-fn.js", + "language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-arrow.js", + "language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-cover.js", + "language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-gen.js", + "language/statements/async-generator/dstr/obj-ptrn-id-init-fn-name-class.js", + "language/statements/class/definition/methods-gen-yield-as-function-expression-binding-identifier.js", + "language/statements/class/definition/methods-gen-yield-as-logical-or-expression.js", + "language/statements/class/definition/methods-gen-yield-as-parameter.js", + "language/statements/class/elements/after-same-line-gen-rs-private-setter.js", + "language/statements/class/elements/after-same-line-gen-rs-private-getter-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-field-identifier.js", + "language/statements/class/elements/after-same-line-gen-rs-private-setter-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-private-getter.js", + "language/statements/class/elements/after-same-line-gen-rs-private-method-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-privatename-identifier.js", + "language/statements/class/elements/after-same-line-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/after-same-line-gen-rs-private-method.js", + "language/statements/class/elements/after-same-line-gen-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-field-identifier-initializer.js", + "language/statements/class/elements/after-same-line-gen-rs-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-gen-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-gen-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/after-same-line-gen-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-gen-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/after-same-line-gen-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/after-same-line-gen-rs-static-privatename-identifier.js", + "language/statements/class/elements/after-same-line-gen-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-gen-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/after-same-line-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-method-rs-private-getter-alt.js", + "language/statements/class/elements/after-same-line-method-rs-field-identifier-initializer.js", + "language/statements/class/elements/after-same-line-method-rs-field-identifier.js", + "language/statements/class/elements/after-same-line-method-rs-private-method-alt.js", + "language/statements/class/elements/after-same-line-method-rs-private-getter.js", + "language/statements/class/elements/after-same-line-method-rs-private-setter-alt.js", + "language/statements/class/elements/after-same-line-method-rs-private-method.js", + "language/statements/class/elements/after-same-line-method-rs-private-setter.js", + "language/statements/class/elements/after-same-line-method-rs-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-method-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-method-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-method-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-method-rs-privatename-identifier.js", + "language/statements/class/elements/after-same-line-method-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-method-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-method-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/after-same-line-method-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-method-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-method-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/after-same-line-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-method-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-method-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/after-same-line-method-rs-static-privatename-identifier.js", + "language/statements/class/elements/after-same-line-method-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-field-identifier.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-private-getter.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-private-setter-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-private-setter.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-private-method.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-field-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-private-method-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-private-getter-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-gen-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/after-same-line-static-async-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-field-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-private-getter.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-private-setter.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-private-method.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-field-identifier.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-private-method-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-private-getter-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-private-setter-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-field-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/after-same-line-static-gen-rs-private-getter-alt.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-async-method-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-gen-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-private-setter.js", + "language/statements/class/elements/after-same-line-static-gen-rs-private-method.js", + "language/statements/class/elements/after-same-line-static-gen-rs-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-gen-rs-field-identifier.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-private-getter.js", + "language/statements/class/elements/after-same-line-static-gen-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-gen-rs-private-method-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-private-setter-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-static-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/after-same-line-static-gen-rs-static-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-method-rs-field-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-method-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-private-method-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-private-getter.js", + "language/statements/class/elements/after-same-line-static-method-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-method-rs-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-field-identifier.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-private-setter-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-private-setter.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-method-rs-private-getter-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-private-method.js", + "language/statements/class/elements/after-same-line-static-method-rs-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/after-same-line-static-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/fields-asi-3.js", + "language/statements/class/elements/fields-asi-4.js", + "language/statements/class/elements/fields-asi-same-line-1.js", + "language/statements/class/elements/fields-asi-same-line-2.js", + "language/statements/class/elements/multiple-definitions-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/multiple-definitions-rs-field-identifier.js", + "language/statements/class/elements/multiple-definitions-rs-field-identifier-initializer.js", + "language/statements/class/elements/multiple-definitions-rs-private-setter.js", + "language/statements/class/elements/multiple-definitions-rs-private-getter-alt.js", + "language/statements/class/elements/multiple-definitions-rs-private-method.js", + "language/statements/class/elements/multiple-definitions-rs-private-getter.js", + "language/statements/class/elements/multiple-definitions-rs-private-setter-alt.js", + "language/statements/class/elements/multiple-definitions-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/multiple-definitions-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/multiple-definitions-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/multiple-definitions-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/multiple-definitions-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/multiple-definitions-rs-privatename-identifier.js", + "language/statements/class/elements/multiple-definitions-rs-private-method-alt.js", + "language/statements/class/elements/multiple-definitions-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-definitions-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-definitions-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/multiple-definitions-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/multiple-definitions-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-definitions-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/multiple-definitions-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/multiple-definitions-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-definitions-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-definitions-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/multiple-definitions-rs-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-definitions-rs-static-privatename-identifier.js", + "language/statements/class/elements/multiple-definitions-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/multiple-stacked-definitions-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-private-getter.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-field-identifier.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-private-getter-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-field-identifier-initializer.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-private-method.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-private-method-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-private-setter-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-privatename-identifier.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-private-setter.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/multiple-stacked-definitions-rs-static-privatename-identifier.js", + "language/statements/class/elements/new-no-sc-line-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/new-no-sc-line-method-rs-private-getter-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-private-method-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-field-identifier-initializer.js", + "language/statements/class/elements/new-no-sc-line-method-rs-private-method.js", + "language/statements/class/elements/new-no-sc-line-method-rs-private-setter-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-field-identifier.js", + "language/statements/class/elements/new-no-sc-line-method-rs-private-getter.js", + "language/statements/class/elements/new-no-sc-line-method-rs-privatename-identifier-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-private-setter.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/new-no-sc-line-method-rs-privatename-identifier.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/new-no-sc-line-method-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-privatename-identifier.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/new-no-sc-line-method-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/new-sc-line-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/new-sc-line-gen-rs-private-getter-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-field-identifier-initializer.js", + "language/statements/class/elements/new-sc-line-gen-rs-field-identifier.js", + "language/statements/class/elements/new-sc-line-gen-rs-private-getter.js", + "language/statements/class/elements/new-sc-line-gen-rs-private-method-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-private-setter-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-private-method.js", + "language/statements/class/elements/new-sc-line-gen-rs-private-setter.js", + "language/statements/class/elements/new-sc-line-gen-rs-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-gen-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/new-sc-line-gen-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/new-sc-line-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/new-sc-line-method-rs-field-identifier-initializer.js", + "language/statements/class/elements/new-sc-line-method-rs-private-getter-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-private-getter.js", + "language/statements/class/elements/new-sc-line-method-rs-field-identifier.js", + "language/statements/class/elements/new-sc-line-method-rs-private-method-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-private-setter-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-private-setter.js", + "language/statements/class/elements/new-sc-line-method-rs-private-method.js", + "language/statements/class/elements/new-sc-line-method-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/new-sc-line-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-method-rs-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-method-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-method-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-method-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/new-sc-line-method-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/new-sc-line-method-rs-static-privatename-identifier.js", + "language/statements/class/elements/new-sc-line-method-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/new-sc-line-method-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/new-sc-line-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/new-sc-line-method-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/regular-definitions-rs-private-method-alt.js", + "language/statements/class/elements/regular-definitions-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/regular-definitions-rs-private-method.js", + "language/statements/class/elements/regular-definitions-rs-private-getter.js", + "language/statements/class/elements/regular-definitions-rs-private-setter-alt.js", + "language/statements/class/elements/regular-definitions-rs-private-getter-alt.js", + "language/statements/class/elements/regular-definitions-rs-field-identifier-initializer.js", + "language/statements/class/elements/regular-definitions-rs-privatename-identifier.js", + "language/statements/class/elements/regular-definitions-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/regular-definitions-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/regular-definitions-rs-private-setter.js", + "language/statements/class/elements/regular-definitions-rs-field-identifier.js", + "language/statements/class/elements/regular-definitions-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/regular-definitions-rs-privatename-identifier-alt.js", + "language/statements/class/elements/regular-definitions-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/regular-definitions-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/regular-definitions-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/regular-definitions-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/regular-definitions-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/regular-definitions-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/regular-definitions-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/regular-definitions-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/regular-definitions-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/regular-definitions-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/regular-definitions-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/regular-definitions-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/same-line-async-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/regular-definitions-rs-static-privatename-identifier.js", + "language/statements/class/elements/same-line-async-gen-rs-field-identifier-initializer.js", + "language/statements/class/elements/regular-definitions-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/same-line-async-gen-rs-private-getter-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-field-identifier.js", + "language/statements/class/elements/same-line-async-gen-rs-private-getter.js", + "language/statements/class/elements/same-line-async-gen-rs-private-method.js", + "language/statements/class/elements/same-line-async-gen-rs-private-method-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-private-setter-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-privatename-identifier.js", + "language/statements/class/elements/same-line-async-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/same-line-async-gen-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/same-line-async-gen-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-private-setter.js", + "language/statements/class/elements/same-line-async-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/same-line-async-gen-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier.js", + "language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-gen-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/same-line-async-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/same-line-async-method-rs-field-identifier-initializer.js", + "language/statements/class/elements/same-line-async-method-rs-private-method.js", + "language/statements/class/elements/same-line-async-method-rs-private-setter.js", + "language/statements/class/elements/same-line-async-method-rs-field-identifier.js", + "language/statements/class/elements/same-line-async-method-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/same-line-async-method-rs-private-getter.js", + "language/statements/class/elements/same-line-async-method-rs-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-method-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/same-line-async-method-rs-private-getter-alt.js", + "language/statements/class/elements/same-line-async-method-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/same-line-async-method-rs-private-method-alt.js", + "language/statements/class/elements/same-line-async-method-rs-private-setter-alt.js", + "language/statements/class/elements/same-line-async-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-method-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-method-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-method-rs-privatename-identifier.js", + "language/statements/class/elements/same-line-async-method-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/same-line-async-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/same-line-async-method-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/same-line-async-method-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-async-method-rs-static-privatename-identifier.js", + "language/statements/class/elements/same-line-gen-rs-field-identifier-initializer.js", + "language/statements/class/elements/same-line-gen-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/same-line-gen-rs-field-identifier.js", + "language/statements/class/elements/same-line-gen-rs-private-getter-alt.js", + "language/statements/class/elements/same-line-gen-rs-private-getter.js", + "language/statements/class/elements/same-line-gen-rs-private-method-alt.js", + "language/statements/class/elements/same-line-gen-rs-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-gen-rs-privatename-identifier.js", + "language/statements/class/elements/same-line-gen-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-gen-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/same-line-gen-rs-private-setter.js", + "language/statements/class/elements/same-line-gen-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/same-line-gen-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/same-line-gen-rs-private-setter-alt.js", + "language/statements/class/elements/same-line-gen-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/same-line-gen-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-gen-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/same-line-gen-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-gen-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/same-line-gen-rs-private-method.js", + "language/statements/class/elements/same-line-gen-rs-static-privatename-identifier.js", + "language/statements/class/elements/same-line-gen-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-gen-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/same-line-gen-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/same-line-gen-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/same-line-gen-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/same-line-gen-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-gen-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/same-line-method-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/same-line-method-rs-private-method.js", + "language/statements/class/elements/same-line-method-rs-field-identifier.js", + "language/statements/class/elements/same-line-method-rs-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-method-rs-private-getter-alt.js", + "language/statements/class/elements/same-line-method-rs-field-identifier-initializer.js", + "language/statements/class/elements/same-line-method-rs-private-method-alt.js", + "language/statements/class/elements/same-line-method-rs-private-getter.js", + "language/statements/class/elements/same-line-method-rs-private-setter-alt.js", + "language/statements/class/elements/same-line-method-rs-private-setter.js", + "language/statements/class/elements/same-line-method-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/same-line-method-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/same-line-method-rs-privatename-identifier.js", + "language/statements/class/elements/same-line-method-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-method-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/same-line-method-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/same-line-method-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-method-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/same-line-method-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-method-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-method-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/same-line-method-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/same-line-method-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/same-line-method-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/same-line-method-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/same-line-method-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/same-line-method-rs-static-privatename-identifier.js", + "language/statements/class/elements/same-line-method-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/wrapped-in-sc-grammar-privatename-identifier-semantics-stringvalue.js", + "language/statements/class/elements/wrapped-in-sc-rs-private-getter.js", + "language/statements/class/elements/wrapped-in-sc-rs-field-identifier-initializer.js", + "language/statements/class/elements/wrapped-in-sc-rs-private-method.js", + "language/statements/class/elements/wrapped-in-sc-rs-private-getter-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-private-method-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-field-identifier.js", + "language/statements/class/elements/wrapped-in-sc-rs-private-setter.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-async-generator-method-privatename-identifier.js", + "language/statements/class/elements/wrapped-in-sc-rs-privatename-identifier-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-privatename-identifier-initializer.js", + "language/statements/class/elements/wrapped-in-sc-rs-private-setter-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-method-privatename-identifier-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-privatename-identifier-initializer-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-privatename-identifier.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-async-method-privatename-identifier.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-privatename-identifier-alt-by-classname.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-generator-method-privatename-identifier.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-privatename-identifier-initializer-alt-by-classname.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-async-method-privatename-identifier-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-async-generator-method-privatename-identifier-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-privatename-identifier-by-classname.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-method-privatename-identifier.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-privatename-identifier-alt.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-privatename-identifier.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-privatename-identifier-initializer.js", + "language/statements/class/elements/wrapped-in-sc-rs-static-privatename-identifier-initializer-alt.js", + "language/statements/let/syntax/identifier-let-disallowed-as-boundname.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-identifier-strict-futurereservedword.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-arguments.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-yield.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-eval.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-bindingidentifier-no-arguments.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-1.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-2.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-2.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-array-3.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-3.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-1.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-5.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-6.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-rest.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-duplicates-binding-object-4.js", + "language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters-expression-body.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-eval.js", + "language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid.js", + "language/expressions/arrow-function/syntax/early-errors/arrowparameters-cover-no-yield.js", + "language/expressions/arrow-function/syntax/early-errors/asi-restriction-invalid-parenless-parameters.js", + "language/expressions/class/elements/syntax/early-errors/grammar-fields-same-line-error.js", + "language/statements/class/syntax/early-errors/class-definition-evaluation-block-duplicate-binding.js", + "language/expressions/class/elements/syntax/early-errors/grammar-field-identifier-invalid-ues-error.js", + "language/expressions/class/elements/syntax/early-errors/grammar-field-identifier-invalid-zwj-error.js", + "language/expressions/class/elements/syntax/early-errors/grammar-field-identifier-invalid-zwnj-error.js", + "language/statements/class/elements/syntax/early-errors/grammar-field-identifier-invalid-zwj-error.js", + "language/statements/class/elements/syntax/early-errors/grammar-fields-same-line-error.js", + "language/statements/class/elements/syntax/early-errors/grammar-field-identifier-invalid-zwnj-error.js", + "language/statements/class/elements/syntax/early-errors/grammar-field-identifier-invalid-ues-error.js" +] \ No newline at end of file diff --git a/arkguard/test/test262/test262Config.json b/arkguard/test/test262/test262Config.json new file mode 100644 index 0000000000..73297c6efa --- /dev/null +++ b/arkguard/test/test262/test262Config.json @@ -0,0 +1,18 @@ +{ + "mCompact": false, + "mRemoveComments": false, + "mOutputDir": "", + "mDisableHilog": false, + "mDisableConsole": false, + "mSimplify": false, + "mNameObfuscation": { + "mEnable": true, + "mNameGeneratorType": 1, + "mDictionaryList": [], + "mRenameProperties": false, + "mKeepStringProperty": false, + "mTopLevel": false + }, + "mEnableSourceMap": false, + "mEnableNameCache": false +} \ No newline at end of file diff --git a/arkguard/test/ut/arkobfuscator/ArkObfuscator.spec.ts b/arkguard/test/ut/arkobfuscator/ArkObfuscator.spec.ts index 18f64a6fe8..7a4940519a 100644 --- a/arkguard/test/ut/arkobfuscator/ArkObfuscator.spec.ts +++ b/arkguard/test/ut/arkobfuscator/ArkObfuscator.spec.ts @@ -16,14 +16,15 @@ import { describe, it } from 'mocha'; import { assert } from 'chai'; import { ArkObfuscator, FileUtils, wildcardTransformer } from '../../../src/ArkObfuscator'; +import { ArkObfuscatorForTest } from '../../../src/ArkObfuscatorForTest' import path from 'path'; import { TransformerFactory, Node, SourceFile, createSourceFile, ScriptTarget, Printer, createTextWriter, RawSourceMap } from 'typescript'; import { IOptions } from '../../../src/configs/IOptions'; import { getSourceMapGenerator } from '../../../src/utils/SourceMapUtil'; import fs from 'fs'; -describe('Tester Cases for .', function () { - describe('Tester Cases for .', function () { +describe('Tester Cases for .', function () { + describe('Tester Cases for .', function () { let etsSourceFile: SourceFile; let dEtsSourceFile: SourceFile; let tsSourceFile: SourceFile; @@ -76,10 +77,10 @@ class Demo{ it('Tester: test case for handleTsHarComments for ets file', function () { let mCustomProfiles: IOptions | undefined = FileUtils.readFileAsJson(path.join(__dirname, "default_config.json")); - let arkobfuscator = new ArkObfuscator(); + let arkobfuscator = new ArkObfuscatorForTest(); arkobfuscator.init(mCustomProfiles); let originalFilePath = 'demo.ets'; - ArkObfuscator.projectInfo = { packageDir: '', projectRootPath: '', localPackageSet: new Set(), useNormalized: false, useTsHar: true }; + ArkObfuscatorForTest.projectInfo = { packageDir: '', projectRootPath: '', localPackageSet: new Set(), useNormalized: false, useTsHar: true }; arkobfuscator.handleTsHarComments(etsSourceFile, originalFilePath); let sourceMapGenerator = getSourceMapGenerator(originalFilePath); const textWriter = createTextWriter('\n'); @@ -115,9 +116,9 @@ class Demo{ it('Tester: test case for handleTsHarComments for d.ets file', function () { let mCustomProfiles: IOptions | undefined = FileUtils.readFileAsJson(path.join(__dirname, "default_config.json")); - let arkobfuscator = new ArkObfuscator(); + let arkobfuscator = new ArkObfuscatorForTest(); arkobfuscator.init(mCustomProfiles); - ArkObfuscator.projectInfo = { packageDir: '', projectRootPath: '', localPackageSet: new Set(), useNormalized: false, useTsHar: true }; + ArkObfuscatorForTest.projectInfo = { packageDir: '', projectRootPath: '', localPackageSet: new Set(), useNormalized: false, useTsHar: true }; arkobfuscator.handleTsHarComments(dEtsSourceFile, dEtsSourceFilePath); let sourceMapGenerator = getSourceMapGenerator(dEtsSourceFilePath); const textWriter = createTextWriter('\n'); @@ -139,9 +140,9 @@ class Demo{ it('Tester: test case for handleTsHarComments for ts file', function () { let mCustomProfiles: IOptions | undefined = FileUtils.readFileAsJson(path.join(__dirname, "default_config.json")); - let arkobfuscator = new ArkObfuscator(); + let arkobfuscator = new ArkObfuscatorForTest(); arkobfuscator.init(mCustomProfiles); - ArkObfuscator.projectInfo = { packageDir: '', projectRootPath: '', localPackageSet: new Set(), useNormalized: false, useTsHar: true }; + ArkObfuscatorForTest.projectInfo = { packageDir: '', projectRootPath: '', localPackageSet: new Set(), useNormalized: false, useTsHar: true }; arkobfuscator.handleTsHarComments(tsSourceFile, tsSourceFilePath); let sourceMapGenerator = getSourceMapGenerator(tsSourceFilePath); const textWriter = createTextWriter('\n'); @@ -161,11 +162,12 @@ class Demo{ }); }); - describe('Tester Cases for .', function () { - it('Tester: test case for ArkObfuscator.ini: mConfigPath != ""', function (){ + describe('Tester Cases for .', function () { + it('Tester: test case for ArkObfuscatorForTest.ini: config != ""', function (){ let configPath = "test/ut/arkobfuscator/iniTestObfConfig.json" - let obfuscator: ArkObfuscator = new ArkObfuscator(undefined, configPath); - let initSuccess = obfuscator.init(); + let obfuscator: ArkObfuscatorForTest = new ArkObfuscatorForTest(); + const originalConfig: IOptions | undefined = FileUtils.readFileAsJson(configPath); + let initSuccess = obfuscator.init(originalConfig); let config = obfuscator.customProfiles; let reservedTopelevelNames = config.mNameObfuscation?.mReservedToplevelNames; let reservedProperty = config.mNameObfuscation?.mReservedProperties; @@ -180,11 +182,11 @@ class Demo{ assert.equal(universalReservedProperties[1].toString(), new RegExp(`^${wildcardTransformer("function*")}$`).toString()); }); - it('Tester: test case for ArkObfuscator.ini: mConfigPath == ""', function (){ + it('Tester: test case for ArkObfuscatorForTest.ini: config == undefined', function (){ let configPath = "test/ut/arkobfuscator/iniTestObfConfig.json" - let obfuscator: ArkObfuscator = new ArkObfuscator(); + let obfuscator: ArkObfuscatorForTest = new ArkObfuscatorForTest(); let config = FileUtils.readFileAsJson(configPath) as IOptions; - let initSuccess = obfuscator.init(config); + let initSuccess = obfuscator.init(undefined); let reservedTopelevelNames = config.mNameObfuscation?.mReservedToplevelNames; let reservedProperty = config.mNameObfuscation?.mReservedProperties; let universalReservedToplevelNames = config.mNameObfuscation?.mUniversalReservedToplevelNames; diff --git a/test262/run_sunspider.py b/test262/run_sunspider.py index 28ff108c02..6a62fe4d7d 100755 --- a/test262/run_sunspider.py +++ b/test262/run_sunspider.py @@ -106,6 +106,9 @@ def parse_args(): help="Use abc2prog to generate abc, aot or pgo is not supported yet under this option") parser.add_argument('--disable-force-gc', action='store_true', help="Run test262 with close force-gc") + parser.add_argument('--enable-arkguard', action='store_true', + required=False, + help="enable arkguard for 262 tests") arguments = parser.parse_args() return arguments @@ -150,6 +153,7 @@ class ArkProgram(): self.abc2program = False # when enabling abc2program, may generate a list of abc files self.abc_outputs = [] + self.enable_arkguard = False def proce_parameters(self): if self.args.ark_tool: @@ -200,6 +204,8 @@ class ArkProgram(): if self.args.abc2program: self.abc2program = self.args.abc2program + self.enable_arkguard = self.args.enable_arkguard + self.module_list = MODULE_LIST self.dynamicImport_list = DYNAMIC_IMPORT_LIST @@ -521,6 +527,21 @@ class ArkProgram(): return retcode + def execute_arkguard(self): + js_file = self.js_file + js_file_allpath = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../', js_file) + cmd_args = ['node', '--no-warnings', + '--loader=ts-node/esm', + './src/cli/SecHarmony.ts', + js_file_allpath, + '--config-path', + './test/test262/test262Config.json', + '--inplace'] + arkguard_path = os.getcwd() + '/arkguard' + retcode = exec_command(cmd_args, custom_cwd = arkguard_path) + if retcode == 1: + return retcode + def compile_aot(self): os.environ["LD_LIBRARY_PATH"] = self.libs_dir file_name_pre = os.path.splitext(self.js_file)[0] @@ -721,7 +742,8 @@ class ArkProgram(): self.get_all_skip_force_gc_tests() if not self.is_legal_frontend(): return - + if self.enable_arkguard: + self.execute_arkguard() if self.gen_abc(): return if self.run_pgo: diff --git a/test262/run_test262.py b/test262/run_test262.py index b213128e67..23fd3df39e 100755 --- a/test262/run_test262.py +++ b/test262/run_test262.py @@ -140,7 +140,9 @@ def parse_args(): help="Use abc2prog to generate abc, aot or pgo is not supported yet under this option") parser.add_argument('--disable-force-gc', action='store_true', help="Run test262 with close force-gc") - + parser.add_argument('--enable-arkguard', action='store_true', + help="enable arkguard for 262 tests") + args = parser.parse_args() if args.abc2program and (args.run_pgo or args.ark_aot): sys.exit("Error: '--abc2program' used together with '--ark-aot' or '--run-pgo' is not supported") @@ -673,6 +675,8 @@ def get_host_args_of_host_type(args, host_args, ark_tool, ark_aot_tool, libs_dir host_args += f"--product-name={product_name} " if args.abc2program: host_args = f"{host_args}--abc2program " + if args.enable_arkguard: + host_args = f"{host_args}--enable-arkguard " return host_args diff --git a/test262/utils.py b/test262/utils.py index ea5c5cf701..186a2f237d 100755 --- a/test262/utils.py +++ b/test262/utils.py @@ -57,12 +57,13 @@ def output(retcode, msg): sys.stderr.write("Unknown Error: " + str(retcode)) -def exec_command(cmd_args, timeout=DEFAULT_TIMEOUT): +def exec_command(cmd_args, timeout=DEFAULT_TIMEOUT, custom_cwd=None): proc = subprocess.Popen(cmd_args, stderr=subprocess.PIPE, stdout=subprocess.PIPE, close_fds=True, - start_new_session=True) + start_new_session=True, + cwd=custom_cwd) cmd_string = " ".join(cmd_args) code_format = 'utf-8' if platform.system() == "Windows": -- Gitee