[ 'constructor', 'step1', 'step2' ]
constructor []
[class Scenario1 extends SubScenario1] {
  [Symbol(Symbol.metadata)]: Object <[Object: null prototype] {}> {}
} constructor
step1 [ 'constructor' ]
[AsyncFunction: step1] step1
step2 [ 'constructor', 'step1' ]
[AsyncFunction: step2] step2
[ 'constructor', 'step0' ]
constructor [ 'constructor', 'step1', 'step2' ]
[ 'constructor' ]
constructor [ 'constructor', 'step1', 'step2' ]
1
2
[ 'constructor', 'step1', 'step2' ]
constructor []
[class Scenario2 extends Scenario] {
  [Symbol(Symbol.metadata)]: [Object: null prototype] {}
} constructor
step1 [ 'constructor' ]
[AsyncFunction: step1] step1
step2 [ 'constructor', 'step1' ]
[AsyncFunction: step2] step2
[ 'constructor' ]
constructor [ 'constructor', 'step1', 'step2' ]
