Program (script) @1:1
├─ ClassDeclaration @1:1
│  └─ ClassExpression "Base" @1:1
│     ├─ constructor
│     │  └─ FunctionExpression "Base" [strict] [uses-this] [uses-this-from-environment] @1:1
│     │     └─ body
│     │        └─ BlockStatement @1:1
│     └─ elements
│        └─ ClassMethod (getter) @1:1
│           ├─ StringLiteral "name" @2:9
│           └─ FunctionExpression "" [strict] @2:5
│              └─ body
│                 └─ FunctionBody @3:9
│                    └─ ReturnStatement @3:9
│                       └─ StringLiteral "base" @3:22
└─ ClassDeclaration @6:1
   └─ ClassExpression "Derived" @6:1
      ├─ super class
      │  └─ Identifier "Base" [global] @6:23
      ├─ constructor
      │  └─ FunctionExpression "Derived" [strict] [uses-this] [uses-this-from-environment] @6:1
      │     ├─ parameters
      │     │  └─ rest
      │     │     └─ Identifier "args" @6:1
      │     └─ body
      │        └─ BlockStatement @6:1
      │           └─ ReturnStatement @6:1
      │              └─ SuperCall @6:1
      │                 └─ Identifier "args" @6:1
      └─ elements
         └─ ClassMethod @6:1
            ├─ StringLiteral "method" @7:5
            └─ FunctionExpression "" [strict] [uses-this] [uses-this-from-environment] @7:5
               ├─ parameters
               │  └─ Identifier "x" [argument:0] @7:12
               │     └─ default
               │        └─ MemberExpression @7:21
               │           ├─ SuperExpression @7:16
               │           └─ Identifier "name" @7:22
               └─ body
                  └─ FunctionBody @8:9
                     └─ ReturnStatement @8:9
                        └─ Identifier "x" [argument:0] @8:16
