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

/*---
info: Correct interpretation of ENGLISH ALPHABET
es6id: 11.6
description: Check ENGLISH SMALL ALPHABET
---*/

var \u{61} = 1;
assert.sameValue(a, 1);

var \u{62} = 1;
assert.sameValue(b, 1);

var \u{63} = 1;
assert.sameValue(c, 1);

var \u{64} = 1;
assert.sameValue(d, 1);

var \u{65} = 1;
assert.sameValue(e, 1);

var \u{66} = 1;
assert.sameValue(f, 1);

var \u{67} = 1;
assert.sameValue(g, 1);

var \u{68} = 1;
assert.sameValue(h, 1);

var \u{69} = 1;
assert.sameValue(i, 1);

var \u{6A} = 1;
assert.sameValue(j, 1);

var \u{6B} = 1;
assert.sameValue(k, 1);

var \u{6C} = 1;
assert.sameValue(l, 1);

var \u{6D} = 1;
assert.sameValue(m, 1);

var \u{6E} = 1;
assert.sameValue(n, 1);

var \u{6F} = 1;
assert.sameValue(o, 1);

var \u{70} = 1;
assert.sameValue(p, 1);

var \u{71} = 1;
assert.sameValue(q, 1);

var \u{72} = 1;
assert.sameValue(r, 1);

var \u{73} = 1;
assert.sameValue(s, 1);

var \u{74} = 1;
assert.sameValue(t, 1);

var \u{75} = 1;
assert.sameValue(u, 1);

var \u{76} = 1;
assert.sameValue(v, 1);

var \u{77} = 1;
assert.sameValue(w, 1);

var \u{78} = 1;
assert.sameValue(x, 1);

var \u{79} = 1;
assert.sameValue(y, 1);

var \u{7A} = 1;
assert.sameValue(z, 1);
