v8/test/mjsunit/regress/regress-641091.js
jgruber 4635572471 [regexp] Consider surrogate pairs when optimizing disjunctions
RationalizeConsecutiveAtoms optimizes ab|ac|az to a(?:b|c|d).
Ensure that this optimization does not split surrogate pairs in unicode
mode.

BUG=chromium:641091

Review-Url: https://codereview.chromium.org/2813893002
Cr-Commit-Position: refs/heads/master@{#44599}
2017-04-12 09:09:12 +00:00

16 lines
663 B
JavaScript

// Copyright 2017 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.
assertEquals(["🍤", "🍤"],
'🍤🍦🍋ππ🍋🍦🍤'.match(/🍤/ug));
assertEquals(["🍤", "🍦", "🍦", "🍤"],
'🍤🍦🍋ππ🍋🍦🍤'.match(/🍤|🍦/ug));
assertEquals(["🍤", "🍦", "🍋", "🍋", "🍦", "🍤"],
'🍤🍦🍋ππ🍋🍦🍤'.match(/🍤|🍦|🍋/ug));
assertEquals(["🍤", "🍦", "🍋", "π", "π", "🍋", "🍦", "🍤"],
'🍤🍦🍋ππ🍋🍦🍤'.match(/🍤|🍦|π|🍋/ug));