forked from LeenkxTeam/Kmake
23 lines
329 KiB
JavaScript
23 lines
329 KiB
JavaScript
|
|
// 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 = /\p{RGI_Emoji}|[#*0-9]\u20E3|[\u231A\u231B\u25FE\u2614\u2615\u2648-\u2653\u267F\u26AA\u26BD\u26BE\u26C4\u26F2\u26F3\u26F5\u26FA\u2757\u2B1B\u2B1C\u2B55\u{1F004}]\uFE0F|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}](?:[\uFE0F\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642]\uFE0F?)?|[\u{1F3C3}\u{1F6B6}\u{1F9CE}][\u{1F3FB}-\u{1F3FF}]?\u200D(?:[\u2640\u2642](?:\uFE0F?\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?)|[\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F470}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}\u{1F6B5}\u{1F926}\u{1F935}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]?\u200D[\u2640\u2642]|[\u{1F46F}\u{1F9DE}\u{1F9DF}]\u200D[\u2640\u2642]|[\u{1F48F}\u{1F491}\u{1F91D}][\u{1F3FB}-\u{1F3FF}]|[\u{1FAC3}-\u{1FAC5}\u{1FAF0}\u{1FAF2}-\u{1FAF8}][\u{1F3FB}-\u{1F3FF}]?|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270C\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F202}\u{1F237}\u{1F321}\u{1F324}-\u{1F32C}\u{1F336}\u{1F37D}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}\u{1F39F}\u{1F3CD}\u{1F3CE}\u{1F3D4}-\u{1F3DF}\u{1F3F5}\u{1F3F7}\u{1F43F}\u{1F4FD}\u{1F549}\u{1F54A}\u{1F56F}\u{1F570}\u{1F573}\u{1F574}\u{1F576}-\u{1F579}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}\u{1F6CB}\u{1F6CD}-\u{1F6CF}\u{1F6DC}-\u{1F6E5}\u{1F6E9}\u{1F6F0}\u{1F6F3}\u{1F7F0}\u{1F979}\u{1F9CC}\u{1FA75}-\u{1FA77}\u{1FA7B}\u{1FA7C}\u{1FA87}\u{1FA88}\u{1FAA9}-\u{1FAAF}\u{1FAB7}-\u{1FABD}\u{1FABF}\u{1FACE}\u{1FACF}\u{1FAD7}-\u{1FADB}\u{1FAE0}-\u{1FAE8}]|\u26D3(?:\uFE0F?\u200D\u{1F4A5})?|\u2764(?:\uFE0F?\u200D[\u{1F525}\u{1FA79}])?|\u{1F344}\u200D\u{1F7EB}|\u{1F34B}\u200D\u{1F7E9}|\u{1F3F3}(?:\u200D(?:\u26A7\uFE0F?|\u{1F308})|\uFE0F\u200D\u26A7)?|\u{1F3F4}\u200D\u2620|\u{1F426}\u200D[\u2B1B\u{1F525}]|\u{1F43B}\u200D\u2744|\u{1F441}(?:\u200D\u{1F5E8}\uFE0F?|\uFE0F\u200D\u{1F5E8})?|\u{1F468}(?:[\u{1F3FB}-\u{1F3FF}]\u200D(?:[\u{1F9AF}\u{1F9BC}\u{1F9BD}]\u200D\u27A1\uFE0F?|[\u2695\u2696\u2708]|\u2764\uFE0F?\u200D(?:\u{1F48B}\u200D)?\u{1F468}[\u{1F3FB}-\u{1F3FF}])|\u200D(?:[\u{1F9AF}\u{1F9BC}\u{1F9BD}]\u200D\u27A1\uFE0F?|[\u2695\u2696\u2708]|\u2764\u200D(?:\u{1F48B}\u200D)?\u{1F468}))|\u{1F469}(?:[\u{1F3FB}-\u{1F3FF}]\u200D(?:[\u{1F9AF}\u{1F9BC}\u{1F9BD}]\u200D\u27A1\uFE0F?|[\u2695\u2696\u2708]|\u2764\uFE0F?\u200D(?:[\u{1F468}\u{1F469}]|\u{1F48B}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FF}])|\u200D(?:[\u{1F9AF}\u{1F9BC}\u{1F9BD}]\u200D\u27A1\uFE0F?|[\u2695\u2696\u2708]|\u2764\u200D(?:\u{1F48B}\u200D)?[\u{1F468}\u{1F469}]))|\u{1F62E}\u200D\u{1F4A8}|\u{1F635}\u200D\u{1F4AB}|\u{1F636}\u200D\u{1F32B}\uFE0F?|\u{1F642}\u200D[\u2194\u2195]\uFE0F?|\u{1F93C}(?:[\u{1F3FB}-\u{1F3FF}]|\u200D[\u2640\u2642])|\u{1F9D1}(?:\u200D(?:[\u{1F9AF}\u{1F9BC}\u{1F9BD}]\u200D\u27A1\uFE0F?|[\u2695\u2696\u2708]|\u{1F9D1}\u200D\u{1F9D2}(?:\u200D\u{1F9D2})?|\u{1F9D2}(?:\u200D\u{1F9D2})?)|\u{1F3FB}\u200D(?:[\u{1F9AF}\u{1F9BC}\u{1F9BD}]\u200D\u27A1\uFE0F?|[\u2695\u2696\u2708]|\u2764\uFE0F?\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}[\u{1F3FC}-\u{1F3FF}])|\u{1F3FC}\u200D(?:[\u{1F9AF}\u{1F9BC}\u{1F9BD}]\u200D\u27A1\uFE0F?|[\u2695\u2696\u2708]|\u2764\uFE0F?\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}])|\u{1F3FD}\u200D(?:[\u{1F9AF}\u{1F9BC}\u{1F9BD}]\u200D\u27A1\uFE0F?|[\u2695\u2696\u2708]|\u2764\uFE0F?\u200D(?:\u{1F48B}\u200D)?\u{1F9D1}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}])|\u{1F3FE}\u200D(?:[\u{1F9AF}\
|
||
|
|
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.replaceAll(re, (match) => { return '_'; });
|
||
|
|
}
|
||
|
|
|
||
|
|
var benchmarks = [ [ Run, Setup ] ];
|