// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// @assertion The break statement consists of the reserved word break and an
/// optional label.
/// breakStatement:
///   break identifier? ';'
/// ;
/// @description Checks that a break statement can reference its own label.
/// @author kaigorodov



main() {
  try {
	L: break L;
  } catch (x) {}
}
