import { group } from "mitata"; import { bench, run } from "mitata"; import { encode as htmlEntityEncode } from "html-entities"; import { escape as heEscape } from "he"; var bunEscapeHTML = globalThis.escapeHTML || Bun.escapeHTML; const FIXTURE = require("fs") .readFileSync(import.meta.dir + "/_fixture.txt", "utf8") .split("") .map(a => { if (a.charCodeAt(0) > 127) { return "a"; } return a; }) .join(""); const FIXTURE_WITH_UNICODE = require("fs").readFileSync(import.meta.dir + "/_fixture.txt", "utf8"); // from react-dom: const matchHtmlRegExp = /["'&<>]/; function reactEscapeHtml(string) { const str = "" + string; const match = matchHtmlRegExp.exec(str); if (!match) { return str; } let escape; let html = ""; let index; let lastIndex = 0; for (index = match.index; index < str.length; index++) { switch (str.charCodeAt(index)) { case 34: // " escape = """; break; case 38: // & escape = "&"; break; case 39: // ' escape = "'"; // modified from escape-html; used to be ''' break; case 60: // < escape = "<"; break; case 62: // > escape = ">"; break; default: continue; } if (lastIndex !== index) { html += str.substring(lastIndex, index); } lastIndex = index + 1; html += escape; } return lastIndex !== index ? html + str.substring(lastIndex, index) : html; } // for (let input of [ // "", // `long string, nothing to escape... `.repeat(9999), // `long utf16 string, no esc 🤔🤔🤔🤔🤔` + "tex".repeat(4000), // `smol`, // // `medium string with `, // FIXTURE, // // "[unicode]" + FIXTURE_WITH_UNICODE, // ]) { // group( // { // summary: true, // name: // `"` + // input.substring(0, Math.min(input.length, 32)) + // `"` + // ` (${input.length} chars)`, // }, // () => { // bench(`ReactDOM.escapeHTML`, () => reactEscapeHtml(input)); // bench(`html-entities.encode`, () => htmlEntityEncode(input)); // bench(`he.escape`, () => heEscape(input)); // bench(`Bun.escapeHTML`, () => bunEscapeHTML(input)); // } // ); // } for (let input of [ `long string, nothing to escape... `.repeat(9999999 * 3), FIXTURE.repeat(8000), // "[unicode]" + FIXTURE_WITH_UNICODE, ]) { group( { summary: true, name: `"` + input.substring(0, Math.min(input.length, 32)) + `"` + ` (${new Intl.NumberFormat().format(input.length / 100_000_000_0)} GB)`, }, () => { // bench(`ReactDOM.escapeHTML`, () => reactEscapeHtml(input)); // bench(`html-entities.encode`, () => htmlEntityEncode(input)); // bench(`he.escape`, () => heEscape(input)); bench(`Bun.escapeHTML`, () => bunEscapeHTML(input)); }, ); } await run(); native-event Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/integration/snippets/code-simplification-neql-define.js (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2021-10-24finish Expr.alloc -> Expr.initGravatar Jarred Sumner 2-11/+13
2021-10-24[internal] only set source for test onceGravatar Jarred Sumner 1-0/+3
2021-10-24Mark all exported symbols as weak, always `zig fmt` the headers file to reduc...Gravatar Jarred Sumner 4-5/+10
2021-10-24[internal] Get source URLs in C++Gravatar Jarred Sumner 1-45/+0
2021-10-24^Gravatar Jarred Sumner 1-2/+2
2021-10-24Expr.alloc -> Expr.initGravatar Jarred Sumner 1-22/+16
2021-10-24Upgrade to latest peechyGravatar Jarred Sumner 7-4534/+4535
2021-10-24Fix build errorGravatar Jarred Sumner 1-4/+4
2021-10-24[JSON] Use a special lexer variant only for JSONGravatar Jarred Sumner 1-19/+13
2021-10-24[internal] Remove more unused code and move the `is_ascii_only` boolean to on...Gravatar Jarred Sumner 1-28/+7
2021-10-24[internal] Handle allocation failureGravatar Jarred Sumner 1-1/+1
2021-10-24[internal] Use isPresent() instead of checking slice lenGravatar Jarred Sumner 1-2/+2
2021-10-24:scissors: Dead codeGravatar Jarred Sumner 1-4/+0
2021-10-24[internal] Tweak build system to better support unit tests in ZigGravatar Jarred Sumner 11-19/+146
2021-10-24[picohttp] failing testGravatar Jarred Sumner 1-1/+2
2021-10-24[.env loader] Environment variables are strings.Gravatar Jarred Sumner 1-49/+37
2021-10-24[internal] more inliningGravatar Jarred Sumner 1-2/+2
2021-10-24[internal] :scissors: dead codeGravatar Jarred Sumner 1-1/+0
2021-10-24[internal] some inliningGravatar Jarred Sumner 1-21/+25
2021-10-24[internal] :snowflake::snowman:Gravatar Jarred Sumner 1-1/+19
2021-10-24[.env loader] Tests passGravatar Jarred Sumner 1-25/+50
2021-10-23Comment out WASM test since WASM is currently unsupportedGravatar Jarred Sumner 1-20/+21
2021-10-23Remove very outdated testsGravatar Jarred Sumner 1-128/+23
2021-10-23Remove unused feature flag `parallel_bun`Gravatar Jarred Sumner 1-62/+33
2021-10-23Add flag for dumping the environment variablesGravatar Jarred Sumner 1-8/+19
2021-10-23[internal] Add easier commands for running unit testsGravatar Jarred Sumner 2-12/+129
2021-10-23Handle edgecase when returning errorsGravatar Jarred Sumner 1-1/+1
2021-10-23Fix bug with MutableString.ensureValidIdentifierGravatar Jarred Sumner 2-12/+17
2021-10-23[internal] Remove more dead code, add script to find .zig files that aren't i...Gravatar Jarred Sumner 15-82/+17
2021-10-23No more iguanaTLSGravatar Jarred Sumner 1-5/+0
2021-10-23[internal] :scissors: dead codeGravatar Jarred Sumner 32-7971/+0
2021-10-23Load environment variables into defines when possibleGravatar Jarred Sumner 1-0/+8
2021-10-23[Bundler] When modules fail to resolve, continue building so that you can see...Gravatar Jarred Sumner 1-29/+111
2021-10-23[JS Parser] Parser errors should _always_ report an error locationGravatar Jarred Sumner 2-3/+11
2021-10-23Support string-only definesGravatar Jarred Sumner 1-53/+65
2021-10-23[`.env` loader] Parse values as JavaScript string literals instead of JSONGravatar Jarred Sumner 1-52/+170
2021-10-23Add "process.env" to global objectGravatar Jarred Sumner 4-18/+36
2021-10-23Rewrite the CodepointIterator to fix some bugsGravatar Jarred Sumner 1-81/+89
2021-10-23[Lexer] Improve lexing performance by 2% via a bitfield for checking identifi...Gravatar Jarred Sumner 3-2317/+7178
2021-10-23[Bun.js] Escape unicode identifiers. This is necessary because we load source...Gravatar Jarred Sumner 1-18/+81
2021-10-23[Bun.js] Add `Bun.env` and support `process.env` for non-transpiled environme...Gravatar Jarred Sumner 1-2/+129
2021-10-21[lexer] `0x200C` and `0x200D` are valid ID_Continue charactersGravatar Jarred Sumner 1-6/+29
2021-10-21Split tests into separate .json fileGravatar Jarred Sumner 1-22/+1