transformClassExpression(tree) {
    let {
      elements,
      initStaticVars,
    } = this.transformClassElements_(tree);

    let superClass = this.transformAny(tree.superClass);
    let classExpression = new ClassExpression(tree.location, tree.name,
        superClass, elements, tree.annotations, tree.typeParameters);

    if (initStaticVars.length === 0) {
      return classExpression;
    }

    this.pushTempScope();
    let id = this.getTempIdentifier();
    let idToken = createIdentifierToken(id);
    let idExpression = new IdentifierExpression(idToken.location, idToken);
    let statements = [
      parseStatement `let ${id} = ${classExpression}`,
      ...createStaticInitializerStatements(idToken, initStaticVars),
      new ReturnStatement(null, idExpression)
    ];
    let body = createFunctionBody(statements);
    this.popTempScope();

    return createImmediatelyInvokedFunctionExpression(body);
  }
Transforms a single class expression

@param {ClassExpression} tree
@return {ParseTree}