HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/share/nodejs/acorn-private-methods/index.js
// eslint-disable-next-line node/no-unsupported-features/es-syntax
import privateClassElements from "acorn-private-class-elements"

// eslint-disable-next-line node/no-unsupported-features/es-syntax
export default function privateMethods(Parser) {
  const ExtendedParser = privateClassElements(Parser)

  return class extends ExtendedParser {
    // Parse private methods
    parseClassElement(_constructorAllowsSuper) {
      const oldInClassMemberName = this._inClassMemberName
      this._inClassMemberName = true
      const result = super.parseClassElement.apply(this, arguments)
      this._inClassMemberName = oldInClassMemberName
      return result
    }

    parsePropertyName(prop) {
      const isPrivate = this.options.ecmaVersion >= 8 && this._inClassMemberName && this.type == this.privateIdentifierToken && !prop.static
      this._inClassMemberName = false
      if (!isPrivate) return super.parsePropertyName(prop)
      return this.parsePrivateClassElementName(prop)
    }
  }
}