tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

multiple-stacked-definitions-grammar-privatename-identifier-semantics-stringvalue.js (3291B)


      1 // This file was procedurally generated from the following sources:
      2 // - src/class-elements/grammar-privatename-identifier-semantics-stringvalue.case
      3 // - src/class-elements/productions/cls-decl-multiple-stacked-definitions.template
      4 /*---
      5 description: PrivateName Static Semantics, StringValue (multiple stacked fields definitions through ASI)
      6 esid: prod-FieldDefinition
      7 features: [class-fields-private, class, class-fields-public]
      8 flags: [generated]
      9 includes: [propertyHelper.js]
     10 info: |
     11    ClassElement :
     12      MethodDefinition
     13      static MethodDefinition
     14      FieldDefinition ;
     15      ;
     16 
     17    FieldDefinition :
     18      ClassElementName Initializer _opt
     19 
     20    ClassElementName :
     21      PropertyName
     22      PrivateName
     23 
     24    PrivateName ::
     25      # IdentifierName
     26 
     27    IdentifierName ::
     28      IdentifierStart
     29      IdentifierName IdentifierPart
     30 
     31    IdentifierStart ::
     32      UnicodeIDStart
     33      $
     34      _
     35      \ UnicodeEscapeSequence
     36 
     37    IdentifierPart::
     38      UnicodeIDContinue
     39      $
     40      \ UnicodeEscapeSequence
     41      <ZWNJ> <ZWJ>
     42 
     43    UnicodeIDStart::
     44      any Unicode code point with the Unicode property "ID_Start"
     45 
     46    UnicodeIDContinue::
     47      any Unicode code point with the Unicode property "ID_Continue"
     48 
     49 
     50    NOTE 3
     51    The sets of code points with Unicode properties "ID_Start" and
     52    "ID_Continue" include, respectively, the code points with Unicode
     53    properties "Other_ID_Start" and "Other_ID_Continue".
     54 
     55 
     56    1. Return the String value consisting of the sequence of code
     57      units corresponding to PrivateName. In determining the sequence
     58      any occurrences of \ UnicodeEscapeSequence are first replaced
     59      with the code point represented by the UnicodeEscapeSequence
     60      and then the code points of the entire PrivateName are converted
     61      to code units by UTF16Encoding (10.1.1) each code point.
     62 
     63 ---*/
     64 
     65 
     66 class C {
     67  #\u{6F};
     68  #\u2118;
     69  #ZW_\u200C_NJ;
     70  #ZW_\u200D_J;
     71  foo = "foobar"
     72  bar = "barbaz";
     73  o(value) {
     74    this.#o = value;
     75    return this.#o;
     76  }
     77  (value) {
     78    this.#℘ = value;
     79    return this.#℘;
     80  }
     81  ZW_‌_NJ(value) { // DO NOT CHANGE THE NAME OF THIS METHOD
     82    this.#ZW__NJ = value;
     83    return this.#ZW__NJ;
     84  }
     85  ZW_‍_J(value) { // DO NOT CHANGE THE NAME OF THIS METHOD
     86    this.#ZW__J = value;
     87    return this.#ZW__J;
     88  }
     89 }
     90 
     91 var c = new C();
     92 
     93 assert.sameValue(c.foo, "foobar");
     94 assert(
     95  !Object.prototype.hasOwnProperty.call(C, "foo"),
     96  "foo doesn't appear as an own property on the C constructor"
     97 );
     98 assert(
     99  !Object.prototype.hasOwnProperty.call(C.prototype, "foo"),
    100  "foo doesn't appear as an own property on the C prototype"
    101 );
    102 
    103 verifyProperty(c, "foo", {
    104  value: "foobar",
    105  enumerable: true,
    106  configurable: true,
    107  writable: true,
    108 });
    109 
    110 assert.sameValue(c.bar, "barbaz");
    111 assert(
    112  !Object.prototype.hasOwnProperty.call(C, "bar"),
    113  "bar doesn't appear as an own property on the C constructor"
    114 );
    115 assert(
    116  !Object.prototype.hasOwnProperty.call(C.prototype, "bar"),
    117  "bar doesn't appear as an own property on the C prototype"
    118 );
    119 
    120 verifyProperty(c, "bar", {
    121  value: "barbaz",
    122  enumerable: true,
    123  configurable: true,
    124  writable: true,
    125 });
    126 
    127 assert.sameValue(c.o(1), 1);
    128 assert.sameValue(c.(1), 1);
    129 assert.sameValue(c.ZW_‌_NJ(1), 1);
    130 assert.sameValue(c.ZW_‍_J(1), 1);
    131 
    132 reportCompare(0, 0);