// Copyright 2020 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
author: Mathias Bynens
esid: sec-names-and-keywords
description: |
  Test that Unicode v12.0.0 ID_Continue characters are accepted as
  identifier start characters in escaped form, i.e.
  - \uXXXX or \u{XXXX} for BMP symbols
  - \u{XXXXXX} for astral symbols
info: |
  Generated by https://github.com/mathiasbynens/caniunicode
---*/

var _\u0EBA\u{119D1}\u{119D2}\u{119D3}\u{119D4}\u{119D5}\u{119D6}\u{119D7}\u{119DA}\u{119DB}\u{119DC}\u{119DD}\u{119DE}\u{119DF}\u{119E0}\u{119E4}\u{16F4F}\u{16F7F}\u{16F80}\u{16F81}\u{16F82}\u{16F83}\u{16F84}\u{16F85}\u{16F86}\u{16F87}\u{1E130}\u{1E131}\u{1E132}\u{1E133}\u{1E134}\u{1E135}\u{1E136}\u{1E140}\u{1E141}\u{1E142}\u{1E143}\u{1E144}\u{1E145}\u{1E146}\u{1E147}\u{1E148}\u{1E149}\u{1E2EC}\u{1E2ED}\u{1E2EE}\u{1E2EF}\u{1E2F0}\u{1E2F1}\u{1E2F2}\u{1E2F3}\u{1E2F4}\u{1E2F5}\u{1E2F6}\u{1E2F7}\u{1E2F8}\u{1E2F9};
