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

/*---
info: "DecimalLiteral :: HexIntegerLiteral"
es5id: 7.8.3_A5.1_T2
description: "HexIntegerLiteral :: 0X Digit"
---*/

//CHECK#0
if (0X0 !== 0) {
  $ERROR('#0: 0X0 === 0');
}

//CHECK#1
if (0X1 !== 1) {
  $ERROR('#1: 0X1 === 1');
}

//CHECK#2
if (0X2 !== 2) {
  $ERROR('#2: 0X2 === 2');
}

//CHECK#3
if (0X3 !== 3) {
  $ERROR('#3: 0X3 === 3');
}

//CHECK#4
if (0X4 !== 4) {
  $ERROR('#4: 0X4 === 4');
}

//CHECK#5
if (0X5 !== 5) {
  $ERROR('#5: 0X5 === 5');
}

//CHECK#6
if (0X6 !== 6) {
  $ERROR('#6: 0X6 === 6');
}

//CHECK#7
if (0X7 !== 7) {
  $ERROR('#7: 0X7 === 7');
}

//CHECK#8
if (0X8 !== 8) {
  $ERROR('#8: 0X8 === 8');
}

//CHECK#9
if (0X9 !== 9) {
  $ERROR('#9: 0X9 === 9');
}

//CHECK#A
if (0XA !== 10) {
  $ERROR('#A: 0XA === 10');
}

//CHECK#B
if (0XB !== 11) {
  $ERROR('#B: 0XB === 11');
}

//CHECK#C
if (0XC !== 12) {
  $ERROR('#C: 0XC === 12');
}

//CHECK#D
if (0XD !== 13) {
  $ERROR('#D: 0XD === 13');
}

//CHECK#E
if (0XE !== 14) {
  $ERROR('#E: 0XE === 14');
}

//CHECK#F
if (0XF !== 15) {
  $ERROR('#F: 0XF === 15');
}
