// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Flags: --harmony-regexp-sequence

const re = /\p{Emoji_Flag_Sequence}/u;

assertTrue(re.test('\u{1F1E6}\u{1F1E8}'));
assertTrue(re.test('\u{1F1FF}\u{1F1FC}'));
assertTrue(re.test('\u{1F1E6}\u{1F1EA}'));
assertTrue(re.test('\u{1F1E6}\u{1F1EB}'));
assertTrue(re.test('\u{1F1E6}\u{1F1EC}'));
assertTrue(re.test('\u{1F1E6}\u{1F1EE}'));
assertTrue(re.test('\u{1F1E6}\u{1F1F1}'));
assertTrue(re.test('\u{1F1E6}\u{1F1F2}'));
assertTrue(re.test('\u{1F1E6}\u{1F1F4}'));
assertTrue(re.test('\u{1F1E6}\u{1F1F6}'));
assertTrue(re.test('\u{1F1E6}\u{1F1F7}'));
assertTrue(re.test('\u{1F1E6}\u{1F1F8}'));
assertTrue(re.test('\u{1F1E6}\u{1F1F9}'));
assertTrue(re.test('\u{1F1E6}\u{1F1FA}'));
assertTrue(re.test('\u{1F1E6}\u{1F1FC}'));
assertTrue(re.test('\u{1F1E6}\u{1F1FD}'));
assertTrue(re.test('\u{1F1E6}\u{1F1FF}'));
assertTrue(re.test('\u{1F1E7}\u{1F1E6}'));
assertTrue(re.test('\u{1F1E7}\u{1F1E7}'));
assertTrue(re.test('\u{1F1E7}\u{1F1E9}'));
assertTrue(re.test('\u{1F1E7}\u{1F1EA}'));
assertTrue(re.test('\u{1F1E7}\u{1F1EB}'));
assertTrue(re.test('\u{1F1E7}\u{1F1EC}'));
assertTrue(re.test('\u{1F1E7}\u{1F1ED}'));
assertTrue(re.test('\u{1F1E7}\u{1F1EE}'));
assertTrue(re.test('\u{1F1E7}\u{1F1EF}'));
assertTrue(re.test('\u{1F1E7}\u{1F1F1}'));
assertTrue(re.test('\u{1F1E7}\u{1F1F2}'));
assertTrue(re.test('\u{1F1E7}\u{1F1F3}'));
assertTrue(re.test('\u{1F1E7}\u{1F1F4}'));
assertTrue(re.test('\u{1F1E7}\u{1F1F6}'));
assertTrue(re.test('\u{1F1E7}\u{1F1F7}'));
assertTrue(re.test('\u{1F1E7}\u{1F1F8}'));
assertTrue(re.test('\u{1F1E7}\u{1F1F9}'));
assertTrue(re.test('\u{1F1E7}\u{1F1FB}'));
assertTrue(re.test('\u{1F1E7}\u{1F1FC}'));
assertTrue(re.test('\u{1F1E7}\u{1F1FE}'));
assertTrue(re.test('\u{1F1E7}\u{1F1FF}'));
assertTrue(re.test('\u{1F1E8}\u{1F1E6}'));
assertTrue(re.test('\u{1F1E8}\u{1F1E8}'));
assertTrue(re.test('\u{1F1E8}\u{1F1E9}'));
assertTrue(re.test('\u{1F1E8}\u{1F1EB}'));
assertTrue(re.test('\u{1F1E8}\u{1F1EC}'));
assertTrue(re.test('\u{1F1E8}\u{1F1ED}'));
assertTrue(re.test('\u{1F1E8}\u{1F1EE}'));
assertTrue(re.test('\u{1F1E8}\u{1F1F0}'));
assertTrue(re.test('\u{1F1E8}\u{1F1F1}'));
assertTrue(re.test('\u{1F1E8}\u{1F1F2}'));
assertTrue(re.test('\u{1F1E8}\u{1F1F3}'));
assertTrue(re.test('\u{1F1E8}\u{1F1F4}'));
assertTrue(re.test('\u{1F1E8}\u{1F1F5}'));
assertTrue(re.test('\u{1F1E8}\u{1F1F7}'));
assertTrue(re.test('\u{1F1E8}\u{1F1FA}'));
assertTrue(re.test('\u{1F1E8}\u{1F1FB}'));
assertTrue(re.test('\u{1F1E8}\u{1F1FC}'));
assertTrue(re.test('\u{1F1E8}\u{1F1FD}'));
assertTrue(re.test('\u{1F1E8}\u{1F1FE}'));
assertTrue(re.test('\u{1F1E8}\u{1F1FF}'));
assertTrue(re.test('\u{1F1E9}\u{1F1EA}'));
assertTrue(re.test('\u{1F1E9}\u{1F1EC}'));
assertTrue(re.test('\u{1F1E9}\u{1F1EF}'));
assertTrue(re.test('\u{1F1E9}\u{1F1F0}'));
assertTrue(re.test('\u{1F1E9}\u{1F1F2}'));
assertTrue(re.test('\u{1F1E9}\u{1F1F4}'));
assertTrue(re.test('\u{1F1E9}\u{1F1FF}'));
assertTrue(re.test('\u{1F1EA}\u{1F1E6}'));
assertTrue(re.test('\u{1F1EA}\u{1F1E8}'));
assertTrue(re.test('\u{1F1EA}\u{1F1EA}'));
assertTrue(re.test('\u{1F1EA}\u{1F1EC}'));
assertTrue(re.test('\u{1F1EA}\u{1F1ED}'));
assertTrue(re.test('\u{1F1EA}\u{1F1F7}'));
assertTrue(re.test('\u{1F1EA}\u{1F1F8}'));
assertTrue(re.test('\u{1F1EA}\u{1F1F9}'));
assertTrue(re.test('\u{1F1EA}\u{1F1FA}'));
assertTrue(re.test('\u{1F1EB}\u{1F1EE}'));
assertTrue(re.test('\u{1F1EB}\u{1F1EF}'));
assertTrue(re.test('\u{1F1EB}\u{1F1F0}'));
assertTrue(re.test('\u{1F1EB}\u{1F1F2}'));
assertTrue(re.test('\u{1F1EB}\u{1F1F4}'));
assertTrue(re.test('\u{1F1EB}\u{1F1F7}'));
assertTrue(re.test('\u{1F1EC}\u{1F1E6}'));
assertTrue(re.test('\u{1F1EC}\u{1F1E7}'));
assertTrue(re.test('\u{1F1EC}\u{1F1E9}'));
assertTrue(re.test('\u{1F1EC}\u{1F1EA}'));
assertTrue(re.test('\u{1F1EC}\u{1F1EB}'));
assertTrue(re.test('\u{1F1EC}\u{1F1EC}'));
assertTrue(re.test('\u{1F1EC}\u{1F1ED}'));
assertTrue(re.test('\u{1F1EC}\u{1F1EE}'));
assertTrue(re.test('\u{1F1EC}\u{1F1F1}'));
assertTrue(re.test('\u{1F1EC}\u{1F1F2}'));
assertTrue(re.test('\u{1F1EC}\u{1F1F3}'));
assertTrue(re.test('\u{1F1EC}\u{1F1F5}'));
assertTrue(re.test('\u{1F1EC}\u{1F1F6}'));
assertTrue(re.test('\u{1F1EC}\u{1F1F7}'));
assertTrue(re.test('\u{1F1EC}\u{1F1F8}'));
assertTrue(re.test('\u{1F1EC}\u{1F1F9}'));
assertTrue(re.test('\u{1F1EC}\u{1F1FA}'));
assertTrue(re.test('\u{1F1EC}\u{1F1FC}'));
assertTrue(re.test('\u{1F1EC}\u{1F1FE}'));
assertTrue(re.test('\u{1F1ED}\u{1F1F0}'));
assertTrue(re.test('\u{1F1ED}\u{1F1F2}'));
assertTrue(re.test('\u{1F1ED}\u{1F1F3}'));
assertTrue(re.test('\u{1F1ED}\u{1F1F7}'));
assertTrue(re.test('\u{1F1ED}\u{1F1F9}'));
assertTrue(re.test('\u{1F1ED}\u{1F1FA}'));
assertTrue(re.test('\u{1F1EE}\u{1F1E8}'));
assertTrue(re.test('\u{1F1EE}\u{1F1E9}'));
assertTrue(re.test('\u{1F1EE}\u{1F1EA}'));
assertTrue(re.test('\u{1F1EE}\u{1F1F1}'));
assertTrue(re.test('\u{1F1EE}\u{1F1F2}'));
assertTrue(re.test('\u{1F1EE}\u{1F1F3}'));
assertTrue(re.test('\u{1F1EE}\u{1F1F4}'));
assertTrue(re.test('\u{1F1EE}\u{1F1F6}'));
assertTrue(re.test('\u{1F1EE}\u{1F1F7}'));
assertTrue(re.test('\u{1F1EE}\u{1F1F8}'));
assertTrue(re.test('\u{1F1EE}\u{1F1F9}'));
assertTrue(re.test('\u{1F1EF}\u{1F1EA}'));
assertTrue(re.test('\u{1F1EF}\u{1F1F2}'));
assertTrue(re.test('\u{1F1EF}\u{1F1F4}'));
assertTrue(re.test('\u{1F1EF}\u{1F1F5}'));
assertTrue(re.test('\u{1F1F0}\u{1F1EA}'));
assertTrue(re.test('\u{1F1F0}\u{1F1EC}'));
assertTrue(re.test('\u{1F1F0}\u{1F1ED}'));
assertTrue(re.test('\u{1F1F0}\u{1F1EE}'));
assertTrue(re.test('\u{1F1F0}\u{1F1F2}'));
assertTrue(re.test('\u{1F1F0}\u{1F1F3}'));
assertTrue(re.test('\u{1F1F0}\u{1F1F5}'));
assertTrue(re.test('\u{1F1F0}\u{1F1F7}'));
assertTrue(re.test('\u{1F1F0}\u{1F1FC}'));
assertTrue(re.test('\u{1F1E6}\u{1F1E9}'));
assertTrue(re.test('\u{1F1F0}\u{1F1FF}'));
assertTrue(re.test('\u{1F1F1}\u{1F1E6}'));
assertTrue(re.test('\u{1F1F1}\u{1F1E7}'));
assertTrue(re.test('\u{1F1F1}\u{1F1E8}'));
assertTrue(re.test('\u{1F1F1}\u{1F1EE}'));
assertTrue(re.test('\u{1F1F1}\u{1F1F0}'));
assertTrue(re.test('\u{1F1F1}\u{1F1F7}'));
assertTrue(re.test('\u{1F1F1}\u{1F1F8}'));
assertTrue(re.test('\u{1F1F1}\u{1F1F9}'));
assertTrue(re.test('\u{1F1F1}\u{1F1FA}'));
assertTrue(re.test('\u{1F1F1}\u{1F1FB}'));
assertTrue(re.test('\u{1F1F1}\u{1F1FE}'));
assertTrue(re.test('\u{1F1F2}\u{1F1E6}'));
assertTrue(re.test('\u{1F1F2}\u{1F1E8}'));
assertTrue(re.test('\u{1F1F2}\u{1F1E9}'));
assertTrue(re.test('\u{1F1F2}\u{1F1EA}'));
assertTrue(re.test('\u{1F1F2}\u{1F1EB}'));
assertTrue(re.test('\u{1F1F2}\u{1F1EC}'));
assertTrue(re.test('\u{1F1F2}\u{1F1ED}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F0}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F1}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F2}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F3}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F4}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F5}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F6}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F7}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F8}'));
assertTrue(re.test('\u{1F1F2}\u{1F1F9}'));
assertTrue(re.test('\u{1F1F2}\u{1F1FA}'));
assertTrue(re.test('\u{1F1F2}\u{1F1FB}'));
assertTrue(re.test('\u{1F1F2}\u{1F1FC}'));
assertTrue(re.test('\u{1F1F2}\u{1F1FD}'));
assertTrue(re.test('\u{1F1F2}\u{1F1FE}'));
assertTrue(re.test('\u{1F1F2}\u{1F1FF}'));
assertTrue(re.test('\u{1F1F3}\u{1F1E6}'));
assertTrue(re.test('\u{1F1F3}\u{1F1E8}'));
assertTrue(re.test('\u{1F1F3}\u{1F1EA}'));
assertTrue(re.test('\u{1F1F3}\u{1F1EB}'));
assertTrue(re.test('\u{1F1F3}\u{1F1EC}'));
assertTrue(re.test('\u{1F1F3}\u{1F1EE}'));
assertTrue(re.test('\u{1F1F3}\u{1F1F1}'));
assertTrue(re.test('\u{1F1F3}\u{1F1F4}'));
assertTrue(re.test('\u{1F1F3}\u{1F1F5}'));
assertTrue(re.test('\u{1F1F3}\u{1F1F7}'));
assertTrue(re.test('\u{1F1F3}\u{1F1FA}'));
assertTrue(re.test('\u{1F1F3}\u{1F1FF}'));
assertTrue(re.test('\u{1F1F4}\u{1F1F2}'));
assertTrue(re.test('\u{1F1F5}\u{1F1E6}'));
assertTrue(re.test('\u{1F1F5}\u{1F1EA}'));
assertTrue(re.test('\u{1F1F5}\u{1F1EB}'));
assertTrue(re.test('\u{1F1F5}\u{1F1EC}'));
assertTrue(re.test('\u{1F1F5}\u{1F1ED}'));
assertTrue(re.test('\u{1F1F5}\u{1F1F0}'));
assertTrue(re.test('\u{1F1F5}\u{1F1F1}'));
assertTrue(re.test('\u{1F1F5}\u{1F1F2}'));
assertTrue(re.test('\u{1F1F5}\u{1F1F3}'));
assertTrue(re.test('\u{1F1F5}\u{1F1F7}'));
assertTrue(re.test('\u{1F1F5}\u{1F1F8}'));
assertTrue(re.test('\u{1F1F5}\u{1F1F9}'));
assertTrue(re.test('\u{1F1F5}\u{1F1FC}'));
assertTrue(re.test('\u{1F1F5}\u{1F1FE}'));
assertTrue(re.test('\u{1F1F6}\u{1F1E6}'));
assertTrue(re.test('\u{1F1F7}\u{1F1EA}'));
assertTrue(re.test('\u{1F1F7}\u{1F1F4}'));
assertTrue(re.test('\u{1F1F7}\u{1F1F8}'));
assertTrue(re.test('\u{1F1F7}\u{1F1FA}'));
assertTrue(re.test('\u{1F1F7}\u{1F1FC}'));
assertTrue(re.test('\u{1F1F8}\u{1F1E6}'));
assertTrue(re.test('\u{1F1F8}\u{1F1E7}'));
assertTrue(re.test('\u{1F1F8}\u{1F1E8}'));
assertTrue(re.test('\u{1F1F8}\u{1F1E9}'));
assertTrue(re.test('\u{1F1F8}\u{1F1EA}'));
assertTrue(re.test('\u{1F1F8}\u{1F1EC}'));
assertTrue(re.test('\u{1F1F8}\u{1F1ED}'));
assertTrue(re.test('\u{1F1F8}\u{1F1EE}'));
assertTrue(re.test('\u{1F1F8}\u{1F1EF}'));
assertTrue(re.test('\u{1F1F8}\u{1F1F0}'));
assertTrue(re.test('\u{1F1F8}\u{1F1F1}'));
assertTrue(re.test('\u{1F1F8}\u{1F1F2}'));
assertTrue(re.test('\u{1F1F8}\u{1F1F3}'));
assertTrue(re.test('\u{1F1F8}\u{1F1F4}'));
assertTrue(re.test('\u{1F1F8}\u{1F1F7}'));
assertTrue(re.test('\u{1F1F8}\u{1F1F8}'));
assertTrue(re.test('\u{1F1F8}\u{1F1F9}'));
assertTrue(re.test('\u{1F1F8}\u{1F1FB}'));
assertTrue(re.test('\u{1F1F8}\u{1F1FD}'));
assertTrue(re.test('\u{1F1F8}\u{1F1FE}'));
assertTrue(re.test('\u{1F1F8}\u{1F1FF}'));
assertTrue(re.test('\u{1F1F9}\u{1F1E6}'));
assertTrue(re.test('\u{1F1F9}\u{1F1E8}'));
assertTrue(re.test('\u{1F1F9}\u{1F1E9}'));
assertTrue(re.test('\u{1F1F9}\u{1F1EB}'));
assertTrue(re.test('\u{1F1F9}\u{1F1EC}'));
assertTrue(re.test('\u{1F1F9}\u{1F1ED}'));
assertTrue(re.test('\u{1F1F9}\u{1F1EF}'));
assertTrue(re.test('\u{1F1F9}\u{1F1F0}'));
assertTrue(re.test('\u{1F1F9}\u{1F1F1}'));
assertTrue(re.test('\u{1F1F9}\u{1F1F2}'));
assertTrue(re.test('\u{1F1F9}\u{1F1F3}'));
assertTrue(re.test('\u{1F1F9}\u{1F1F4}'));
assertTrue(re.test('\u{1F1F9}\u{1F1F7}'));
assertTrue(re.test('\u{1F1F9}\u{1F1F9}'));
assertTrue(re.test('\u{1F1F9}\u{1F1FB}'));
assertTrue(re.test('\u{1F1F9}\u{1F1FC}'));
assertTrue(re.test('\u{1F1F9}\u{1F1FF}'));
assertTrue(re.test('\u{1F1FA}\u{1F1E6}'));
assertTrue(re.test('\u{1F1FA}\u{1F1EC}'));
assertTrue(re.test('\u{1F1FA}\u{1F1F2}'));
assertTrue(re.test('\u{1F1FA}\u{1F1F3}'));
assertTrue(re.test('\u{1F1FA}\u{1F1F8}'));
assertTrue(re.test('\u{1F1FA}\u{1F1FE}'));
assertTrue(re.test('\u{1F1FA}\u{1F1FF}'));
assertTrue(re.test('\u{1F1FB}\u{1F1E6}'));
assertTrue(re.test('\u{1F1FB}\u{1F1E8}'));
assertTrue(re.test('\u{1F1FB}\u{1F1EA}'));
assertTrue(re.test('\u{1F1FB}\u{1F1EC}'));
assertTrue(re.test('\u{1F1FB}\u{1F1EE}'));
assertTrue(re.test('\u{1F1FB}\u{1F1F3}'));
assertTrue(re.test('\u{1F1FB}\u{1F1FA}'));
assertTrue(re.test('\u{1F1FC}\u{1F1EB}'));
assertTrue(re.test('\u{1F1FC}\u{1F1F8}'));
assertTrue(re.test('\u{1F1FD}\u{1F1F0}'));
assertTrue(re.test('\u{1F1FE}\u{1F1EA}'));
assertTrue(re.test('\u{1F1FE}\u{1F1F9}'));
assertTrue(re.test('\u{1F1FF}\u{1F1E6}'));
assertTrue(re.test('\u{1F1FF}\u{1F1F2}'));
assertTrue(re.test('\u{1F1F0}\u{1F1FE}'));
