# Copyright 2014 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
*%(basename)s:9: SyntaxError: Class constructor may not be a generator
  *constructor() {}
   ^^^^^^^^^^^
SyntaxError: Class constructor may not be a generator
