// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/**
 * 0xG is incorrect
 *
 * @path ch07/7.8/7.8.3/S7.8.3_A6.2_T1.js
 * @description Checking if execution of "0xG" fails
 * @negative
 */

//CHECK#1
0xG

