// 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 RUSSIAN ALPHABET
es6id: 11.6
description: Check RUSSIAN CAPITAL ALPHABET
---*/

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

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

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

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

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

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

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

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

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

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

var \u{41A} = 1;
assert.sameValue(К, 1);

var \u{41B} = 1;
assert.sameValue(Л, 1);

var \u{41C} = 1;
assert.sameValue(М, 1);

var \u{41D} = 1;
assert.sameValue(Н, 1);

var \u{41E} = 1;
assert.sameValue(О, 1);

var \u{41F} = 1;
assert.sameValue(П, 1);

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

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

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

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

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

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

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

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

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

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

var \u{42A} = 1;
assert.sameValue(Ъ, 1);

var \u{42B} = 1;
assert.sameValue(Ы, 1);

var \u{42C} = 1;
assert.sameValue(Ь, 1);

var \u{42D} = 1;
assert.sameValue(Э, 1);

var \u{42E} = 1;
assert.sameValue(Ю, 1);

var \u{42F} = 1;
assert.sameValue(Я, 1);

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