Files
Kmake/deps/v8/test/js-perf-test/RegExp/base_replace_emoji_g.js

23 lines
337 KiB
JavaScript
Raw Normal View History

2026-05-26 23:36:42 -07:00
// Copyright 2024 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.
// This benchmark was ported from
// https://github.com/mathiasbynens/string-prototype-replace-regexp-benchmark.
d8.file.execute("base.js");
var string;
var re;
function Setup() {
re = /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDF
string = 'U+0023 U+20E3 \u2192 #\u20E3\nU+0023 U+FE0F U+20E3 \u2192 #\uFE0F\u20E3\nU+002A U+20E3 \u2192 *\u20E3\nU+002A U+FE0F U+20E3 \u2192 *\uFE0F\u20E3\nU+0030 U+20E3 \u2192 0\u20E3\nU+0030 U+FE0F U+20E3 \u2192 0\uFE0F\u20E3\nU+0031 U+20E3 \u2192 1\u20E3\nU+0031 U+FE0F U+20E3 \u2192 1\uFE0F\u20E3\nU+0032 U+20E3 \u2192 2\u20E3\nU+0032 U+FE0F U+20E3 \u2192 2\uFE0F\u20E3\nU+0033 U+20E3 \u2192 3\u20E3\nU+0033 U+FE0F U+20E3 \u2192 3\uFE0F\u20E3\nU+0034 U+20E3 \u2192 4\u20E3\nU+0034 U+FE0F U+20E3 \u2192 4\uFE0F\u20E3\nU+0035 U+20E3 \u2192 5\u20E3\nU+0035 U+FE0F U+20E3 \u2192 5\uFE0F\u20E3\nU+0036 U+20E3 \u2192 6\u20E3\nU+0036 U+FE0F U+20E3 \u2192 6\uFE0F\u20E3\nU+0037 U+20E3 \u2192 7\u20E3\nU+0037 U+FE0F U+20E3 \u2192 7\uFE0F\u20E3\nU+0038 U+20E3 \u2192 8\u20E3\nU+0038 U+FE0F U+20E3 \u2192 8\uFE0F\u20E3\nU+0039 U+20E3 \u2192 9\u20E3\nU+0039 U+FE0F U+20E3 \u2192 9\uFE0F\u20E3\nU+00A9 \u2192 \xA9\nU+00A9 U+FE0F \u2192 \xA9\uFE0F\nU+00AE \u2192 \xAE\nU+00AE U+FE0F \u2192 \xAE\uFE0F\nU+203C \u2192 \u203C\nU+203C U+FE0F \u2192 \u203C\uFE0F\nU+2049 \u2192 \u2049\nU+2049 U+FE0F \u2192 \u2049\uFE0F\nU+2122 \u2192 \u2122\nU+2122 U+FE0F \u2192 \u2122\uFE0F\nU+2139 \u2192 \u2139\nU+2139 U+FE0F \u2192 \u2139\uFE0F\nU+2194 \u2192 \u2194\nU+2194 U+FE0F \u2192 \u2194\uFE0F\nU+2195 \u2192 \u2195\nU+2195 U+FE0F \u2192 \u2195\uFE0F\nU+2196 \u2192 \u2196\nU+2196 U+FE0F \u2192 \u2196\uFE0F\nU+2197 \u2192 \u2197\nU+2197 U+FE0F \u2192 \u2197\uFE0F\nU+2198 \u2192 \u2198\nU+2198 U+FE0F \u2192 \u2198\uFE0F\nU+2199 \u2192 \u2199\nU+2199 U+FE0F \u2192 \u2199\uFE0F\nU+21A9 \u2192 \u21A9\nU+21A9 U+FE0F \u2192 \u21A9\uFE0F\nU+21AA \u2192 \u21AA\nU+21AA U+FE0F \u2192 \u21AA\uFE0F\nU+231A \u2192 \u231A\nU+231A U+FE0F \u2192 \u231A\uFE0F\nU+231B \u2192 \u231B\nU+231B U+FE0F \u2192 \u231B\uFE0F\nU+2328 \u2192 \u2328\nU+2328 U+FE0F \u2192 \u2328\uFE0F\nU+23CF \u2192 \u23CF\nU+23CF U+FE0F \u2192 \u23CF\uFE0F\nU+23E9 \u2192 \u23E9\nU+23EA \u2192 \u23EA\nU+23EB \u2192 \u23EB\nU+23EC \u2192 \u23EC\nU+23ED \u2192 \u23ED\nU+23ED U+FE0F \u2192 \u23ED\uFE0F\nU+23EE \u2192 \u23EE\nU+23EE U+FE0F \u2192 \u23EE\uFE0F\nU+23EF \u2192 \u23EF\nU+23EF U+FE0F \u2192 \u23EF\uFE0F\nU+23F0 \u2192 \u23F0\nU+23F1 \u2192 \u23F1\nU+23F1 U+FE0F \u2192 \u23F1\uFE0F\nU+23F2 \u2192 \u23F2\nU+23F2 U+FE0F \u2192 \u23F2\uFE0F\nU+23F3 \u2192 \u23F3\nU+23F8 \u2192 \u23F8\nU+23F8 U+FE0F \u2192 \u23F8\uFE0F\nU+23F9 \u2192 \u23F9\nU+23F9 U+FE0F \u2192 \u23F9\uFE0F\nU+23FA \u2192 \u23FA\nU+23FA U+FE0F \u2192 \u23FA\uFE0F\nU+24C2 \u2192 \u24C2\nU+24C2 U+FE0F \u2192 \u24C2\uFE0F\nU+25AA \u2192 \u25AA\nU+25AA U+FE0F \u2192 \u25AA\uFE0F\nU+25AB \u2192 \u25AB\nU+25AB U+FE0F \u2192 \u25AB\uFE0F\nU+25B6 \u2192 \u25B6\nU+25B6 U+FE0F \u2192 \u25B6\uFE0F\nU+25C0 \u2192 \u25C0\nU+25C0 U+FE0F \u2192 \u25C0\uFE0F\nU+25FB \u2192 \u25FB\nU+25FB U+FE0F \u2192 \u25FB\uFE0F\nU+25FC \u2192 \u25FC\nU+25FC U+FE0F \u2192 \u25FC\uFE0F\nU+25FD \u2192 \u25FD\nU+25FE \u2192 \u25FE\nU+25FE U+FE0F \u2192 \u25FE\uFE0F\nU+2600 \u2192 \u2600\nU+2600 U+FE0F \u2192 \u2600\uFE0F\nU+2601 \u2192 \u2601\nU+2601 U+FE0F \u2192 \u2601\uFE0F\nU+2602 \u2192 \u2602\nU+2602 U+FE0F \u2192 \u2602\uFE0F\nU+2603 \u2192 \u2603\nU+2603 U+FE0F \u2192 \u2603\uFE0F\nU+2604 \u2192 \u2604\nU+2604 U+FE0F \u2192 \u2604\uFE0F\nU+260E \u2192 \u260E\nU+260E U+FE0F \u2192 \u260E\uFE0F\nU+2611 \u2192 \u2611\nU+2611 U+FE0F \u2192 \u2611\uFE0F\nU+2614 \u2192 \u2614\nU+2614 U+FE0F \u2192 \u2614\uFE0F\nU+2615 \u2192 \u2615\nU+2615 U+FE0F \u2192 \u2615\uFE0F\nU+2618 \u2192 \u2618\nU+2618 U+FE0F \u2192 \u2618\uFE0F\nU+261D \u2192 \u261D\nU+261D U+1F3FB \u2192 \u261D\uD83C\uDFFB\nU+261D U+1F3FC \u2192 \u261D\uD83C\uDFFC\nU+261D U+1F3FD \u2192 \u261D\uD83C\uDFFD\nU+261D U+1F3FE \u2192 \u261D\uD83C\uDFFE\nU+261D U+1F3FF \u2192 \u261D\uD83C\uDFFF\nU+261D U+FE0F \u2192 \u261D\uFE0F\nU+2620 \u2192 \u2620\nU+2620 U+FE0F \u2192 \u2620\uFE0F\nU+2622 \u2192 \u2622\nU+2622 U+FE0F \u2192 \u2622\uFE0F\nU+2623 \u2192 \u2623\nU+2623 U+FE0F \u2192 \u2623\uFE0F\nU+2626 \u2192 \u2626\nU+2626 U+FE0F \u2192 \u2626\uFE0F\nU+262A \u2192 \u262A\nU+262A U+FE0F \u2192 \u262A\uFE0F\nU
}
function Run() {
string.replace(re, (match) => { return '_'; });
}
var benchmarks = [ [ Run, Setup ] ];