Skip to content
Snippets Groups Projects
rs-privatename-identifier.case 1.77 KiB
// Copyright (C) 2018 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
desc: Valid PrivateName
info: |

  ClassElement :
    MethodDefinition
    static MethodDefinition
    FieldDefinition ;
    ;

  FieldDefinition :
    ClassElementName Initializer _opt

  ClassElementName :
    PropertyName
    PrivateName

  PrivateName ::
    # IdentifierName

  IdentifierName ::
    IdentifierStart
    IdentifierName IdentifierPart

  IdentifierStart ::
    UnicodeIDStart
    $
    _
    \ UnicodeEscapeSequence

  IdentifierPart::
    UnicodeIDContinue
    $
    \ UnicodeEscapeSequence
    <ZWNJ> <ZWJ>

  UnicodeIDStart::
    any Unicode code point with the Unicode property "ID_Start"

  UnicodeIDContinue::
    any Unicode code point with the Unicode property "ID_Continue"


  NOTE 3
  The sets of code points with Unicode properties "ID_Start" and
  "ID_Continue" include, respectively, the code points with Unicode
  properties "Other_ID_Start" and "Other_ID_Continue".

template: productions
features: [class-fields-private]
---*/

//- elements
#$; #_; #\u{6F}; #\u2118; #ZW_\u200C_NJ; #ZW_\u200D_J
//- privateinspectionfunctions
$(value) {
  this.#$ = value;
  return this.#$;
}
_(value) {
  this.#_ = value;
  return this.#_;
}
\u{6F}(value) {
  this.#\u{6F} = value;
  return this.#\u{6F};
}
\u2118(value) {
  this.#\u2118 = value;
  return this.#\u2118;
}
ZW_\u200C_NJ(value) {
  this.#ZW_\u200C_NJ = value;
  return this.#ZW_\u200C_NJ;
}
ZW_\u200D_J(value) {
  this.#ZW_\u200D_J = value;
  return this.#ZW_\u200D_J;
}
//- assertions
assert.sameValue(c.$(1), 1);
assert.sameValue(c._(1), 1);
assert.sameValue(c.\u{6F}(1), 1);
assert.sameValue(c.\u2118(1), 1);
assert.sameValue(c.ZW_\u200C_NJ(1), 1);
assert.sameValue(c.ZW_\u200D_J(1), 1);