// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

var first = 4;
let second = 5;
const third = 6;
class fourth {}
function fifth() {}
function* sixth() {}

var seventh = 7;
let eighth = 8;
const ninth = 9;
class tenth {}
function eleventh() {}
function *twelfth() {}
