Mathias Bynens 85d595effa Update RegExp Unicode property escape tests per Unicode 11
Emoji data is now published as part of the Unicode standard itself, and thus follows the same version number.

Ref. f302c60c84.
Ref. https://github.com/tc39/ecma262/pull/1218.
Ref. https://github.com/tc39/ecma262/issues/1219.
2018-06-07 15:32:41 +02:00

28 lines
1002 B
JavaScript

// Copyright 2017 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Unicode property escapes must be supported in character classes.
esid: sec-static-semantics-unicodematchproperty-p
features: [regexp-unicode-property-escapes]
---*/
/[\p{Hex}]/u;
assert.throws(
SyntaxError,
() => /[\p{Hex}-\uFFFF]/u,
// See step 1 of https://tc39.github.io/ecma262/#sec-runtime-semantics-characterrange-abstract-operation.
'property escape at start of character class range should throw if it expands to multiple characters'
);
assert.throws.early(SyntaxError, "/[\\p{}]/u");
assert.throws.early(SyntaxError, "/[\\p{invalid}]/u");
assert.throws.early(SyntaxError, "/[\\p{]/u");
assert.throws.early(SyntaxError, "/[\\p{]}/u");
assert.throws.early(SyntaxError, "/[\\p}]/u");
assert(
/[\p{Hex}\P{Hex}]/u.test('\u{1D306}'),
'multiple property escapes in a single character class should be supported'
);