summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/arguments-object/cls-decl-private-gen-meth-static-args-trailing-comma-undefined.js
blob: 075b303965b11ca85c694a849eb70add2514981b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// This file was procedurally generated from the following sources:
// - src/arguments/args-trailing-comma-undefined.case
// - src/arguments/default/cls-decl-private-gen-meth-static.template
/*---
description: A trailing comma after undefined should not increase the arguments.length (class declaration private generator method)
esid: sec-argument-lists-runtime-semantics-argumentlistevaluation
features: [generators, class, class-static-methods-private]
flags: [generated]
info: |
    9.4.4 Arguments Exotic Objects

    Most ECMAScript functions make an arguments object available to their code. Depending upon the
    characteristics of the function definition, its arguments object is either an ordinary object
    or an arguments exotic object.


    Trailing comma in the arguments list

    Left-Hand-Side Expressions

    Arguments :
        ( )
        ( ArgumentList )
        ( ArgumentList , )

    ArgumentList :
        AssignmentExpression
        ... AssignmentExpression
        ArgumentList , AssignmentExpression
        ArgumentList , ... AssignmentExpression
---*/


var callCount = 0;
class C {
  static * #method() {
    assert.sameValue(arguments.length, 2);
    assert.sameValue(arguments[0], 42);
    assert.sameValue(arguments[1], undefined);
    callCount = callCount + 1;
  }

  static get method() {
    return this.#method;
  }
}

C.method(42, undefined,).next();

assert.sameValue(callCount, 1, 'method invoked exactly once');

reportCompare(0, 0);