aboutsummaryrefslogtreecommitdiff
path: root/test/snippets
diff options
context:
space:
mode:
Diffstat (limited to 'test/snippets')
-rw-r--r--test/snippets/_auth.js1
-rw-r--r--test/snippets/_bacon.js1
-rw-r--r--test/snippets/_login.js3
-rw-r--r--test/snippets/array-args-with-default-values.js28
-rwxr-xr-xtest/snippets/bun.lockbbin0 -> 20500 bytes
-rw-r--r--test/snippets/bundled-entry-point.js7
-rw-r--r--test/snippets/caught-require.js31
-rw-r--r--test/snippets/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js17
-rw-r--r--test/snippets/code-simplification-neql-define.js56
-rw-r--r--test/snippets/custom-emotion-jsx/file.jsx15
-rw-r--r--test/snippets/custom-emotion-jsx/tsconfig.json5
-rw-r--r--test/snippets/export-default-module-hot.js6
-rw-r--r--test/snippets/export.js29
-rw-r--r--test/snippets/forbid-in-is-correct.js10
-rw-r--r--test/snippets/global-is-remapped-to-globalThis.js4
-rw-r--r--test/snippets/jsx-entities.jsx936
-rw-r--r--test/snippets/jsx-spacing.js29
-rw-r--r--test/snippets/jsx-spacing.jsx43
-rw-r--r--test/snippets/jsx-top-level.tsx21
-rw-r--r--test/snippets/latin1-chars-in-regexp.js70
-rw-r--r--test/snippets/lodash-regexp.js24
-rw-r--r--test/snippets/multiple-imports.js13
-rw-r--r--test/snippets/multiple-var.js11
-rw-r--r--test/snippets/number-literal-bug.js11
-rw-r--r--test/snippets/optional-chain-with-function.js15
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/exact/im-exact.js0
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/exact/package.json0
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/browser/dir/file.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/browser/dir/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/browser/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/browser/index.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/default/dir/file.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/default/dir/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/default/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/default/index.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/node/dir/file.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/node/dir/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/node/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/node/index.js0
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/inexact/package.json20
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/dir/file.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/dir/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/index.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/js-file.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/js-file.ts1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/dir/file.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/dir/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/index.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/dir/file.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/dir/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/foo.js1
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/index.js0
-rw-r--r--test/snippets/package-json-exports/_node_modules_copy/js-only-exports/package.json10
-rw-r--r--test/snippets/package-json-exports/index.js12
-rw-r--r--test/snippets/package-json-exports/package.json3
-rw-r--r--test/snippets/package-json-utf8.js6
-rw-r--r--test/snippets/package.json13
-rw-r--r--test/snippets/public/index.html91
-rw-r--r--test/snippets/react-context-value-func.tsx34
-rw-r--r--test/snippets/segfault.js1
-rw-r--r--test/snippets/spread_with_key.tsx20
-rw-r--r--test/snippets/string-escapes.js129
-rw-r--r--test/snippets/styledcomponents-output.js63
-rw-r--r--test/snippets/template-literal.js51
-rw-r--r--test/snippets/ts-fallback-rewrite-works.ts5
-rw-r--r--test/snippets/tsx-fallback-rewrite-works.tsx5
-rw-r--r--test/snippets/type-only-imports.ts12
-rw-r--r--test/snippets/unicode-identifiers.js15
-rw-r--r--test/snippets/utf8-package-json.json3
-rw-r--r--test/snippets/void-shouldnt-delete-call-expressions.js14
-rw-r--r--test/snippets/zero.js1
73 files changed, 1918 insertions, 0 deletions
diff --git a/test/snippets/_auth.js b/test/snippets/_auth.js
new file mode 100644
index 000000000..407090812
--- /dev/null
+++ b/test/snippets/_auth.js
@@ -0,0 +1 @@
+export default "hi";
diff --git a/test/snippets/_bacon.js b/test/snippets/_bacon.js
new file mode 100644
index 000000000..c07ffb9be
--- /dev/null
+++ b/test/snippets/_bacon.js
@@ -0,0 +1 @@
+export let hello = true;
diff --git a/test/snippets/_login.js b/test/snippets/_login.js
new file mode 100644
index 000000000..b2fc2ef65
--- /dev/null
+++ b/test/snippets/_login.js
@@ -0,0 +1,3 @@
+export default function () {
+ return true;
+}
diff --git a/test/snippets/array-args-with-default-values.js b/test/snippets/array-args-with-default-values.js
new file mode 100644
index 000000000..f733a1bfa
--- /dev/null
+++ b/test/snippets/array-args-with-default-values.js
@@ -0,0 +1,28 @@
+var lines;
+const data = () =>
+ lines.map(([a = null, b = null, c = null, d = null]) => ({
+ a,
+ b,
+ c,
+ d,
+ }));
+
+export function test() {
+ let ran = false;
+ lines = [
+ [undefined, undefined, undefined, undefined],
+ [undefined, undefined, undefined, undefined],
+ [undefined, undefined, undefined, undefined],
+ [undefined, undefined, undefined, undefined],
+ ];
+
+ for (let foo of data()) {
+ console.assert(foo.a === null);
+ console.assert(foo.b === null);
+ console.assert(foo.c === null);
+ console.assert(foo.d === null);
+ ran = true;
+ }
+ console.assert(ran);
+ testDone(import.meta.url);
+}
diff --git a/test/snippets/bun.lockb b/test/snippets/bun.lockb
new file mode 100755
index 000000000..127db7b6d
--- /dev/null
+++ b/test/snippets/bun.lockb
Binary files differ
diff --git a/test/snippets/bundled-entry-point.js b/test/snippets/bundled-entry-point.js
new file mode 100644
index 000000000..a996f8632
--- /dev/null
+++ b/test/snippets/bundled-entry-point.js
@@ -0,0 +1,7 @@
+import "react";
+
+var hello = 123 ? null ?? "world" : "ok";
+
+export function test() {
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/caught-require.js b/test/snippets/caught-require.js
new file mode 100644
index 000000000..6111d2b10
--- /dev/null
+++ b/test/snippets/caught-require.js
@@ -0,0 +1,31 @@
+// Since top-level await is Special, we run these checks in the top-level scope as well.
+try {
+ require("this-package-should-not-exist");
+} catch (exception) {}
+
+try {
+ await import("this-package-should-not-exist");
+} catch (exception) {}
+
+import("this-package-should-not-exist").then(
+ () => {},
+ () => {}
+);
+
+export async function test() {
+ // none of these should error
+ try {
+ require("this-package-should-not-exist");
+ } catch (exception) {}
+
+ try {
+ await import("this-package-should-not-exist");
+ } catch (exception) {}
+
+ import("this-package-should-not-exist").then(
+ () => {},
+ () => {}
+ );
+
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js b/test/snippets/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js
new file mode 100644
index 000000000..1ba6c059d
--- /dev/null
+++ b/test/snippets/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js
@@ -0,0 +1,17 @@
+import _login from "./_login";
+import _auth from "./_auth";
+import * as _loginReally from "./_login";
+import * as _loginReally2 from "./_login";
+import * as _authReally from "./_auth";
+
+// module.exports.iAmCommonJs = true;
+// exports.YouAreCommonJS = true;
+// require("./_login");
+// require("./_login");
+export { _login as login };
+
+export function test() {
+ return testDone(import.meta.url);
+}
+
+export let foo, bar;
diff --git a/test/snippets/code-simplification-neql-define.js b/test/snippets/code-simplification-neql-define.js
new file mode 100644
index 000000000..ed5c5c395
--- /dev/null
+++ b/test/snippets/code-simplification-neql-define.js
@@ -0,0 +1,56 @@
+var testFailed = false;
+const invariant = () => {
+ testFailed = true;
+};
+var $$m = (arg) => {
+ var module = { exports: {} },
+ exports = module.exports;
+ return arg(module, exports);
+};
+var size = 100,
+ ttl = 3600;
+
+export var $f332019d = $$m(
+ {
+ "relay-runtime/lib/network/RelayQueryResponseCache.js": (
+ module,
+ exports
+ ) => {
+ var RelayQueryResponseCache = function () {
+ var foo = function RelayQueryResponseCache(_ref) {
+ var size = _ref.size,
+ ttl = _ref.ttl;
+ !(size > 0)
+ ? process.env.NODE_ENV !== "production"
+ ? invariant(
+ false,
+ "RelayQueryResponseCache: Expected the max cache size to be > 0, got " +
+ "`%s`.",
+ size
+ )
+ : invariant(false)
+ : void 0;
+ !(ttl > 0)
+ ? process.env.NODE_ENV !== "production"
+ ? invariant(
+ false,
+ "RelayQueryResponseCache: Expected the max ttl to be > 0, got `%s`.",
+ ttl
+ )
+ : invariant(false)
+ : void 0;
+ };
+ foo({ size: 100, ttl: 3600 });
+ };
+ RelayQueryResponseCache();
+ },
+ }["relay-runtime/lib/network/RelayQueryResponseCache.js"]
+);
+
+export function test() {
+ var foo = () => result;
+ // $f332019d;
+
+ if (testFailed) throw new Error("invariant should not be called");
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/custom-emotion-jsx/file.jsx b/test/snippets/custom-emotion-jsx/file.jsx
new file mode 100644
index 000000000..c00cb0543
--- /dev/null
+++ b/test/snippets/custom-emotion-jsx/file.jsx
@@ -0,0 +1,15 @@
+import * as ReactDOM from "react-dom";
+export const Foo = () => <div css={{ content: '"it worked!"' }}></div>;
+
+export function test() {
+ const element = document.createElement("div");
+ element.id = "custom-emotion-jsx";
+ document.body.appendChild(element);
+ ReactDOM.render(<Foo />, element);
+ const style = window.getComputedStyle(element.firstChild);
+ if (!(style["content"] ?? "").includes("it worked!")) {
+ throw new Error('Expected "it worked!" but received: ' + style["content"]);
+ }
+
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/custom-emotion-jsx/tsconfig.json b/test/snippets/custom-emotion-jsx/tsconfig.json
new file mode 100644
index 000000000..7bb0f58a0
--- /dev/null
+++ b/test/snippets/custom-emotion-jsx/tsconfig.json
@@ -0,0 +1,5 @@
+{
+ "compilerOptions": {
+ "jsxImportSource": "@emotion/react"
+ }
+}
diff --git a/test/snippets/export-default-module-hot.js b/test/snippets/export-default-module-hot.js
new file mode 100644
index 000000000..aee4e2468
--- /dev/null
+++ b/test/snippets/export-default-module-hot.js
@@ -0,0 +1,6 @@
+// This test passes if there's no syntax error
+export default typeof module !== "undefined" && module.id;
+
+export function test() {
+ testDone(import.meta.url);
+}
diff --git a/test/snippets/export.js b/test/snippets/export.js
new file mode 100644
index 000000000..fe0abfa53
--- /dev/null
+++ b/test/snippets/export.js
@@ -0,0 +1,29 @@
+import what from "./_auth";
+export { default as auth } from "./_auth";
+export { default as login } from "./_login";
+export * from "./_bacon";
+export let yoyoyo = "yoyoyo";
+export default function hey() {
+ return true;
+}
+export const foo = () => {};
+export var bar = 100;
+export let powerLevel = Symbol("9001");
+export { what };
+export { what as when, what as whence };
+export {} from "./_bacon";
+export * as where from "./_auth";
+export { bar as booop };
+
+export function test() {
+ hey();
+ foo();
+ if (where.default !== "hi") {
+ throw new Error(`_auth import is incorrect.`);
+ }
+ console.assert(
+ powerLevel.description === "9001",
+ "Symbol is not exported correctly"
+ );
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/forbid-in-is-correct.js b/test/snippets/forbid-in-is-correct.js
new file mode 100644
index 000000000..cdd62bffb
--- /dev/null
+++ b/test/snippets/forbid-in-is-correct.js
@@ -0,0 +1,10 @@
+var foo = () => {
+ // prettier-ignore
+ var D=(i,r)=>()=>(r||i((r={exports:{}}).exports,r),r.exports);
+ return D;
+};
+
+export function test() {
+ foo();
+ testDone(import.meta.url);
+}
diff --git a/test/snippets/global-is-remapped-to-globalThis.js b/test/snippets/global-is-remapped-to-globalThis.js
new file mode 100644
index 000000000..06b887925
--- /dev/null
+++ b/test/snippets/global-is-remapped-to-globalThis.js
@@ -0,0 +1,4 @@
+export function test() {
+ console.assert(global === globalThis);
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/jsx-entities.jsx b/test/snippets/jsx-entities.jsx
new file mode 100644
index 000000000..adabace2c
--- /dev/null
+++ b/test/snippets/jsx-entities.jsx
@@ -0,0 +1,936 @@
+import * as ReactDOM from "react-dom/server";
+
+const elements = {
+ [ReactDOM.renderToString(<>&quot;</>)]: 0x0022,
+ [ReactDOM.renderToString(<>&amp;</>)]: 0x0026,
+ [ReactDOM.renderToString(<>&apos;</>)]: 0x0027,
+ [ReactDOM.renderToString(<>&lt;</>)]: 0x003c,
+ [ReactDOM.renderToString(<>&gt;</>)]: 0x003e,
+ [ReactDOM.renderToString(<>&nbsp;</>)]: 0x00a0,
+ [ReactDOM.renderToString(<>&iexcl;</>)]: 0x00a1,
+ [ReactDOM.renderToString(<>&cent;</>)]: 0x00a2,
+ [ReactDOM.renderToString(<>&pound;</>)]: 0x00a3,
+ [ReactDOM.renderToString(<>&curren;</>)]: 0x00a4,
+ [ReactDOM.renderToString(<>&yen;</>)]: 0x00a5,
+ [ReactDOM.renderToString(<>&brvbar;</>)]: 0x00a6,
+ [ReactDOM.renderToString(<>&sect;</>)]: 0x00a7,
+ [ReactDOM.renderToString(<>&uml;</>)]: 0x00a8,
+ [ReactDOM.renderToString(<>&copy;</>)]: 0x00a9,
+ [ReactDOM.renderToString(<>&ordf;</>)]: 0x00aa,
+ [ReactDOM.renderToString(<>&laquo;</>)]: 0x00ab,
+ [ReactDOM.renderToString(<>&not;</>)]: 0x00ac,
+ [ReactDOM.renderToString(<>&shy;</>)]: 0x00ad,
+ [ReactDOM.renderToString(<>&reg;</>)]: 0x00ae,
+ [ReactDOM.renderToString(<>&macr;</>)]: 0x00af,
+ [ReactDOM.renderToString(<>&deg;</>)]: 0x00b0,
+ [ReactDOM.renderToString(<>&plusmn;</>)]: 0x00b1,
+ [ReactDOM.renderToString(<>&sup2;</>)]: 0x00b2,
+ [ReactDOM.renderToString(<>&sup3;</>)]: 0x00b3,
+ [ReactDOM.renderToString(<>&acute;</>)]: 0x00b4,
+ [ReactDOM.renderToString(<>&micro;</>)]: 0x00b5,
+ [ReactDOM.renderToString(<>&para;</>)]: 0x00b6,
+ [ReactDOM.renderToString(<>&middot;</>)]: 0x00b7,
+ [ReactDOM.renderToString(<>&cedil;</>)]: 0x00b8,
+ [ReactDOM.renderToString(<>&sup1;</>)]: 0x00b9,
+ [ReactDOM.renderToString(<>&ordm;</>)]: 0x00ba,
+ [ReactDOM.renderToString(<>&raquo;</>)]: 0x00bb,
+ [ReactDOM.renderToString(<>&frac14;</>)]: 0x00bc,
+ [ReactDOM.renderToString(<>&frac12;</>)]: 0x00bd,
+ [ReactDOM.renderToString(<>&frac34;</>)]: 0x00be,
+ [ReactDOM.renderToString(<>&iquest;</>)]: 0x00bf,
+ [ReactDOM.renderToString(<>&Agrave;</>)]: 0x00c0,
+ [ReactDOM.renderToString(<>&Aacute;</>)]: 0x00c1,
+ [ReactDOM.renderToString(<>&Acirc;</>)]: 0x00c2,
+ [ReactDOM.renderToString(<>&Atilde;</>)]: 0x00c3,
+ [ReactDOM.renderToString(<>&Auml;</>)]: 0x00c4,
+ [ReactDOM.renderToString(<>&Aring;</>)]: 0x00c5,
+ [ReactDOM.renderToString(<>&AElig;</>)]: 0x00c6,
+ [ReactDOM.renderToString(<>&Ccedil;</>)]: 0x00c7,
+ [ReactDOM.renderToString(<>&Egrave;</>)]: 0x00c8,
+ [ReactDOM.renderToString(<>&Eacute;</>)]: 0x00c9,
+ [ReactDOM.renderToString(<>&Ecirc;</>)]: 0x00ca,
+ [ReactDOM.renderToString(<>&Euml;</>)]: 0x00cb,
+ [ReactDOM.renderToString(<>&Igrave;</>)]: 0x00cc,
+ [ReactDOM.renderToString(<>&Iacute;</>)]: 0x00cd,
+ [ReactDOM.renderToString(<>&Icirc;</>)]: 0x00ce,
+ [ReactDOM.renderToString(<>&Iuml;</>)]: 0x00cf,
+ [ReactDOM.renderToString(<>&ETH;</>)]: 0x00d0,
+ [ReactDOM.renderToString(<>&Ntilde;</>)]: 0x00d1,
+ [ReactDOM.renderToString(<>&Ograve;</>)]: 0x00d2,
+ [ReactDOM.renderToString(<>&Oacute;</>)]: 0x00d3,
+ [ReactDOM.renderToString(<>&Ocirc;</>)]: 0x00d4,
+ [ReactDOM.renderToString(<>&Otilde;</>)]: 0x00d5,
+ [ReactDOM.renderToString(<>&Ouml;</>)]: 0x00d6,
+ [ReactDOM.renderToString(<>&times;</>)]: 0x00d7,
+ [ReactDOM.renderToString(<>&Oslash;</>)]: 0x00d8,
+ [ReactDOM.renderToString(<>&Ugrave;</>)]: 0x00d9,
+ [ReactDOM.renderToString(<>&Uacute;</>)]: 0x00da,
+ [ReactDOM.renderToString(<>&Ucirc;</>)]: 0x00db,
+ [ReactDOM.renderToString(<>&Uuml;</>)]: 0x00dc,
+ [ReactDOM.renderToString(<>&Yacute;</>)]: 0x00dd,
+ [ReactDOM.renderToString(<>&THORN;</>)]: 0x00de,
+ [ReactDOM.renderToString(<>&szlig;</>)]: 0x00df,
+ [ReactDOM.renderToString(<>&agrave;</>)]: 0x00e0,
+ [ReactDOM.renderToString(<>&aacute;</>)]: 0x00e1,
+ [ReactDOM.renderToString(<>&acirc;</>)]: 0x00e2,
+ [ReactDOM.renderToString(<>&atilde;</>)]: 0x00e3,
+ [ReactDOM.renderToString(<>&auml;</>)]: 0x00e4,
+ [ReactDOM.renderToString(<>&aring;</>)]: 0x00e5,
+ [ReactDOM.renderToString(<>&aelig;</>)]: 0x00e6,
+ [ReactDOM.renderToString(<>&ccedil;</>)]: 0x00e7,
+ [ReactDOM.renderToString(<>&egrave;</>)]: 0x00e8,
+ [ReactDOM.renderToString(<>&eacute;</>)]: 0x00e9,
+ [ReactDOM.renderToString(<>&ecirc;</>)]: 0x00ea,
+ [ReactDOM.renderToString(<>&euml;</>)]: 0x00eb,
+ [ReactDOM.renderToString(<>&igrave;</>)]: 0x00ec,
+ [ReactDOM.renderToString(<>&iacute;</>)]: 0x00ed,
+ [ReactDOM.renderToString(<>&icirc;</>)]: 0x00ee,
+ [ReactDOM.renderToString(<>&iuml;</>)]: 0x00ef,
+ [ReactDOM.renderToString(<>&eth;</>)]: 0x00f0,
+ [ReactDOM.renderToString(<>&ntilde;</>)]: 0x00f1,
+ [ReactDOM.renderToString(<>&ograve;</>)]: 0x00f2,
+ [ReactDOM.renderToString(<>&oacute;</>)]: 0x00f3,
+ [ReactDOM.renderToString(<>&ocirc;</>)]: 0x00f4,
+ [ReactDOM.renderToString(<>&otilde;</>)]: 0x00f5,
+ [ReactDOM.renderToString(<>&ouml;</>)]: 0x00f6,
+ [ReactDOM.renderToString(<>&divide;</>)]: 0x00f7,
+ [ReactDOM.renderToString(<>&oslash;</>)]: 0x00f8,
+ [ReactDOM.renderToString(<>&ugrave;</>)]: 0x00f9,
+ [ReactDOM.renderToString(<>&uacute;</>)]: 0x00fa,
+ [ReactDOM.renderToString(<>&ucirc;</>)]: 0x00fb,
+ [ReactDOM.renderToString(<>&uuml;</>)]: 0x00fc,
+ [ReactDOM.renderToString(<>&yacute;</>)]: 0x00fd,
+ [ReactDOM.renderToString(<>&thorn;</>)]: 0x00fe,
+ [ReactDOM.renderToString(<>&yuml;</>)]: 0x00ff,
+ [ReactDOM.renderToString(<>&OElig;</>)]: 0x0152,
+ [ReactDOM.renderToString(<>&oelig;</>)]: 0x0153,
+ [ReactDOM.renderToString(<>&Scaron;</>)]: 0x0160,
+ [ReactDOM.renderToString(<>&scaron;</>)]: 0x0161,
+ [ReactDOM.renderToString(<>&Yuml;</>)]: 0x0178,
+ [ReactDOM.renderToString(<>&fnof;</>)]: 0x0192,
+ [ReactDOM.renderToString(<>&circ;</>)]: 0x02c6,
+ [ReactDOM.renderToString(<>&tilde;</>)]: 0x02dc,
+ [ReactDOM.renderToString(<>&Alpha;</>)]: 0x0391,
+ [ReactDOM.renderToString(<>&Beta;</>)]: 0x0392,
+ [ReactDOM.renderToString(<>&Gamma;</>)]: 0x0393,
+ [ReactDOM.renderToString(<>&Delta;</>)]: 0x0394,
+ [ReactDOM.renderToString(<>&Epsilon;</>)]: 0x0395,
+ [ReactDOM.renderToString(<>&Zeta;</>)]: 0x0396,
+ [ReactDOM.renderToString(<>&Eta;</>)]: 0x0397,
+ [ReactDOM.renderToString(<>&Theta;</>)]: 0x0398,
+ [ReactDOM.renderToString(<>&Iota;</>)]: 0x0399,
+ [ReactDOM.renderToString(<>&Kappa;</>)]: 0x039a,
+ [ReactDOM.renderToString(<>&Lambda;</>)]: 0x039b,
+ [ReactDOM.renderToString(<>&Mu;</>)]: 0x039c,
+ [ReactDOM.renderToString(<>&Nu;</>)]: 0x039d,
+ [ReactDOM.renderToString(<>&Xi;</>)]: 0x039e,
+ [ReactDOM.renderToString(<>&Omicron;</>)]: 0x039f,
+ [ReactDOM.renderToString(<>&Pi;</>)]: 0x03a0,
+ [ReactDOM.renderToString(<>&Rho;</>)]: 0x03a1,
+ [ReactDOM.renderToString(<>&Sigma;</>)]: 0x03a3,
+ [ReactDOM.renderToString(<>&Tau;</>)]: 0x03a4,
+ [ReactDOM.renderToString(<>&Upsilon;</>)]: 0x03a5,
+ [ReactDOM.renderToString(<>&Phi;</>)]: 0x03a6,
+ [ReactDOM.renderToString(<>&Chi;</>)]: 0x03a7,
+ [ReactDOM.renderToString(<>&Psi;</>)]: 0x03a8,
+ [ReactDOM.renderToString(<>&Omega;</>)]: 0x03a9,
+ [ReactDOM.renderToString(<>&alpha;</>)]: 0x03b1,
+ [ReactDOM.renderToString(<>&beta;</>)]: 0x03b2,
+ [ReactDOM.renderToString(<>&gamma;</>)]: 0x03b3,
+ [ReactDOM.renderToString(<>&delta;</>)]: 0x03b4,
+ [ReactDOM.renderToString(<>&epsilon;</>)]: 0x03b5,
+ [ReactDOM.renderToString(<>&zeta;</>)]: 0x03b6,
+ [ReactDOM.renderToString(<>&eta;</>)]: 0x03b7,
+ [ReactDOM.renderToString(<>&theta;</>)]: 0x03b8,
+ [ReactDOM.renderToString(<>&iota;</>)]: 0x03b9,
+ [ReactDOM.renderToString(<>&kappa;</>)]: 0x03ba,
+ [ReactDOM.renderToString(<>&lambda;</>)]: 0x03bb,
+ [ReactDOM.renderToString(<>&mu;</>)]: 0x03bc,
+ [ReactDOM.renderToString(<>&nu;</>)]: 0x03bd,
+ [ReactDOM.renderToString(<>&xi;</>)]: 0x03be,
+ [ReactDOM.renderToString(<>&omicron;</>)]: 0x03bf,
+ [ReactDOM.renderToString(<>&pi;</>)]: 0x03c0,
+ [ReactDOM.renderToString(<>&rho;</>)]: 0x03c1,
+ [ReactDOM.renderToString(<>&sigmaf;</>)]: 0x03c2,
+ [ReactDOM.renderToString(<>&sigma;</>)]: 0x03c3,
+ [ReactDOM.renderToString(<>&tau;</>)]: 0x03c4,
+ [ReactDOM.renderToString(<>&upsilon;</>)]: 0x03c5,
+ [ReactDOM.renderToString(<>&phi;</>)]: 0x03c6,
+ [ReactDOM.renderToString(<>&chi;</>)]: 0x03c7,
+ [ReactDOM.renderToString(<>&psi;</>)]: 0x03c8,
+ [ReactDOM.renderToString(<>&omega;</>)]: 0x03c9,
+ [ReactDOM.renderToString(<>&thetasym;</>)]: 0x03d1,
+ [ReactDOM.renderToString(<>&upsih;</>)]: 0x03d2,
+ [ReactDOM.renderToString(<>&piv;</>)]: 0x03d6,
+ [ReactDOM.renderToString(<>&ensp;</>)]: 0x2002,
+ [ReactDOM.renderToString(<>&emsp;</>)]: 0x2003,
+ [ReactDOM.renderToString(<>&thinsp;</>)]: 0x2009,
+ [ReactDOM.renderToString(<>&zwnj;</>)]: 0x200c,
+ [ReactDOM.renderToString(<>&zwj;</>)]: 0x200d,
+ [ReactDOM.renderToString(<>&lrm;</>)]: 0x200e,
+ [ReactDOM.renderToString(<>&rlm;</>)]: 0x200f,
+ [ReactDOM.renderToString(<>&ndash;</>)]: 0x2013,
+ [ReactDOM.renderToString(<>&mdash;</>)]: 0x2014,
+ [ReactDOM.renderToString(<>&lsquo;</>)]: 0x2018,
+ [ReactDOM.renderToString(<>&rsquo;</>)]: 0x2019,
+ [ReactDOM.renderToString(<>&sbquo;</>)]: 0x201a,
+ [ReactDOM.renderToString(<>&ldquo;</>)]: 0x201c,
+ [ReactDOM.renderToString(<>&rdquo;</>)]: 0x201d,
+ [ReactDOM.renderToString(<>&bdquo;</>)]: 0x201e,
+ [ReactDOM.renderToString(<>&dagger;</>)]: 0x2020,
+ [ReactDOM.renderToString(<>&Dagger;</>)]: 0x2021,
+ [ReactDOM.renderToString(<>&bull;</>)]: 0x2022,
+ [ReactDOM.renderToString(<>&hellip;</>)]: 0x2026,
+ [ReactDOM.renderToString(<>&permil;</>)]: 0x2030,
+ [ReactDOM.renderToString(<>&prime;</>)]: 0x2032,
+ [ReactDOM.renderToString(<>&Prime;</>)]: 0x2033,
+ [ReactDOM.renderToString(<>&lsaquo;</>)]: 0x2039,
+ [ReactDOM.renderToString(<>&rsaquo;</>)]: 0x203a,
+ [ReactDOM.renderToString(<>&oline;</>)]: 0x203e,
+ [ReactDOM.renderToString(<>&frasl;</>)]: 0x2044,
+ [ReactDOM.renderToString(<>&euro;</>)]: 0x20ac,
+ [ReactDOM.renderToString(<>&image;</>)]: 0x2111,
+ [ReactDOM.renderToString(<>&weierp;</>)]: 0x2118,
+ [ReactDOM.renderToString(<>&real;</>)]: 0x211c,
+ [ReactDOM.renderToString(<>&trade;</>)]: 0x2122,
+ [ReactDOM.renderToString(<>&alefsym;</>)]: 0x2135,
+ [ReactDOM.renderToString(<>&larr;</>)]: 0x2190,
+ [ReactDOM.renderToString(<>&uarr;</>)]: 0x2191,
+ [ReactDOM.renderToString(<>&rarr;</>)]: 0x2192,
+ [ReactDOM.renderToString(<>&darr;</>)]: 0x2193,
+ [ReactDOM.renderToString(<>&harr;</>)]: 0x2194,
+ [ReactDOM.renderToString(<>&crarr;</>)]: 0x21b5,
+ [ReactDOM.renderToString(<>&lArr;</>)]: 0x21d0,
+ [ReactDOM.renderToString(<>&uArr;</>)]: 0x21d1,
+ [ReactDOM.renderToString(<>&rArr;</>)]: 0x21d2,
+ [ReactDOM.renderToString(<>&dArr;</>)]: 0x21d3,
+ [ReactDOM.renderToString(<>&hArr;</>)]: 0x21d4,
+ [ReactDOM.renderToString(<>&forall;</>)]: 0x2200,
+ [ReactDOM.renderToString(<>&part;</>)]: 0x2202,
+ [ReactDOM.renderToString(<>&exist;</>)]: 0x2203,
+ [ReactDOM.renderToString(<>&empty;</>)]: 0x2205,
+ [ReactDOM.renderToString(<>&nabla;</>)]: 0x2207,
+ [ReactDOM.renderToString(<>&isin;</>)]: 0x2208,
+ [ReactDOM.renderToString(<>&notin;</>)]: 0x2209,
+ [ReactDOM.renderToString(<>&ni;</>)]: 0x220b,
+ [ReactDOM.renderToString(<>&prod;</>)]: 0x220f,
+ [ReactDOM.renderToString(<>&sum;</>)]: 0x2211,
+ [ReactDOM.renderToString(<>&minus;</>)]: 0x2212,
+ [ReactDOM.renderToString(<>&lowast;</>)]: 0x2217,
+ [ReactDOM.renderToString(<>&radic;</>)]: 0x221a,
+ [ReactDOM.renderToString(<>&prop;</>)]: 0x221d,
+ [ReactDOM.renderToString(<>&infin;</>)]: 0x221e,
+ [ReactDOM.renderToString(<>&ang;</>)]: 0x2220,
+ [ReactDOM.renderToString(<>&and;</>)]: 0x2227,
+ [ReactDOM.renderToString(<>&or;</>)]: 0x2228,
+ [ReactDOM.renderToString(<>&cap;</>)]: 0x2229,
+ [ReactDOM.renderToString(<>&cup;</>)]: 0x222a,
+ [ReactDOM.renderToString(<>&int;</>)]: 0x222b,
+ [ReactDOM.renderToString(<>&there4;</>)]: 0x2234,
+ [ReactDOM.renderToString(<>&sim;</>)]: 0x223c,
+ [ReactDOM.renderToString(<>&cong;</>)]: 0x2245,
+ [ReactDOM.renderToString(<>&asymp;</>)]: 0x2248,
+ [ReactDOM.renderToString(<>&ne;</>)]: 0x2260,
+ [ReactDOM.renderToString(<>&equiv;</>)]: 0x2261,
+ [ReactDOM.renderToString(<>&le;</>)]: 0x2264,
+ [ReactDOM.renderToString(<>&ge;</>)]: 0x2265,
+ [ReactDOM.renderToString(<>&sub;</>)]: 0x2282,
+ [ReactDOM.renderToString(<>&sup;</>)]: 0x2283,
+ [ReactDOM.renderToString(<>&nsub;</>)]: 0x2284,
+ [ReactDOM.renderToString(<>&sube;</>)]: 0x2286,
+ [ReactDOM.renderToString(<>&supe;</>)]: 0x2287,
+ [ReactDOM.renderToString(<>&oplus;</>)]: 0x2295,
+ [ReactDOM.renderToString(<>&otimes;</>)]: 0x2297,
+ [ReactDOM.renderToString(<>&perp;</>)]: 0x22a5,
+ [ReactDOM.renderToString(<>&sdot;</>)]: 0x22c5,
+ [ReactDOM.renderToString(<>&lceil;</>)]: 0x2308,
+ [ReactDOM.renderToString(<>&rceil;</>)]: 0x2309,
+ [ReactDOM.renderToString(<>&lfloor;</>)]: 0x230a,
+ [ReactDOM.renderToString(<>&rfloor;</>)]: 0x230b,
+ [ReactDOM.renderToString(<>&lang;</>)]: 0x2329,
+ [ReactDOM.renderToString(<>&rang;</>)]: 0x232a,
+ [ReactDOM.renderToString(<>&loz;</>)]: 0x25ca,
+ [ReactDOM.renderToString(<>&spades;</>)]: 0x2660,
+ [ReactDOM.renderToString(<>&clubs;</>)]: 0x2663,
+ [ReactDOM.renderToString(<>&hearts;</>)]: 0x2665,
+ [ReactDOM.renderToString(<>&diams;</>)]: 0x2666,
+
+ [ReactDOM.renderToString(<>&#x1;</>)]: 0x1,
+ [ReactDOM.renderToString(<>&#x2;</>)]: 0x2,
+ [ReactDOM.renderToString(<>&#x3;</>)]: 0x3,
+ [ReactDOM.renderToString(<>&#x4;</>)]: 0x4,
+ [ReactDOM.renderToString(<>&#x5;</>)]: 0x5,
+ [ReactDOM.renderToString(<>&#x6;</>)]: 0x6,
+ [ReactDOM.renderToString(<>&#x7;</>)]: 0x7,
+ [ReactDOM.renderToString(<>&#x8;</>)]: 0x8,
+ [ReactDOM.renderToString(<>&#x9;</>)]: 0x9,
+ [ReactDOM.renderToString(<>&#xA;</>)]: 0xa,
+ [ReactDOM.renderToString(<>&#xB;</>)]: 0xb,
+ [ReactDOM.renderToString(<>&#xC;</>)]: 0xc,
+ [ReactDOM.renderToString(<>&#xD;</>)]: 0xd,
+ [ReactDOM.renderToString(<>&#xE;</>)]: 0xe,
+ [ReactDOM.renderToString(<>&#xF;</>)]: 0xf,
+ [ReactDOM.renderToString(<>&#x10;</>)]: 0x10,
+ [ReactDOM.renderToString(<>&#x11;</>)]: 0x11,
+ [ReactDOM.renderToString(<>&#x12;</>)]: 0x12,
+ [ReactDOM.renderToString(<>&#x13;</>)]: 0x13,
+ [ReactDOM.renderToString(<>&#x14;</>)]: 0x14,
+ [ReactDOM.renderToString(<>&#x15;</>)]: 0x15,
+ [ReactDOM.renderToString(<>&#x16;</>)]: 0x16,
+ [ReactDOM.renderToString(<>&#x17;</>)]: 0x17,
+ [ReactDOM.renderToString(<>&#x18;</>)]: 0x18,
+ [ReactDOM.renderToString(<>&#x19;</>)]: 0x19,
+ [ReactDOM.renderToString(<>&#x1A;</>)]: 0x1a,
+ [ReactDOM.renderToString(<>&#x1B;</>)]: 0x1b,
+ [ReactDOM.renderToString(<>&#x1C;</>)]: 0x1c,
+ [ReactDOM.renderToString(<>&#x1D;</>)]: 0x1d,
+ [ReactDOM.renderToString(<>&#x1E;</>)]: 0x1e,
+ [ReactDOM.renderToString(<>&#x1F;</>)]: 0x1f,
+ [ReactDOM.renderToString(<>&#x20;</>)]: 0x20,
+ [ReactDOM.renderToString(<>&#x21;</>)]: 0x21,
+ [ReactDOM.renderToString(<>&#x22;</>)]: 0x22,
+ [ReactDOM.renderToString(<>&#x23;</>)]: 0x23,
+ [ReactDOM.renderToString(<>&#x24;</>)]: 0x24,
+ [ReactDOM.renderToString(<>&#x25;</>)]: 0x25,
+ [ReactDOM.renderToString(<>&#x26;</>)]: 0x26,
+ [ReactDOM.renderToString(<>&#x27;</>)]: 0x27,
+ [ReactDOM.renderToString(<>&#x28;</>)]: 0x28,
+ [ReactDOM.renderToString(<>&#x29;</>)]: 0x29,
+ [ReactDOM.renderToString(<>&#x2A;</>)]: 0x2a,
+ [ReactDOM.renderToString(<>&#x2B;</>)]: 0x2b,
+ [ReactDOM.renderToString(<>&#x2C;</>)]: 0x2c,
+ [ReactDOM.renderToString(<>&#x2D;</>)]: 0x2d,
+ [ReactDOM.renderToString(<>&#x2E;</>)]: 0x2e,
+ [ReactDOM.renderToString(<>&#x2F;</>)]: 0x2f,
+ [ReactDOM.renderToString(<>&#x30;</>)]: 0x30,
+ [ReactDOM.renderToString(<>&#x31;</>)]: 0x31,
+ [ReactDOM.renderToString(<>&#x32;</>)]: 0x32,
+ [ReactDOM.renderToString(<>&#x33;</>)]: 0x33,
+ [ReactDOM.renderToString(<>&#x34;</>)]: 0x34,
+ [ReactDOM.renderToString(<>&#x35;</>)]: 0x35,
+ [ReactDOM.renderToString(<>&#x36;</>)]: 0x36,
+ [ReactDOM.renderToString(<>&#x37;</>)]: 0x37,
+ [ReactDOM.renderToString(<>&#x38;</>)]: 0x38,
+ [ReactDOM.renderToString(<>&#x39;</>)]: 0x39,
+ [ReactDOM.renderToString(<>&#x3A;</>)]: 0x3a,
+ [ReactDOM.renderToString(<>&#x3B;</>)]: 0x3b,
+ [ReactDOM.renderToString(<>&#x3C;</>)]: 0x3c,
+ [ReactDOM.renderToString(<>&#x3D;</>)]: 0x3d,
+ [ReactDOM.renderToString(<>&#x3E;</>)]: 0x3e,
+ [ReactDOM.renderToString(<>&#x3F;</>)]: 0x3f,
+ [ReactDOM.renderToString(<>&#x40;</>)]: 0x40,
+ [ReactDOM.renderToString(<>&#x41;</>)]: 0x41,
+ [ReactDOM.renderToString(<>&#x42;</>)]: 0x42,
+ [ReactDOM.renderToString(<>&#x43;</>)]: 0x43,
+ [ReactDOM.renderToString(<>&#x44;</>)]: 0x44,
+ [ReactDOM.renderToString(<>&#x45;</>)]: 0x45,
+ [ReactDOM.renderToString(<>&#x46;</>)]: 0x46,
+ [ReactDOM.renderToString(<>&#x47;</>)]: 0x47,
+ [ReactDOM.renderToString(<>&#x48;</>)]: 0x48,
+ [ReactDOM.renderToString(<>&#x49;</>)]: 0x49,
+ [ReactDOM.renderToString(<>&#x4A;</>)]: 0x4a,
+ [ReactDOM.renderToString(<>&#x4B;</>)]: 0x4b,
+ [ReactDOM.renderToString(<>&#x4C;</>)]: 0x4c,
+ [ReactDOM.renderToString(<>&#x4D;</>)]: 0x4d,
+ [ReactDOM.renderToString(<>&#x4E;</>)]: 0x4e,
+ [ReactDOM.renderToString(<>&#x4F;</>)]: 0x4f,
+ [ReactDOM.renderToString(<>&#x50;</>)]: 0x50,
+ [ReactDOM.renderToString(<>&#x51;</>)]: 0x51,
+ [ReactDOM.renderToString(<>&#x52;</>)]: 0x52,
+ [ReactDOM.renderToString(<>&#x53;</>)]: 0x53,
+ [ReactDOM.renderToString(<>&#x54;</>)]: 0x54,
+ [ReactDOM.renderToString(<>&#x55;</>)]: 0x55,
+ [ReactDOM.renderToString(<>&#x56;</>)]: 0x56,
+ [ReactDOM.renderToString(<>&#x57;</>)]: 0x57,
+ [ReactDOM.renderToString(<>&#x58;</>)]: 0x58,
+ [ReactDOM.renderToString(<>&#x59;</>)]: 0x59,
+ [ReactDOM.renderToString(<>&#x5A;</>)]: 0x5a,
+ [ReactDOM.renderToString(<>&#x5B;</>)]: 0x5b,
+ [ReactDOM.renderToString(<>&#x5C;</>)]: 0x5c,
+ [ReactDOM.renderToString(<>&#x5D;</>)]: 0x5d,
+ [ReactDOM.renderToString(<>&#x5E;</>)]: 0x5e,
+ [ReactDOM.renderToString(<>&#x5F;</>)]: 0x5f,
+ [ReactDOM.renderToString(<>&#x60;</>)]: 0x60,
+ [ReactDOM.renderToString(<>&#x61;</>)]: 0x61,
+ [ReactDOM.renderToString(<>&#x62;</>)]: 0x62,
+ [ReactDOM.renderToString(<>&#x63;</>)]: 0x63,
+ [ReactDOM.renderToString(<>&#x64;</>)]: 0x64,
+ [ReactDOM.renderToString(<>&#x65;</>)]: 0x65,
+ [ReactDOM.renderToString(<>&#x66;</>)]: 0x66,
+ [ReactDOM.renderToString(<>&#x67;</>)]: 0x67,
+ [ReactDOM.renderToString(<>&#x68;</>)]: 0x68,
+ [ReactDOM.renderToString(<>&#x69;</>)]: 0x69,
+ [ReactDOM.renderToString(<>&#x6A;</>)]: 0x6a,
+ [ReactDOM.renderToString(<>&#x6B;</>)]: 0x6b,
+ [ReactDOM.renderToString(<>&#x6C;</>)]: 0x6c,
+ [ReactDOM.renderToString(<>&#x6D;</>)]: 0x6d,
+ [ReactDOM.renderToString(<>&#x6E;</>)]: 0x6e,
+ [ReactDOM.renderToString(<>&#x6F;</>)]: 0x6f,
+ [ReactDOM.renderToString(<>&#x70;</>)]: 0x70,
+ [ReactDOM.renderToString(<>&#x71;</>)]: 0x71,
+ [ReactDOM.renderToString(<>&#x72;</>)]: 0x72,
+ [ReactDOM.renderToString(<>&#x73;</>)]: 0x73,
+ [ReactDOM.renderToString(<>&#x74;</>)]: 0x74,
+ [ReactDOM.renderToString(<>&#x75;</>)]: 0x75,
+ [ReactDOM.renderToString(<>&#x76;</>)]: 0x76,
+ [ReactDOM.renderToString(<>&#x77;</>)]: 0x77,
+ [ReactDOM.renderToString(<>&#x78;</>)]: 0x78,
+ [ReactDOM.renderToString(<>&#x79;</>)]: 0x79,
+ [ReactDOM.renderToString(<>&#x7A;</>)]: 0x7a,
+ [ReactDOM.renderToString(<>&#x7B;</>)]: 0x7b,
+ [ReactDOM.renderToString(<>&#x7C;</>)]: 0x7c,
+ [ReactDOM.renderToString(<>&#x7D;</>)]: 0x7d,
+ [ReactDOM.renderToString(<>&#x7E;</>)]: 0x7e,
+ [ReactDOM.renderToString(<>&#x7F;</>)]: 0x7f,
+ [ReactDOM.renderToString(<>&#x80;</>)]: 0x80,
+ [ReactDOM.renderToString(<>&#x81;</>)]: 0x81,
+ [ReactDOM.renderToString(<>&#x82;</>)]: 0x82,
+ [ReactDOM.renderToString(<>&#x83;</>)]: 0x83,
+ [ReactDOM.renderToString(<>&#x84;</>)]: 0x84,
+ [ReactDOM.renderToString(<>&#x85;</>)]: 0x85,
+ [ReactDOM.renderToString(<>&#x86;</>)]: 0x86,
+ [ReactDOM.renderToString(<>&#x87;</>)]: 0x87,
+ [ReactDOM.renderToString(<>&#x88;</>)]: 0x88,
+ [ReactDOM.renderToString(<>&#x89;</>)]: 0x89,
+ [ReactDOM.renderToString(<>&#x8A;</>)]: 0x8a,
+ [ReactDOM.renderToString(<>&#x8B;</>)]: 0x8b,
+ [ReactDOM.renderToString(<>&#x8C;</>)]: 0x8c,
+ [ReactDOM.renderToString(<>&#x8D;</>)]: 0x8d,
+ [ReactDOM.renderToString(<>&#x8E;</>)]: 0x8e,
+ [ReactDOM.renderToString(<>&#x8F;</>)]: 0x8f,
+ [ReactDOM.renderToString(<>&#x90;</>)]: 0x90,
+ [ReactDOM.renderToString(<>&#x91;</>)]: 0x91,
+ [ReactDOM.renderToString(<>&#x92;</>)]: 0x92,
+ [ReactDOM.renderToString(<>&#x93;</>)]: 0x93,
+ [ReactDOM.renderToString(<>&#x94;</>)]: 0x94,
+ [ReactDOM.renderToString(<>&#x95;</>)]: 0x95,
+ [ReactDOM.renderToString(<>&#x96;</>)]: 0x96,
+ [ReactDOM.renderToString(<>&#x97;</>)]: 0x97,
+ [ReactDOM.renderToString(<>&#x98;</>)]: 0x98,
+ [ReactDOM.renderToString(<>&#x99;</>)]: 0x99,
+ [ReactDOM.renderToString(<>&#x9A;</>)]: 0x9a,
+ [ReactDOM.renderToString(<>&#x9B;</>)]: 0x9b,
+ [ReactDOM.renderToString(<>&#x9C;</>)]: 0x9c,
+ [ReactDOM.renderToString(<>&#x9D;</>)]: 0x9d,
+ [ReactDOM.renderToString(<>&#x9E;</>)]: 0x9e,
+ [ReactDOM.renderToString(<>&#x9F;</>)]: 0x9f,
+ [ReactDOM.renderToString(<>&#xA0;</>)]: 0xa0,
+ [ReactDOM.renderToString(<>&#xA1;</>)]: 0xa1,
+ [ReactDOM.renderToString(<>&#xA2;</>)]: 0xa2,
+ [ReactDOM.renderToString(<>&#xA3;</>)]: 0xa3,
+ [ReactDOM.renderToString(<>&#xA4;</>)]: 0xa4,
+ [ReactDOM.renderToString(<>&#xA5;</>)]: 0xa5,
+ [ReactDOM.renderToString(<>&#xA6;</>)]: 0xa6,
+ [ReactDOM.renderToString(<>&#xA7;</>)]: 0xa7,
+ [ReactDOM.renderToString(<>&#xA8;</>)]: 0xa8,
+ [ReactDOM.renderToString(<>&#xA9;</>)]: 0xa9,
+ [ReactDOM.renderToString(<>&#xAA;</>)]: 0xaa,
+ [ReactDOM.renderToString(<>&#xAB;</>)]: 0xab,
+ [ReactDOM.renderToString(<>&#xAC;</>)]: 0xac,
+ [ReactDOM.renderToString(<>&#xAD;</>)]: 0xad,
+ [ReactDOM.renderToString(<>&#xAE;</>)]: 0xae,
+ [ReactDOM.renderToString(<>&#xAF;</>)]: 0xaf,
+ [ReactDOM.renderToString(<>&#xB0;</>)]: 0xb0,
+ [ReactDOM.renderToString(<>&#xB1;</>)]: 0xb1,
+ [ReactDOM.renderToString(<>&#xB2;</>)]: 0xb2,
+ [ReactDOM.renderToString(<>&#xB3;</>)]: 0xb3,
+ [ReactDOM.renderToString(<>&#xB4;</>)]: 0xb4,
+ [ReactDOM.renderToString(<>&#xB5;</>)]: 0xb5,
+ [ReactDOM.renderToString(<>&#xB6;</>)]: 0xb6,
+ [ReactDOM.renderToString(<>&#xB7;</>)]: 0xb7,
+ [ReactDOM.renderToString(<>&#xB8;</>)]: 0xb8,
+ [ReactDOM.renderToString(<>&#xB9;</>)]: 0xb9,
+ [ReactDOM.renderToString(<>&#xBA;</>)]: 0xba,
+ [ReactDOM.renderToString(<>&#xBB;</>)]: 0xbb,
+ [ReactDOM.renderToString(<>&#xBC;</>)]: 0xbc,
+ [ReactDOM.renderToString(<>&#xBD;</>)]: 0xbd,
+ [ReactDOM.renderToString(<>&#xBE;</>)]: 0xbe,
+ [ReactDOM.renderToString(<>&#xBF;</>)]: 0xbf,
+ [ReactDOM.renderToString(<>&#xC0;</>)]: 0xc0,
+ [ReactDOM.renderToString(<>&#xC1;</>)]: 0xc1,
+ [ReactDOM.renderToString(<>&#xC2;</>)]: 0xc2,
+ [ReactDOM.renderToString(<>&#xC3;</>)]: 0xc3,
+ [ReactDOM.renderToString(<>&#xC4;</>)]: 0xc4,
+ [ReactDOM.renderToString(<>&#xC5;</>)]: 0xc5,
+ [ReactDOM.renderToString(<>&#xC6;</>)]: 0xc6,
+ [ReactDOM.renderToString(<>&#xC7;</>)]: 0xc7,
+ [ReactDOM.renderToString(<>&#xC8;</>)]: 0xc8,
+ [ReactDOM.renderToString(<>&#xC9;</>)]: 0xc9,
+ [ReactDOM.renderToString(<>&#xCA;</>)]: 0xca,
+ [ReactDOM.renderToString(<>&#xCB;</>)]: 0xcb,
+ [ReactDOM.renderToString(<>&#xCC;</>)]: 0xcc,
+ [ReactDOM.renderToString(<>&#xCD;</>)]: 0xcd,
+ [ReactDOM.renderToString(<>&#xCE;</>)]: 0xce,
+ [ReactDOM.renderToString(<>&#xCF;</>)]: 0xcf,
+ [ReactDOM.renderToString(<>&#xD0;</>)]: 0xd0,
+ [ReactDOM.renderToString(<>&#xD1;</>)]: 0xd1,
+ [ReactDOM.renderToString(<>&#xD2;</>)]: 0xd2,
+ [ReactDOM.renderToString(<>&#xD3;</>)]: 0xd3,
+ [ReactDOM.renderToString(<>&#xD4;</>)]: 0xd4,
+ [ReactDOM.renderToString(<>&#xD5;</>)]: 0xd5,
+ [ReactDOM.renderToString(<>&#xD6;</>)]: 0xd6,
+ [ReactDOM.renderToString(<>&#xD7;</>)]: 0xd7,
+ [ReactDOM.renderToString(<>&#xD8;</>)]: 0xd8,
+ [ReactDOM.renderToString(<>&#xD9;</>)]: 0xd9,
+ [ReactDOM.renderToString(<>&#xDA;</>)]: 0xda,
+ [ReactDOM.renderToString(<>&#xDB;</>)]: 0xdb,
+ [ReactDOM.renderToString(<>&#xDC;</>)]: 0xdc,
+ [ReactDOM.renderToString(<>&#xDD;</>)]: 0xdd,
+ [ReactDOM.renderToString(<>&#xDE;</>)]: 0xde,
+ [ReactDOM.renderToString(<>&#xDF;</>)]: 0xdf,
+ [ReactDOM.renderToString(<>&#xE0;</>)]: 0xe0,
+ [ReactDOM.renderToString(<>&#xE1;</>)]: 0xe1,
+ [ReactDOM.renderToString(<>&#xE2;</>)]: 0xe2,
+ [ReactDOM.renderToString(<>&#xE3;</>)]: 0xe3,
+ [ReactDOM.renderToString(<>&#xE4;</>)]: 0xe4,
+ [ReactDOM.renderToString(<>&#xE5;</>)]: 0xe5,
+ [ReactDOM.renderToString(<>&#xE6;</>)]: 0xe6,
+ [ReactDOM.renderToString(<>&#xE7;</>)]: 0xe7,
+ [ReactDOM.renderToString(<>&#xE8;</>)]: 0xe8,
+ [ReactDOM.renderToString(<>&#xE9;</>)]: 0xe9,
+ [ReactDOM.renderToString(<>&#xEA;</>)]: 0xea,
+ [ReactDOM.renderToString(<>&#xEB;</>)]: 0xeb,
+ [ReactDOM.renderToString(<>&#xEC;</>)]: 0xec,
+ [ReactDOM.renderToString(<>&#xED;</>)]: 0xed,
+ [ReactDOM.renderToString(<>&#xEE;</>)]: 0xee,
+ [ReactDOM.renderToString(<>&#xEF;</>)]: 0xef,
+ [ReactDOM.renderToString(<>&#xF0;</>)]: 0xf0,
+ [ReactDOM.renderToString(<>&#xF1;</>)]: 0xf1,
+ [ReactDOM.renderToString(<>&#xF2;</>)]: 0xf2,
+ [ReactDOM.renderToString(<>&#xF3;</>)]: 0xf3,
+ [ReactDOM.renderToString(<>&#xF4;</>)]: 0xf4,
+ [ReactDOM.renderToString(<>&#xF5;</>)]: 0xf5,
+ [ReactDOM.renderToString(<>&#xF6;</>)]: 0xf6,
+ [ReactDOM.renderToString(<>&#xF7;</>)]: 0xf7,
+ [ReactDOM.renderToString(<>&#xF8;</>)]: 0xf8,
+ [ReactDOM.renderToString(<>&#xF9;</>)]: 0xf9,
+ [ReactDOM.renderToString(<>&#xFA;</>)]: 0xfa,
+ [ReactDOM.renderToString(<>&#xFB;</>)]: 0xfb,
+ [ReactDOM.renderToString(<>&#xFC;</>)]: 0xfc,
+ [ReactDOM.renderToString(<>&#xFD;</>)]: 0xfd,
+ [ReactDOM.renderToString(<>&#xFE;</>)]: 0xfe,
+ [ReactDOM.renderToString(<>&#xFF;</>)]: 0xff,
+ [ReactDOM.renderToString(<>&#x100;</>)]: 0x100,
+ [ReactDOM.renderToString(<>&#x101;</>)]: 0x101,
+ [ReactDOM.renderToString(<>&#x102;</>)]: 0x102,
+ [ReactDOM.renderToString(<>&#x103;</>)]: 0x103,
+ [ReactDOM.renderToString(<>&#x104;</>)]: 0x104,
+ [ReactDOM.renderToString(<>&#x105;</>)]: 0x105,
+ [ReactDOM.renderToString(<>&#x106;</>)]: 0x106,
+ [ReactDOM.renderToString(<>&#x107;</>)]: 0x107,
+ [ReactDOM.renderToString(<>&#x108;</>)]: 0x108,
+ [ReactDOM.renderToString(<>&#x109;</>)]: 0x109,
+ [ReactDOM.renderToString(<>&#x10A;</>)]: 0x10a,
+ [ReactDOM.renderToString(<>&#x10B;</>)]: 0x10b,
+ [ReactDOM.renderToString(<>&#x10C;</>)]: 0x10c,
+ [ReactDOM.renderToString(<>&#x10D;</>)]: 0x10d,
+ [ReactDOM.renderToString(<>&#x10E;</>)]: 0x10e,
+ [ReactDOM.renderToString(<>&#x10F;</>)]: 0x10f,
+ [ReactDOM.renderToString(<>&#x110;</>)]: 0x110,
+ [ReactDOM.renderToString(<>&#x111;</>)]: 0x111,
+ [ReactDOM.renderToString(<>&#x112;</>)]: 0x112,
+ [ReactDOM.renderToString(<>&#x113;</>)]: 0x113,
+ [ReactDOM.renderToString(<>&#x114;</>)]: 0x114,
+ [ReactDOM.renderToString(<>&#x115;</>)]: 0x115,
+ [ReactDOM.renderToString(<>&#x116;</>)]: 0x116,
+ [ReactDOM.renderToString(<>&#x117;</>)]: 0x117,
+ [ReactDOM.renderToString(<>&#x118;</>)]: 0x118,
+ [ReactDOM.renderToString(<>&#x119;</>)]: 0x119,
+ [ReactDOM.renderToString(<>&#x11A;</>)]: 0x11a,
+ [ReactDOM.renderToString(<>&#x11B;</>)]: 0x11b,
+ [ReactDOM.renderToString(<>&#x11C;</>)]: 0x11c,
+ [ReactDOM.renderToString(<>&#x11D;</>)]: 0x11d,
+ [ReactDOM.renderToString(<>&#x11E;</>)]: 0x11e,
+ [ReactDOM.renderToString(<>&#x11F;</>)]: 0x11f,
+ [ReactDOM.renderToString(<>&#x120;</>)]: 0x120,
+ [ReactDOM.renderToString(<>&#x121;</>)]: 0x121,
+ [ReactDOM.renderToString(<>&#x122;</>)]: 0x122,
+ [ReactDOM.renderToString(<>&#x123;</>)]: 0x123,
+ [ReactDOM.renderToString(<>&#x124;</>)]: 0x124,
+ [ReactDOM.renderToString(<>&#x125;</>)]: 0x125,
+ [ReactDOM.renderToString(<>&#x126;</>)]: 0x126,
+ [ReactDOM.renderToString(<>&#x127;</>)]: 0x127,
+ [ReactDOM.renderToString(<>&#x128;</>)]: 0x128,
+ [ReactDOM.renderToString(<>&#x129;</>)]: 0x129,
+ [ReactDOM.renderToString(<>&#x12A;</>)]: 0x12a,
+ [ReactDOM.renderToString(<>&#x12B;</>)]: 0x12b,
+ [ReactDOM.renderToString(<>&#x12C;</>)]: 0x12c,
+ [ReactDOM.renderToString(<>&#x12D;</>)]: 0x12d,
+ [ReactDOM.renderToString(<>&#x12E;</>)]: 0x12e,
+ [ReactDOM.renderToString(<>&#x12F;</>)]: 0x12f,
+ [ReactDOM.renderToString(<>&#x130;</>)]: 0x130,
+ [ReactDOM.renderToString(<>&#x131;</>)]: 0x131,
+ [ReactDOM.renderToString(<>&#x132;</>)]: 0x132,
+ [ReactDOM.renderToString(<>&#x133;</>)]: 0x133,
+ [ReactDOM.renderToString(<>&#x134;</>)]: 0x134,
+ [ReactDOM.renderToString(<>&#x135;</>)]: 0x135,
+ [ReactDOM.renderToString(<>&#x136;</>)]: 0x136,
+ [ReactDOM.renderToString(<>&#x137;</>)]: 0x137,
+ [ReactDOM.renderToString(<>&#x138;</>)]: 0x138,
+ [ReactDOM.renderToString(<>&#x139;</>)]: 0x139,
+ [ReactDOM.renderToString(<>&#x13A;</>)]: 0x13a,
+ [ReactDOM.renderToString(<>&#x13B;</>)]: 0x13b,
+ [ReactDOM.renderToString(<>&#x13C;</>)]: 0x13c,
+ [ReactDOM.renderToString(<>&#x13D;</>)]: 0x13d,
+ [ReactDOM.renderToString(<>&#x13E;</>)]: 0x13e,
+ [ReactDOM.renderToString(<>&#x13F;</>)]: 0x13f,
+ [ReactDOM.renderToString(<>&#x140;</>)]: 0x140,
+ [ReactDOM.renderToString(<>&#x141;</>)]: 0x141,
+ [ReactDOM.renderToString(<>&#x142;</>)]: 0x142,
+ [ReactDOM.renderToString(<>&#x143;</>)]: 0x143,
+ [ReactDOM.renderToString(<>&#x144;</>)]: 0x144,
+ [ReactDOM.renderToString(<>&#x145;</>)]: 0x145,
+ [ReactDOM.renderToString(<>&#x146;</>)]: 0x146,
+ [ReactDOM.renderToString(<>&#x147;</>)]: 0x147,
+ [ReactDOM.renderToString(<>&#x148;</>)]: 0x148,
+ [ReactDOM.renderToString(<>&#x149;</>)]: 0x149,
+ [ReactDOM.renderToString(<>&#x14A;</>)]: 0x14a,
+ [ReactDOM.renderToString(<>&#x14B;</>)]: 0x14b,
+ [ReactDOM.renderToString(<>&#x14C;</>)]: 0x14c,
+ [ReactDOM.renderToString(<>&#x14D;</>)]: 0x14d,
+ [ReactDOM.renderToString(<>&#x14E;</>)]: 0x14e,
+ [ReactDOM.renderToString(<>&#x14F;</>)]: 0x14f,
+ [ReactDOM.renderToString(<>&#x150;</>)]: 0x150,
+ [ReactDOM.renderToString(<>&#x151;</>)]: 0x151,
+ [ReactDOM.renderToString(<>&#x152;</>)]: 0x152,
+ [ReactDOM.renderToString(<>&#x153;</>)]: 0x153,
+ [ReactDOM.renderToString(<>&#x154;</>)]: 0x154,
+ [ReactDOM.renderToString(<>&#x155;</>)]: 0x155,
+ [ReactDOM.renderToString(<>&#x156;</>)]: 0x156,
+ [ReactDOM.renderToString(<>&#x157;</>)]: 0x157,
+ [ReactDOM.renderToString(<>&#x158;</>)]: 0x158,
+ [ReactDOM.renderToString(<>&#x159;</>)]: 0x159,
+ [ReactDOM.renderToString(<>&#x15A;</>)]: 0x15a,
+ [ReactDOM.renderToString(<>&#x15B;</>)]: 0x15b,
+ [ReactDOM.renderToString(<>&#x15C;</>)]: 0x15c,
+ [ReactDOM.renderToString(<>&#x15D;</>)]: 0x15d,
+ [ReactDOM.renderToString(<>&#x15E;</>)]: 0x15e,
+ [ReactDOM.renderToString(<>&#x15F;</>)]: 0x15f,
+ [ReactDOM.renderToString(<>&#x160;</>)]: 0x160,
+ [ReactDOM.renderToString(<>&#x161;</>)]: 0x161,
+ [ReactDOM.renderToString(<>&#x162;</>)]: 0x162,
+ [ReactDOM.renderToString(<>&#x163;</>)]: 0x163,
+ [ReactDOM.renderToString(<>&#x164;</>)]: 0x164,
+ [ReactDOM.renderToString(<>&#x165;</>)]: 0x165,
+ [ReactDOM.renderToString(<>&#x166;</>)]: 0x166,
+ [ReactDOM.renderToString(<>&#x167;</>)]: 0x167,
+ [ReactDOM.renderToString(<>&#x168;</>)]: 0x168,
+ [ReactDOM.renderToString(<>&#x169;</>)]: 0x169,
+ [ReactDOM.renderToString(<>&#x16A;</>)]: 0x16a,
+ [ReactDOM.renderToString(<>&#x16B;</>)]: 0x16b,
+ [ReactDOM.renderToString(<>&#x16C;</>)]: 0x16c,
+ [ReactDOM.renderToString(<>&#x16D;</>)]: 0x16d,
+ [ReactDOM.renderToString(<>&#x16E;</>)]: 0x16e,
+ [ReactDOM.renderToString(<>&#x16F;</>)]: 0x16f,
+ [ReactDOM.renderToString(<>&#x170;</>)]: 0x170,
+ [ReactDOM.renderToString(<>&#x171;</>)]: 0x171,
+ [ReactDOM.renderToString(<>&#x172;</>)]: 0x172,
+ [ReactDOM.renderToString(<>&#x173;</>)]: 0x173,
+ [ReactDOM.renderToString(<>&#x174;</>)]: 0x174,
+ [ReactDOM.renderToString(<>&#x175;</>)]: 0x175,
+ [ReactDOM.renderToString(<>&#x176;</>)]: 0x176,
+ [ReactDOM.renderToString(<>&#x177;</>)]: 0x177,
+ [ReactDOM.renderToString(<>&#x178;</>)]: 0x178,
+ [ReactDOM.renderToString(<>&#x179;</>)]: 0x179,
+ [ReactDOM.renderToString(<>&#x17A;</>)]: 0x17a,
+ [ReactDOM.renderToString(<>&#x17B;</>)]: 0x17b,
+ [ReactDOM.renderToString(<>&#x17C;</>)]: 0x17c,
+ [ReactDOM.renderToString(<>&#x17D;</>)]: 0x17d,
+ [ReactDOM.renderToString(<>&#x17E;</>)]: 0x17e,
+ [ReactDOM.renderToString(<>&#x17F;</>)]: 0x17f,
+ [ReactDOM.renderToString(<>&#x180;</>)]: 0x180,
+ [ReactDOM.renderToString(<>&#x181;</>)]: 0x181,
+ [ReactDOM.renderToString(<>&#x182;</>)]: 0x182,
+ [ReactDOM.renderToString(<>&#x183;</>)]: 0x183,
+ [ReactDOM.renderToString(<>&#x184;</>)]: 0x184,
+ [ReactDOM.renderToString(<>&#x185;</>)]: 0x185,
+ [ReactDOM.renderToString(<>&#x186;</>)]: 0x186,
+ [ReactDOM.renderToString(<>&#x187;</>)]: 0x187,
+ [ReactDOM.renderToString(<>&#x188;</>)]: 0x188,
+ [ReactDOM.renderToString(<>&#x189;</>)]: 0x189,
+ [ReactDOM.renderToString(<>&#x18A;</>)]: 0x18a,
+ [ReactDOM.renderToString(<>&#x18B;</>)]: 0x18b,
+ [ReactDOM.renderToString(<>&#x18C;</>)]: 0x18c,
+ [ReactDOM.renderToString(<>&#x18D;</>)]: 0x18d,
+ [ReactDOM.renderToString(<>&#x18E;</>)]: 0x18e,
+ [ReactDOM.renderToString(<>&#x18F;</>)]: 0x18f,
+ [ReactDOM.renderToString(<>&#x190;</>)]: 0x190,
+ [ReactDOM.renderToString(<>&#x191;</>)]: 0x191,
+ [ReactDOM.renderToString(<>&#x192;</>)]: 0x192,
+ [ReactDOM.renderToString(<>&#x193;</>)]: 0x193,
+ [ReactDOM.renderToString(<>&#x194;</>)]: 0x194,
+ [ReactDOM.renderToString(<>&#x195;</>)]: 0x195,
+ [ReactDOM.renderToString(<>&#x196;</>)]: 0x196,
+ [ReactDOM.renderToString(<>&#x197;</>)]: 0x197,
+ [ReactDOM.renderToString(<>&#x198;</>)]: 0x198,
+ [ReactDOM.renderToString(<>&#x199;</>)]: 0x199,
+ [ReactDOM.renderToString(<>&#x19A;</>)]: 0x19a,
+ [ReactDOM.renderToString(<>&#x19B;</>)]: 0x19b,
+ [ReactDOM.renderToString(<>&#x19C;</>)]: 0x19c,
+ [ReactDOM.renderToString(<>&#x19D;</>)]: 0x19d,
+ [ReactDOM.renderToString(<>&#x19E;</>)]: 0x19e,
+ [ReactDOM.renderToString(<>&#x19F;</>)]: 0x19f,
+ [ReactDOM.renderToString(<>&#x1A0;</>)]: 0x1a0,
+ [ReactDOM.renderToString(<>&#x1A1;</>)]: 0x1a1,
+ [ReactDOM.renderToString(<>&#x1A2;</>)]: 0x1a2,
+ [ReactDOM.renderToString(<>&#x1A3;</>)]: 0x1a3,
+ [ReactDOM.renderToString(<>&#x1A4;</>)]: 0x1a4,
+ [ReactDOM.renderToString(<>&#x1A5;</>)]: 0x1a5,
+ [ReactDOM.renderToString(<>&#x1A6;</>)]: 0x1a6,
+ [ReactDOM.renderToString(<>&#x1A7;</>)]: 0x1a7,
+ [ReactDOM.renderToString(<>&#x1A8;</>)]: 0x1a8,
+ [ReactDOM.renderToString(<>&#x1A9;</>)]: 0x1a9,
+ [ReactDOM.renderToString(<>&#x1AA;</>)]: 0x1aa,
+ [ReactDOM.renderToString(<>&#x1AB;</>)]: 0x1ab,
+ [ReactDOM.renderToString(<>&#x1AC;</>)]: 0x1ac,
+ [ReactDOM.renderToString(<>&#x1AD;</>)]: 0x1ad,
+ [ReactDOM.renderToString(<>&#x1AE;</>)]: 0x1ae,
+ [ReactDOM.renderToString(<>&#x1AF;</>)]: 0x1af,
+ [ReactDOM.renderToString(<>&#x1B0;</>)]: 0x1b0,
+ [ReactDOM.renderToString(<>&#x1B1;</>)]: 0x1b1,
+ [ReactDOM.renderToString(<>&#x1B2;</>)]: 0x1b2,
+ [ReactDOM.renderToString(<>&#x1B3;</>)]: 0x1b3,
+ [ReactDOM.renderToString(<>&#x1B4;</>)]: 0x1b4,
+ [ReactDOM.renderToString(<>&#x1B5;</>)]: 0x1b5,
+ [ReactDOM.renderToString(<>&#x1B6;</>)]: 0x1b6,
+ [ReactDOM.renderToString(<>&#x1B7;</>)]: 0x1b7,
+ [ReactDOM.renderToString(<>&#x1B8;</>)]: 0x1b8,
+ [ReactDOM.renderToString(<>&#x1B9;</>)]: 0x1b9,
+ [ReactDOM.renderToString(<>&#x1BA;</>)]: 0x1ba,
+ [ReactDOM.renderToString(<>&#x1BB;</>)]: 0x1bb,
+ [ReactDOM.renderToString(<>&#x1BC;</>)]: 0x1bc,
+ [ReactDOM.renderToString(<>&#x1BD;</>)]: 0x1bd,
+ [ReactDOM.renderToString(<>&#x1BE;</>)]: 0x1be,
+ [ReactDOM.renderToString(<>&#x1BF;</>)]: 0x1bf,
+ [ReactDOM.renderToString(<>&#x1C0;</>)]: 0x1c0,
+ [ReactDOM.renderToString(<>&#x1C1;</>)]: 0x1c1,
+ [ReactDOM.renderToString(<>&#x1C2;</>)]: 0x1c2,
+ [ReactDOM.renderToString(<>&#x1C3;</>)]: 0x1c3,
+ [ReactDOM.renderToString(<>&#x1C4;</>)]: 0x1c4,
+ [ReactDOM.renderToString(<>&#x1C5;</>)]: 0x1c5,
+ [ReactDOM.renderToString(<>&#x1C6;</>)]: 0x1c6,
+ [ReactDOM.renderToString(<>&#x1C7;</>)]: 0x1c7,
+ [ReactDOM.renderToString(<>&#x1C8;</>)]: 0x1c8,
+ [ReactDOM.renderToString(<>&#x1C9;</>)]: 0x1c9,
+ [ReactDOM.renderToString(<>&#x1CA;</>)]: 0x1ca,
+ [ReactDOM.renderToString(<>&#x1CB;</>)]: 0x1cb,
+ [ReactDOM.renderToString(<>&#x1CC;</>)]: 0x1cc,
+ [ReactDOM.renderToString(<>&#x1CD;</>)]: 0x1cd,
+ [ReactDOM.renderToString(<>&#x1CE;</>)]: 0x1ce,
+ [ReactDOM.renderToString(<>&#x1CF;</>)]: 0x1cf,
+ [ReactDOM.renderToString(<>&#x1D0;</>)]: 0x1d0,
+ [ReactDOM.renderToString(<>&#x1D1;</>)]: 0x1d1,
+ [ReactDOM.renderToString(<>&#x1D2;</>)]: 0x1d2,
+ [ReactDOM.renderToString(<>&#x1D3;</>)]: 0x1d3,
+ [ReactDOM.renderToString(<>&#x1D4;</>)]: 0x1d4,
+ [ReactDOM.renderToString(<>&#x1D5;</>)]: 0x1d5,
+ [ReactDOM.renderToString(<>&#x1D6;</>)]: 0x1d6,
+ [ReactDOM.renderToString(<>&#x1D7;</>)]: 0x1d7,
+ [ReactDOM.renderToString(<>&#x1D8;</>)]: 0x1d8,
+ [ReactDOM.renderToString(<>&#x1D9;</>)]: 0x1d9,
+ [ReactDOM.renderToString(<>&#x1DA;</>)]: 0x1da,
+ [ReactDOM.renderToString(<>&#x1DB;</>)]: 0x1db,
+ [ReactDOM.renderToString(<>&#x1DC;</>)]: 0x1dc,
+ [ReactDOM.renderToString(<>&#x1DD;</>)]: 0x1dd,
+ [ReactDOM.renderToString(<>&#x1DE;</>)]: 0x1de,
+ [ReactDOM.renderToString(<>&#x1DF;</>)]: 0x1df,
+ [ReactDOM.renderToString(<>&#x1E0;</>)]: 0x1e0,
+ [ReactDOM.renderToString(<>&#x1E1;</>)]: 0x1e1,
+ [ReactDOM.renderToString(<>&#x1E2;</>)]: 0x1e2,
+ [ReactDOM.renderToString(<>&#x1E3;</>)]: 0x1e3,
+ [ReactDOM.renderToString(<>&#x1E4;</>)]: 0x1e4,
+ [ReactDOM.renderToString(<>&#x1E5;</>)]: 0x1e5,
+ [ReactDOM.renderToString(<>&#x1E6;</>)]: 0x1e6,
+ [ReactDOM.renderToString(<>&#x1E7;</>)]: 0x1e7,
+ [ReactDOM.renderToString(<>&#x1E8;</>)]: 0x1e8,
+ [ReactDOM.renderToString(<>&#x1E9;</>)]: 0x1e9,
+ [ReactDOM.renderToString(<>&#x1EA;</>)]: 0x1ea,
+ [ReactDOM.renderToString(<>&#x1EB;</>)]: 0x1eb,
+ [ReactDOM.renderToString(<>&#x1EC;</>)]: 0x1ec,
+ [ReactDOM.renderToString(<>&#x1ED;</>)]: 0x1ed,
+ [ReactDOM.renderToString(<>&#x1EE;</>)]: 0x1ee,
+ [ReactDOM.renderToString(<>&#x1EF;</>)]: 0x1ef,
+ [ReactDOM.renderToString(<>&#x1F0;</>)]: 0x1f0,
+ [ReactDOM.renderToString(<>&#x1F1;</>)]: 0x1f1,
+ [ReactDOM.renderToString(<>&#x1F2;</>)]: 0x1f2,
+ [ReactDOM.renderToString(<>&#x1F3;</>)]: 0x1f3,
+ [ReactDOM.renderToString(<>&#x1F4;</>)]: 0x1f4,
+ [ReactDOM.renderToString(<>&#x1F5;</>)]: 0x1f5,
+ [ReactDOM.renderToString(<>&#x1F6;</>)]: 0x1f6,
+ [ReactDOM.renderToString(<>&#x1F7;</>)]: 0x1f7,
+ [ReactDOM.renderToString(<>&#x1F8;</>)]: 0x1f8,
+ [ReactDOM.renderToString(<>&#x1F9;</>)]: 0x1f9,
+ [ReactDOM.renderToString(<>&#x1FA;</>)]: 0x1fa,
+ [ReactDOM.renderToString(<>&#x1FB;</>)]: 0x1fb,
+ [ReactDOM.renderToString(<>&#x1FC;</>)]: 0x1fc,
+ [ReactDOM.renderToString(<>&#x1FD;</>)]: 0x1fd,
+ [ReactDOM.renderToString(<>&#x1FE;</>)]: 0x1fe,
+ [ReactDOM.renderToString(<>&#x1FF;</>)]: 0x1ff,
+ [ReactDOM.renderToString(<>&#x200;</>)]: 0x200,
+ [ReactDOM.renderToString(<>&#x201;</>)]: 0x201,
+ [ReactDOM.renderToString(<>&#x202;</>)]: 0x202,
+ [ReactDOM.renderToString(<>&#x203;</>)]: 0x203,
+ [ReactDOM.renderToString(<>&#x204;</>)]: 0x204,
+ [ReactDOM.renderToString(<>&#x205;</>)]: 0x205,
+ [ReactDOM.renderToString(<>&#x206;</>)]: 0x206,
+ [ReactDOM.renderToString(<>&#x207;</>)]: 0x207,
+ [ReactDOM.renderToString(<>&#x208;</>)]: 0x208,
+ [ReactDOM.renderToString(<>&#x209;</>)]: 0x209,
+ [ReactDOM.renderToString(<>&#x20A;</>)]: 0x20a,
+ [ReactDOM.renderToString(<>&#x20B;</>)]: 0x20b,
+ [ReactDOM.renderToString(<>&#x20C;</>)]: 0x20c,
+ [ReactDOM.renderToString(<>&#x20D;</>)]: 0x20d,
+ [ReactDOM.renderToString(<>&#x20E;</>)]: 0x20e,
+ [ReactDOM.renderToString(<>&#x20F;</>)]: 0x20f,
+ [ReactDOM.renderToString(<>&#x210;</>)]: 0x210,
+ [ReactDOM.renderToString(<>&#x211;</>)]: 0x211,
+ [ReactDOM.renderToString(<>&#x212;</>)]: 0x212,
+ [ReactDOM.renderToString(<>&#x213;</>)]: 0x213,
+ [ReactDOM.renderToString(<>&#x214;</>)]: 0x214,
+ [ReactDOM.renderToString(<>&#x215;</>)]: 0x215,
+ [ReactDOM.renderToString(<>&#x216;</>)]: 0x216,
+ [ReactDOM.renderToString(<>&#x217;</>)]: 0x217,
+ [ReactDOM.renderToString(<>&#x218;</>)]: 0x218,
+ [ReactDOM.renderToString(<>&#x219;</>)]: 0x219,
+ [ReactDOM.renderToString(<>&#x21A;</>)]: 0x21a,
+ [ReactDOM.renderToString(<>&#x21B;</>)]: 0x21b,
+ [ReactDOM.renderToString(<>&#x21C;</>)]: 0x21c,
+ [ReactDOM.renderToString(<>&#x21D;</>)]: 0x21d,
+ [ReactDOM.renderToString(<>&#x21E;</>)]: 0x21e,
+ [ReactDOM.renderToString(<>&#x21F;</>)]: 0x21f,
+ [ReactDOM.renderToString(<>&#x220;</>)]: 0x220,
+ [ReactDOM.renderToString(<>&#x221;</>)]: 0x221,
+ [ReactDOM.renderToString(<>&#x222;</>)]: 0x222,
+ [ReactDOM.renderToString(<>&#x223;</>)]: 0x223,
+ [ReactDOM.renderToString(<>&#x224;</>)]: 0x224,
+ [ReactDOM.renderToString(<>&#x225;</>)]: 0x225,
+ [ReactDOM.renderToString(<>&#x226;</>)]: 0x226,
+ [ReactDOM.renderToString(<>&#x227;</>)]: 0x227,
+ [ReactDOM.renderToString(<>&#x228;</>)]: 0x228,
+ [ReactDOM.renderToString(<>&#x229;</>)]: 0x229,
+ [ReactDOM.renderToString(<>&#x22A;</>)]: 0x22a,
+ [ReactDOM.renderToString(<>&#x22B;</>)]: 0x22b,
+ [ReactDOM.renderToString(<>&#x22C;</>)]: 0x22c,
+ [ReactDOM.renderToString(<>&#x22D;</>)]: 0x22d,
+ [ReactDOM.renderToString(<>&#x22E;</>)]: 0x22e,
+ [ReactDOM.renderToString(<>&#x22F;</>)]: 0x22f,
+ [ReactDOM.renderToString(<>&#x230;</>)]: 0x230,
+ [ReactDOM.renderToString(<>&#x231;</>)]: 0x231,
+ [ReactDOM.renderToString(<>&#x232;</>)]: 0x232,
+ [ReactDOM.renderToString(<>&#x233;</>)]: 0x233,
+ [ReactDOM.renderToString(<>&#x234;</>)]: 0x234,
+ [ReactDOM.renderToString(<>&#x235;</>)]: 0x235,
+ [ReactDOM.renderToString(<>&#x236;</>)]: 0x236,
+ [ReactDOM.renderToString(<>&#x237;</>)]: 0x237,
+ [ReactDOM.renderToString(<>&#x238;</>)]: 0x238,
+ [ReactDOM.renderToString(<>&#x239;</>)]: 0x239,
+ [ReactDOM.renderToString(<>&#x23A;</>)]: 0x23a,
+ [ReactDOM.renderToString(<>&#x23B;</>)]: 0x23b,
+ [ReactDOM.renderToString(<>&#x23C;</>)]: 0x23c,
+ [ReactDOM.renderToString(<>&#x23D;</>)]: 0x23d,
+ [ReactDOM.renderToString(<>&#x23E;</>)]: 0x23e,
+ [ReactDOM.renderToString(<>&#x23F;</>)]: 0x23f,
+ [ReactDOM.renderToString(<>&#x240;</>)]: 0x240,
+ [ReactDOM.renderToString(<>&#x241;</>)]: 0x241,
+ [ReactDOM.renderToString(<>&#x242;</>)]: 0x242,
+ [ReactDOM.renderToString(<>&#x243;</>)]: 0x243,
+ [ReactDOM.renderToString(<>&#x244;</>)]: 0x244,
+ [ReactDOM.renderToString(<>&#x245;</>)]: 0x245,
+ [ReactDOM.renderToString(<>&#x246;</>)]: 0x246,
+ [ReactDOM.renderToString(<>&#x247;</>)]: 0x247,
+ [ReactDOM.renderToString(<>&#x248;</>)]: 0x248,
+ [ReactDOM.renderToString(<>&#x249;</>)]: 0x249,
+ [ReactDOM.renderToString(<>&#x24A;</>)]: 0x24a,
+ [ReactDOM.renderToString(<>&#x24B;</>)]: 0x24b,
+ [ReactDOM.renderToString(<>&#x24C;</>)]: 0x24c,
+ [ReactDOM.renderToString(<>&#x24D;</>)]: 0x24d,
+ [ReactDOM.renderToString(<>&#x24E;</>)]: 0x24e,
+ [ReactDOM.renderToString(<>&#x24F;</>)]: 0x24f,
+ [ReactDOM.renderToString(<>&#x250;</>)]: 0x250,
+ [ReactDOM.renderToString(<>&#x251;</>)]: 0x251,
+ [ReactDOM.renderToString(<>&#x252;</>)]: 0x252,
+ [ReactDOM.renderToString(<>&#x253;</>)]: 0x253,
+ [ReactDOM.renderToString(<>&#x254;</>)]: 0x254,
+ [ReactDOM.renderToString(<>&#x255;</>)]: 0x255,
+ [ReactDOM.renderToString(<>&#x256;</>)]: 0x256,
+ [ReactDOM.renderToString(<>&#x257;</>)]: 0x257,
+ [ReactDOM.renderToString(<>&#x258;</>)]: 0x258,
+ [ReactDOM.renderToString(<>&#x259;</>)]: 0x259,
+ [ReactDOM.renderToString(<>&#x25A;</>)]: 0x25a,
+ [ReactDOM.renderToString(<>&#x25B;</>)]: 0x25b,
+ [ReactDOM.renderToString(<>&#x25C;</>)]: 0x25c,
+ [ReactDOM.renderToString(<>&#x25D;</>)]: 0x25d,
+ [ReactDOM.renderToString(<>&#x25E;</>)]: 0x25e,
+ [ReactDOM.renderToString(<>&#x25F;</>)]: 0x25f,
+ [ReactDOM.renderToString(<>&#x260;</>)]: 0x260,
+ [ReactDOM.renderToString(<>&#x261;</>)]: 0x261,
+ [ReactDOM.renderToString(<>&#x262;</>)]: 0x262,
+ [ReactDOM.renderToString(<>&#x263;</>)]: 0x263,
+ [ReactDOM.renderToString(<>&#x264;</>)]: 0x264,
+ [ReactDOM.renderToString(<>&#x265;</>)]: 0x265,
+ [ReactDOM.renderToString(<>&#x266;</>)]: 0x266,
+ [ReactDOM.renderToString(<>&#x267;</>)]: 0x267,
+ [ReactDOM.renderToString(<>&#x268;</>)]: 0x268,
+ [ReactDOM.renderToString(<>&#x269;</>)]: 0x269,
+ [ReactDOM.renderToString(<>&#x26A;</>)]: 0x26a,
+ [ReactDOM.renderToString(<>&#x26B;</>)]: 0x26b,
+ [ReactDOM.renderToString(<>&#x26C;</>)]: 0x26c,
+ [ReactDOM.renderToString(<>&#x26D;</>)]: 0x26d,
+ [ReactDOM.renderToString(<>&#x26E;</>)]: 0x26e,
+ [ReactDOM.renderToString(<>&#x26F;</>)]: 0x26f,
+ [ReactDOM.renderToString(<>&#x270;</>)]: 0x270,
+ [ReactDOM.renderToString(<>&#x271;</>)]: 0x271,
+ [ReactDOM.renderToString(<>&#x272;</>)]: 0x272,
+ [ReactDOM.renderToString(<>&#x273;</>)]: 0x273,
+ [ReactDOM.renderToString(<>&#x274;</>)]: 0x274,
+ [ReactDOM.renderToString(<>&#x275;</>)]: 0x275,
+ [ReactDOM.renderToString(<>&#x276;</>)]: 0x276,
+ [ReactDOM.renderToString(<>&#x277;</>)]: 0x277,
+ [ReactDOM.renderToString(<>&#x278;</>)]: 0x278,
+ [ReactDOM.renderToString(<>&#x279;</>)]: 0x279,
+ [ReactDOM.renderToString(<>&#x27A;</>)]: 0x27a,
+ [ReactDOM.renderToString(<>&#x27B;</>)]: 0x27b,
+ [ReactDOM.renderToString(<>&#x27C;</>)]: 0x27c,
+ [ReactDOM.renderToString(<>&#x27D;</>)]: 0x27d,
+ [ReactDOM.renderToString(<>&#x27E;</>)]: 0x27e,
+ [ReactDOM.renderToString(<>&#x27F;</>)]: 0x27f,
+ [ReactDOM.renderToString(<>&#x280;</>)]: 0x280,
+ [ReactDOM.renderToString(<>&#x281;</>)]: 0x281,
+ [ReactDOM.renderToString(<>&#x282;</>)]: 0x282,
+ [ReactDOM.renderToString(<>&#x283;</>)]: 0x283,
+ [ReactDOM.renderToString(<>&#x284;</>)]: 0x284,
+ [ReactDOM.renderToString(<>&#x285;</>)]: 0x285,
+ [ReactDOM.renderToString(<>&#x286;</>)]: 0x286,
+ [ReactDOM.renderToString(<>&#x287;</>)]: 0x287,
+ [ReactDOM.renderToString(<>&#x288;</>)]: 0x288,
+ [ReactDOM.renderToString(<>&#x289;</>)]: 0x289,
+ [ReactDOM.renderToString(<>&#x28A;</>)]: 0x28a,
+ [ReactDOM.renderToString(<>&#x28B;</>)]: 0x28b,
+ [ReactDOM.renderToString(<>&#x28C;</>)]: 0x28c,
+ [ReactDOM.renderToString(<>&#x28D;</>)]: 0x28d,
+ [ReactDOM.renderToString(<>&#x28E;</>)]: 0x28e,
+ [ReactDOM.renderToString(<>&#x28F;</>)]: 0x28f,
+ [ReactDOM.renderToString(<>&#x290;</>)]: 0x290,
+ [ReactDOM.renderToString(<>&#x291;</>)]: 0x291,
+ [ReactDOM.renderToString(<>&#x292;</>)]: 0x292,
+ [ReactDOM.renderToString(<>&#x293;</>)]: 0x293,
+ [ReactDOM.renderToString(<>&#x294;</>)]: 0x294,
+};
+
+export function test() {
+ for (let rawKey in elements) {
+ var key = rawKey;
+ if (rawKey.startsWith("&")) {
+ var txt = document.createElement("textarea");
+ txt.innerHTML = rawKey;
+ key = txt.value;
+ }
+
+ console.assert(
+ elements[rawKey] === key.codePointAt(0),
+ `${key} is not ${elements[rawKey]}`
+ );
+ }
+
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/jsx-spacing.js b/test/snippets/jsx-spacing.js
new file mode 100644
index 000000000..9b9f28a33
--- /dev/null
+++ b/test/snippets/jsx-spacing.js
@@ -0,0 +1,29 @@
+"use strict";
+exports.__esModule = true;
+exports.test = void 0;
+var ReactDOM = require("react-dom/server");
+var ReturnDescriptionAsString = function (_a) {
+ var description = _a.description;
+ return description;
+};
+function test() {
+ var _bun = ReactDOM.renderToString(<ReturnDescriptionAsString description="line1
+line2 trailing space
+
+line4 no trailing space 'single quote' \t\f\v\uF000 `template string`
+
+line6 no trailing space
+line7 trailing newline that ${terminates} the string literal
+"></ReturnDescriptionAsString>);
+ // convert HTML entities to unicode
+ var el = document.createElement("textarea");
+ el.innerHTML = _bun;
+ var bun = el.value;
+ var esbuild = "line1\nline2 trailing space \n\nline4 no trailing space 'single quote' \\t\\f\\v\\uF000 `template string`\n\nline6 no trailing space\nline7 trailing newline that ${terminates} the string literal\n";
+ console.assert(bun === esbuild, "strings did not match: " + JSON.stringify({
+ received: bun,
+ expected: esbuild
+ }, null, 2));
+ testDone(import.meta.url);
+}
+exports.test = test;
diff --git a/test/snippets/jsx-spacing.jsx b/test/snippets/jsx-spacing.jsx
new file mode 100644
index 000000000..b6d13f97a
--- /dev/null
+++ b/test/snippets/jsx-spacing.jsx
@@ -0,0 +1,43 @@
+import * as ReactDOM from "react-dom/server";
+
+const ReturnDescriptionAsString = ({ description }) => description;
+
+export function test() {
+ const _bun = ReactDOM.renderToString(
+ <ReturnDescriptionAsString
+ description="line1
+line2 trailing space
+
+line4 no trailing space 'single quote' \t\f\v\uF000 `template string`
+
+line6 no trailing space
+line7 trailing newline that ${terminates} the string literal
+"
+ ></ReturnDescriptionAsString>
+ );
+
+ // convert HTML entities to unicode
+ const el = document.createElement("textarea");
+ el.innerHTML = _bun;
+ const bun = el.value;
+
+ const esbuild =
+ "line1\nline2 trailing space \n\nline4 no trailing space 'single quote' \\t\\f\\v\\uF000 `template string`\n\nline6 no trailing space\nline7 trailing newline that ${terminates} the string literal\n";
+
+ const tsc =
+ "line1\nline2 trailing space \n\nline4 no trailing space 'single quote' \\t\\f\\v\\uF000 `template string`\n\nline6 no trailing space\nline7 trailing newline that ${terminates} the string literal\n";
+
+ console.assert(
+ bun === esbuild && bun === tsc,
+ `strings did not match: ${JSON.stringify(
+ {
+ received: bun,
+ expected: esbuild,
+ },
+ null,
+ 2
+ )}`
+ );
+
+ testDone(import.meta.url);
+}
diff --git a/test/snippets/jsx-top-level.tsx b/test/snippets/jsx-top-level.tsx
new file mode 100644
index 000000000..2b49b5959
--- /dev/null
+++ b/test/snippets/jsx-top-level.tsx
@@ -0,0 +1,21 @@
+const isDropdown = true;
+const iconName = "";
+const adjustedPadding = 5;
+
+const Icon = ({ name, size, color }) => {
+ return name;
+};
+
+const Foo = <Icon name="arrow-down" size="1.5em" color="currentColor" />;
+const yoooo = [<Icon name="arrow-down" size="1.5em" color="currentColor" />];
+const iconProps = {
+ // This regression test is to ensure that the JSX value here does not print as an e_missing (nothing)
+ rightIcon: <Icon name="arrow-down" size="1.5em" color="currentColor" />,
+ paddingRight: adjustedPadding,
+};
+
+export function test() {
+ const foo = iconProps.rightIcon;
+ yoooo[0];
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/latin1-chars-in-regexp.js b/test/snippets/latin1-chars-in-regexp.js
new file mode 100644
index 000000000..e4d613f5e
--- /dev/null
+++ b/test/snippets/latin1-chars-in-regexp.js
@@ -0,0 +1,70 @@
+// original code:
+// var re_btou = new RegExp(
+// [
+// "[\xC0-\xDF][\x80-\xBF]",
+// "[\xE0-\xEF][\x80-\xBF]{2}",
+// "[\xF0-\xF7][\x80-\xBF]{3}",
+// ].join("|"),
+// "g"
+// );
+
+export var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
+export var re_btou = new RegExp(
+ [
+ "[\xC0-\xDF][\x80-\xBF]",
+ "[\xE0-\xEF][\x80-\xBF]{2}",
+ "[\xF0-\xF7][\x80-\xBF]{3}",
+ ].join("|"),
+ "g"
+);
+
+const encoder = new TextEncoder();
+const realLines = [
+ "[\xC0-\xDF][\x80-\xBF]",
+ "[\xE0-\xEF][\x80-\xBF]{2}",
+ "[\xF0-\xF7][\x80-\xBF]{3}",
+];
+const real = realLines.map((input) => Array.from(encoder.encode(input)));
+
+const expected = [
+ [91, 195, 128, 45, 195, 159, 93, 91, 194, 128, 45, 194, 191, 93],
+ [
+ 91, 195, 160, 45, 195, 175, 93, 91, 194, 128, 45, 194, 191, 93, 123, 50,
+ 125,
+ ],
+ [
+ 91, 195, 176, 45, 195, 183, 93, 91, 194, 128, 45, 194, 191, 93, 123, 51,
+ 125,
+ ],
+];
+
+const newlinePreserved = `\n`;
+
+export function test() {
+ if (
+ !real.every((point, i) => point.every((val, j) => val === expected[i][j]))
+ ) {
+ throw new Error(
+ `test failed
+${JSON.stringify({ expected, real }, null, 2)}`
+ );
+ }
+
+ if (newlinePreserved.length !== 1 || newlinePreserved.charCodeAt(0) !== 10) {
+ throw new Error("Newline was not preserved");
+ }
+
+ const decoder = new TextDecoder("utf8");
+ if (
+ !realLines.every(
+ (line, i) => decoder.decode(Uint8Array.from(expected[i])) === line
+ )
+ ) {
+ throw new Error(
+ `test failed. Lines did not match.
+${JSON.stringify({ expected, real }, null, 2)}`
+ );
+ }
+
+ testDone(import.meta.url);
+}
diff --git a/test/snippets/lodash-regexp.js b/test/snippets/lodash-regexp.js
new file mode 100644
index 000000000..bc683e535
--- /dev/null
+++ b/test/snippets/lodash-regexp.js
@@ -0,0 +1,24 @@
+import { shuffle } from "lodash";
+
+// Lodash uses a variety of uncommon syntax (such as unicode escapes in regexp)
+// so running it is a broad test of the parser, lexer, and printer
+export function test() {
+ const foo = [1, 2, 3, 4, 6];
+ const bar = shuffle(foo);
+ console.assert(bar !== foo);
+ console.assert(bar.length === foo.length);
+ bar.sort();
+ foo.sort();
+ for (let i = 0; i < bar.length; i++) {
+ console.assert(bar[i] === foo[i], "expected " + i + " to be " + foo[i]);
+ console.assert(typeof bar[i] === "number");
+ console.assert(typeof foo[i] === "number");
+ }
+
+ return testDone(import.meta.url);
+}
+
+// export function test() {
+// const regexp = RegExp("['\u2019]", "g");
+// return testDone(import.meta.url);
+// }
diff --git a/test/snippets/multiple-imports.js b/test/snippets/multiple-imports.js
new file mode 100644
index 000000000..320d0105e
--- /dev/null
+++ b/test/snippets/multiple-imports.js
@@ -0,0 +1,13 @@
+import React from "react";
+import React2 from "react";
+
+const bacon = React;
+const bacon2 = <>hello</>;
+
+export function test() {
+ console.assert(bacon === React);
+ console.assert(bacon === React2);
+ console.assert(typeof bacon2 !== "undefined");
+ console.assert(React.isValidElement(bacon2));
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/multiple-var.js b/test/snippets/multiple-var.js
new file mode 100644
index 000000000..527634a00
--- /dev/null
+++ b/test/snippets/multiple-var.js
@@ -0,0 +1,11 @@
+var foo = true;
+
+globalThis.TRUE_BUT_WE_CANT_TREESHAKE_IT = true;
+if (globalThis.TRUE_BUT_WE_CANT_TREESHAKE_IT) {
+ var { foo } = { foo: false };
+}
+
+export function test() {
+ console.assert(foo === false, "foo should be false");
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/number-literal-bug.js b/test/snippets/number-literal-bug.js
new file mode 100644
index 000000000..cb6990348
--- /dev/null
+++ b/test/snippets/number-literal-bug.js
@@ -0,0 +1,11 @@
+// test that we don't call functions on number literals
+export function test() {
+ const precision = 10;
+ try {
+ parseFloat((0.0).toPrecision(precision) + "1");
+ } catch (exception) {
+ throw new Error("Test Failed", exception);
+ }
+
+ testDone(import.meta.url);
+}
diff --git a/test/snippets/optional-chain-with-function.js b/test/snippets/optional-chain-with-function.js
new file mode 100644
index 000000000..82ad51d46
--- /dev/null
+++ b/test/snippets/optional-chain-with-function.js
@@ -0,0 +1,15 @@
+export function test() {
+ try {
+ const multipleSecondaryValues = undefined;
+ const ratings = ["123"];
+
+ var bar = multipleSecondaryValues?.map((value) => false);
+ bar = bar?.multipleSecondaryValues?.map((value) => false);
+ bar = bar?.bar?.multipleSecondaryValues?.map((value) => false);
+ bar = {}?.bar?.multipleSecondaryValues?.map((value) => false);
+ } catch (e) {
+ throw e;
+ }
+
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/package-json-exports/_node_modules_copy/exact/im-exact.js b/test/snippets/package-json-exports/_node_modules_copy/exact/im-exact.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/exact/im-exact.js
diff --git a/test/snippets/package-json-exports/_node_modules_copy/exact/package.json b/test/snippets/package-json-exports/_node_modules_copy/exact/package.json
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/exact/package.json
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/dir/file.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/dir/file.js
new file mode 100644
index 000000000..26ab53d5b
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/dir/file.js
@@ -0,0 +1 @@
+export const target = "browser";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/dir/foo.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/dir/foo.js
new file mode 100644
index 000000000..e54d9d4d6
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/dir/foo.js
@@ -0,0 +1 @@
+export const target = 'browser'; \ No newline at end of file
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/foo.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/foo.js
new file mode 100644
index 000000000..e54d9d4d6
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/foo.js
@@ -0,0 +1 @@
+export const target = 'browser'; \ No newline at end of file
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/index.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/index.js
new file mode 100644
index 000000000..e54d9d4d6
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/browser/index.js
@@ -0,0 +1 @@
+export const target = 'browser'; \ No newline at end of file
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/default/dir/file.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/default/dir/file.js
new file mode 100644
index 000000000..826077c96
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/default/dir/file.js
@@ -0,0 +1 @@
+export const target = "default";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/default/dir/foo.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/default/dir/foo.js
new file mode 100644
index 000000000..826077c96
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/default/dir/foo.js
@@ -0,0 +1 @@
+export const target = "default";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/default/foo.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/default/foo.js
new file mode 100644
index 000000000..8fb5eac0c
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/default/foo.js
@@ -0,0 +1 @@
+export const target = 'default';
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/default/index.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/default/index.js
new file mode 100644
index 000000000..826077c96
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/default/index.js
@@ -0,0 +1 @@
+export const target = "default";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/node/dir/file.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/node/dir/file.js
new file mode 100644
index 000000000..301a88090
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/node/dir/file.js
@@ -0,0 +1 @@
+export const target = "node";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/node/dir/foo.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/node/dir/foo.js
new file mode 100644
index 000000000..301a88090
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/node/dir/foo.js
@@ -0,0 +1 @@
+export const target = "node";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/node/foo.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/node/foo.js
new file mode 100644
index 000000000..b9504cdf9
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/node/foo.js
@@ -0,0 +1 @@
+export const target = 'node'; \ No newline at end of file
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/node/index.js b/test/snippets/package-json-exports/_node_modules_copy/inexact/node/index.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/node/index.js
diff --git a/test/snippets/package-json-exports/_node_modules_copy/inexact/package.json b/test/snippets/package-json-exports/_node_modules_copy/inexact/package.json
new file mode 100644
index 000000000..1c9b5185d
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/inexact/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "inexact",
+ "exports": {
+ ".": {
+ "node": "./node/index.js",
+ "browser": "./browser/index.js",
+ "default": "./default/index.js"
+ },
+ "./foo": {
+ "node": "./node/foo.js",
+ "browser": "./browser/foo.js",
+ "default": "./default/foo.js"
+ },
+ "./": {
+ "node": "./node/dir/",
+ "browser": "./browser/dir/",
+ "default": "./default/dir/"
+ }
+ }
+}
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/dir/file.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/dir/file.js
new file mode 100644
index 000000000..26ab53d5b
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/dir/file.js
@@ -0,0 +1 @@
+export const target = "browser";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/dir/foo.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/dir/foo.js
new file mode 100644
index 000000000..e54d9d4d6
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/dir/foo.js
@@ -0,0 +1 @@
+export const target = 'browser'; \ No newline at end of file
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/foo.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/foo.js
new file mode 100644
index 000000000..e54d9d4d6
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/foo.js
@@ -0,0 +1 @@
+export const target = 'browser'; \ No newline at end of file
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/index.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/index.js
new file mode 100644
index 000000000..e54d9d4d6
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/index.js
@@ -0,0 +1 @@
+export const target = 'browser'; \ No newline at end of file
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/js-file.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/js-file.js
new file mode 100644
index 000000000..ff519c58f
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/js-file.js
@@ -0,0 +1 @@
+export const isJS = true;
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/js-file.ts b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/js-file.ts
new file mode 100644
index 000000000..26ab53d5b
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/browser/js-file.ts
@@ -0,0 +1 @@
+export const target = "browser";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/dir/file.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/dir/file.js
new file mode 100644
index 000000000..826077c96
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/dir/file.js
@@ -0,0 +1 @@
+export const target = "default";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/dir/foo.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/dir/foo.js
new file mode 100644
index 000000000..826077c96
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/dir/foo.js
@@ -0,0 +1 @@
+export const target = "default";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/foo.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/foo.js
new file mode 100644
index 000000000..8fb5eac0c
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/foo.js
@@ -0,0 +1 @@
+export const target = 'default';
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/index.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/index.js
new file mode 100644
index 000000000..826077c96
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/default/index.js
@@ -0,0 +1 @@
+export const target = "default";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/dir/file.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/dir/file.js
new file mode 100644
index 000000000..301a88090
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/dir/file.js
@@ -0,0 +1 @@
+export const target = "node";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/dir/foo.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/dir/foo.js
new file mode 100644
index 000000000..301a88090
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/dir/foo.js
@@ -0,0 +1 @@
+export const target = "node";
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/foo.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/foo.js
new file mode 100644
index 000000000..b9504cdf9
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/foo.js
@@ -0,0 +1 @@
+export const target = 'node'; \ No newline at end of file
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/index.js b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/index.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/node/index.js
diff --git a/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/package.json b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/package.json
new file mode 100644
index 000000000..baeb185d9
--- /dev/null
+++ b/test/snippets/package-json-exports/_node_modules_copy/js-only-exports/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "js-only-exports",
+ "exports": {
+ "./*": {
+ "node": "./node/*.js",
+ "browser": "./browser/*.js",
+ "default": "./default/*.js"
+ }
+ }
+}
diff --git a/test/snippets/package-json-exports/index.js b/test/snippets/package-json-exports/index.js
new file mode 100644
index 000000000..d1946c53f
--- /dev/null
+++ b/test/snippets/package-json-exports/index.js
@@ -0,0 +1,12 @@
+import * as InexactRoot from "inexact";
+import * as InexactFile from "inexact/file";
+import * as ExactFile from "inexact/foo";
+import * as JSFileExtensionOnly from "js-only-exports/js-file";
+
+export async function test() {
+ console.assert(InexactRoot.target === "browser");
+ console.assert(InexactFile.target === "browser");
+ console.assert(ExactFile.target === "browser");
+ console.assert(JSFileExtensionOnly.isJS === true);
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/package-json-exports/package.json b/test/snippets/package-json-exports/package.json
new file mode 100644
index 000000000..233a02208
--- /dev/null
+++ b/test/snippets/package-json-exports/package.json
@@ -0,0 +1,3 @@
+{
+ "name": "package-json-exports"
+}
diff --git a/test/snippets/package-json-utf8.js b/test/snippets/package-json-utf8.js
new file mode 100644
index 000000000..a51fbb886
--- /dev/null
+++ b/test/snippets/package-json-utf8.js
@@ -0,0 +1,6 @@
+import pkg from "./utf8-package-json.json";
+
+export function test() {
+ console.assert(!!pkg.author);
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/package.json b/test/snippets/package.json
new file mode 100644
index 000000000..07b349f86
--- /dev/null
+++ b/test/snippets/package.json
@@ -0,0 +1,13 @@
+{
+ "name": "snippets",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/core": "^11.0.0",
+ "@emotion/react": "^11.4.1",
+ "lodash": "^4.17.21",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2",
+ "redux": "^4.1.1",
+ "styled-components": "^5.3.1"
+ }
+}
diff --git a/test/snippets/public/index.html b/test/snippets/public/index.html
new file mode 100644
index 000000000..225c98d52
--- /dev/null
+++ b/test/snippets/public/index.html
@@ -0,0 +1,91 @@
+<html>
+ <head>
+ <meta charset="utf-8" />
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>bun Test</title>
+ </head>
+ <body>
+ <script type="module">
+ globalThis.console.assert = (condition, ...content) => {
+ if (!condition) {
+ throw new Error(content.join(" "));
+ }
+ };
+ globalThis.getModuleScriptSrc = async (name) => {
+ const response = await fetch(name, {
+ cache: "force-cache",
+ });
+
+ if (response.ok) {
+ return await response.text();
+ } else {
+ throw new Error(`Failed to get module script ${name}`);
+ }
+ };
+
+ globalThis.runTest = async (name) => {
+ var Namespace = await import(name);
+ var testFunction = Namespace.test;
+
+ if (
+ !("test" in Namespace) &&
+ "default" in Namespace &&
+ typeof Namespace.default === "function"
+ ) {
+ Namespace = Namespace.default();
+ testFunction = Namespace.test;
+ }
+
+ if (!testFunction) {
+ throw new Error("No test function found in " + name);
+ }
+
+ if (typeof testFunction !== "function") {
+ throw new Error(
+ `Expected (await import(\"${name}\"")) to have a test function.\nReceived: ${Object.keys(
+ Namespace
+ ).join(", ")} `
+ );
+ }
+
+ if (globalThis.BUN_DEBUG_MODE) {
+ try {
+ return await testFunction();
+ } catch (exception) {
+ console.error(exception);
+ debugger;
+ throw exception;
+ }
+ } else {
+ return await testFunction();
+ }
+ };
+
+ if (globalThis.location.pathname.endsWith("-test")) {
+ const script = document.createElement("script");
+ script.src = globalThis.location.pathname.substring(
+ 0,
+ location.pathname.length - "-test".length
+ );
+ script.type = "module";
+ document.body.appendChild(script);
+
+ globalThis.testDone = (path) => alert(`test ${path} success`);
+ globalThis.testFail = (path) => alert(`!test ${path} fail`);
+ runTest(
+ globalThis.location.pathname.substring(
+ 0,
+ location.pathname.length - "-test".length
+ )
+ ).then(
+ () => {},
+ (err) => {
+ console.error(err);
+ alert(err.toString());
+ }
+ );
+ }
+ </script>
+ </body>
+</html>
diff --git a/test/snippets/react-context-value-func.tsx b/test/snippets/react-context-value-func.tsx
new file mode 100644
index 000000000..5f38a5d1c
--- /dev/null
+++ b/test/snippets/react-context-value-func.tsx
@@ -0,0 +1,34 @@
+import React from "react";
+
+const Context = React.createContext({});
+
+const ContextProvider = ({ children }) => {
+ const [cb, setCB] = React.useState(function () {});
+ const foo = true;
+
+ return <Context.Provider value={cb}>{children(foo)}</Context.Provider>;
+};
+
+const ContextValue = ({}) => (
+ <Context.Consumer>
+ {(foo) => {
+ if (foo) {
+ return <div>Worked!</div>;
+ }
+
+ throw `Value "${foo}"" should be true`;
+ }}
+ </Context.Consumer>
+);
+
+const TestComponent = () => (
+ <ContextProvider>
+ <ContextValue />
+ </ContextProvider>
+);
+
+export function test() {
+ const foo = <TestComponent />;
+
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/segfault.js b/test/snippets/segfault.js
new file mode 100644
index 000000000..59b030b4d
--- /dev/null
+++ b/test/snippets/segfault.js
@@ -0,0 +1 @@
+Bun.unsafe.segfault();
diff --git a/test/snippets/spread_with_key.tsx b/test/snippets/spread_with_key.tsx
new file mode 100644
index 000000000..9c26ea5ba
--- /dev/null
+++ b/test/snippets/spread_with_key.tsx
@@ -0,0 +1,20 @@
+import React from "react";
+
+export function SpreadWithTheKey({ className }: Props) {
+ const rest = {};
+ return (
+ <div
+ className={className}
+ key="spread-with-the-key"
+ {...rest}
+ onClick={() => console.log("click")}
+ >
+ Rendered component containing warning
+ </div>
+ );
+}
+
+export function test() {
+ console.assert(React.isValidElement(<SpreadWithTheKey className="foo" />));
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/string-escapes.js b/test/snippets/string-escapes.js
new file mode 100644
index 000000000..436140939
--- /dev/null
+++ b/test/snippets/string-escapes.js
@@ -0,0 +1,129 @@
+// To update this, copy paste the following into the console of the browser
+// ------------------------------------------------------------
+var tab = "\t";
+var γ‚· = "wow";
+var f = "";
+var f = "\u2087";
+var obj = {
+ "\r\n": "\r\n",
+ "\n": "\n",
+ "\t": "\t",
+ "\f": "\f",
+ "\v": "\v",
+ "\u2028": "\u2028",
+ "\u2029": "\u2029",
+ "\0": "\0Β null byte",
+ "😊": "😊",
+ "πŸ˜ƒ": "πŸ˜ƒ",
+ "πŸ•΅πŸ½β€β™‚οΈ": "πŸ•΅πŸ½β€β™‚οΈ",
+ "γ‹‘": "γ‹‘",
+ "☺": "☺",
+ γ‚·: "γ‚·",
+ "πŸ‘‹": "πŸ‘‹",
+ f: f,
+ "☹": "☹",
+ "☻": "☻",
+ children: 123,
+};
+
+const encoder = new TextEncoder();
+const encodedObj = encoder.encode(JSON.stringify(obj));
+// ------------------------------------------------------------
+const correctEncodedObj = [
+ 123, 34, 92, 114, 92, 110, 34, 58, 34, 92, 114, 92, 110, 34, 44, 34, 92, 110,
+ 34, 58, 34, 92, 110, 34, 44, 34, 92, 116, 34, 58, 34, 92, 116, 34, 44, 34, 92,
+ 102, 34, 58, 34, 92, 102, 34, 44, 34, 92, 117, 48, 48, 48, 98, 34, 58, 34, 92,
+ 117, 48, 48, 48, 98, 34, 44, 34, 226, 128, 168, 34, 58, 34, 226, 128, 168, 34,
+ 44, 34, 226, 128, 169, 34, 58, 34, 226, 128, 169, 34, 44, 34, 92, 117, 48, 48,
+ 48, 48, 34, 58, 34, 92, 117, 48, 48, 48, 48, 194, 160, 110, 117, 108, 108, 32,
+ 98, 121, 116, 101, 34, 44, 34, 240, 159, 152, 138, 34, 58, 34, 240, 159, 152,
+ 138, 34, 44, 34, 240, 159, 152, 131, 34, 58, 34, 240, 159, 152, 131, 34, 44,
+ 34, 240, 159, 149, 181, 240, 159, 143, 189, 226, 128, 141, 226, 153, 130, 239,
+ 184, 143, 34, 58, 34, 240, 159, 149, 181, 240, 159, 143, 189, 226, 128, 141,
+ 226, 153, 130, 239, 184, 143, 34, 44, 34, 227, 139, 161, 34, 58, 34, 227, 139,
+ 161, 34, 44, 34, 226, 152, 186, 34, 58, 34, 226, 152, 186, 34, 44, 34, 227,
+ 130, 183, 34, 58, 34, 227, 130, 183, 34, 44, 34, 240, 159, 145, 139, 34, 58,
+ 34, 240, 159, 145, 139, 34, 44, 34, 102, 34, 58, 34, 226, 130, 135, 34, 44,
+ 34, 226, 152, 185, 34, 58, 34, 226, 152, 185, 34, 44, 34, 226, 152, 187, 34,
+ 58, 34, 226, 152, 187, 34, 44, 34, 99, 104, 105, 108, 100, 114, 101, 110, 34,
+ 58, 49, 50, 51, 125,
+];
+
+export const jsxVariants = (
+ <>
+ "\r\n": "\r\n", "\n": "\n", "\t": "\t", "\f": "\f", "\v": "\v", "\u2028":
+ "\u2028", "\u2029": "\u2029", "😊": "😊", "πŸ˜ƒ": "πŸ˜ƒ", "πŸ•΅πŸ½β€β™‚οΈ": "πŸ•΅πŸ½β€β™‚οΈ", "γ‹‘":
+ "γ‹‘", "☺": "☺", γ‚·: "γ‚·", "πŸ‘‹": "πŸ‘‹", f: f, "☹": "☹", "☻": "☻", children:
+ 123,
+ <div data="\r\n" />
+ <div data="\n" />
+ <div data="\t" />
+ <div data="\f" />
+ <div data="\v" />
+ <div data="\u2028" />
+ <div data="\u2029" />
+ <div data="😊" />
+ <div data="πŸ˜ƒ" />
+ <div data="πŸ•΅πŸ½β€β™‚οΈ" />
+ <div data="γ‹‘" />
+ <div data="☺" />
+ <div data="γ‚·" />
+ <div data="πŸ‘‹" />
+ <div data="☹" />
+ <div data="☻" />
+ <div data="123" />
+ <div key="\r\n" />
+ <div>\r\n</div>
+ <div key="\n" />
+ <div>\n</div>
+ <div key="\t" />
+ <div>\t</div>
+ <div key="\f" />
+ <div>\f</div>
+ <div key="\v" />
+ <div>\v</div>
+ <div key="\u2028" />
+ <div>\u2028</div>
+ <div key="\u2029" />
+ <div>\u2029</div>
+ <div key="😊" />
+ <div>😊</div>
+ <div key="πŸ˜ƒ" />
+ <div>πŸ˜ƒ</div>
+ <div key="πŸ•΅πŸ½β€β™‚οΈ" />
+ <div>πŸ•΅πŸ½β€β™‚οΈ</div>
+ <div key="γ‹‘" />
+ <div>γ‹‘</div>
+ <div key="☺" />
+ <div>☺</div>
+ <div key="γ‚·" />
+ <div>γ‚·</div>
+ <div key="πŸ‘‹" />
+ <div>πŸ‘‹</div>
+ <div key="☹" />
+ <div>☹</div>
+ <div key="☻" />
+ <div>☻</div>
+ <div key="123" />
+ <div>123</div>
+ </>
+);
+
+const foo = () => {};
+const Bar = foo("a", {
+ children: 123,
+});
+
+const carriage = obj["\r\n"];
+const newline = obj["\n"];
+
+export { obj };
+
+export function test() {
+ console.assert(carriage === "\r\n");
+ console.assert(newline === "\n");
+ console.assert(tab === "\t");
+ console.assert(correctEncodedObj.length === encodedObj.length);
+ console.assert(correctEncodedObj.every((v, i) => v === encodedObj[i]));
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/styledcomponents-output.js b/test/snippets/styledcomponents-output.js
new file mode 100644
index 000000000..a79b5e24d
--- /dev/null
+++ b/test/snippets/styledcomponents-output.js
@@ -0,0 +1,63 @@
+import styled from "styled-components";
+import React from "react";
+import ReactDOM from "react-dom";
+
+const ErrorScreenRoot = styled.div`
+ font-family: "Muli", -apple-system, BlinkMacSystemFont, Helvetica, Arial,
+ sans-serif;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ background: #fff;
+ text-align: center;
+ background-color: #0b2988;
+ color: #fff;
+ font-family: "Muli", -apple-system, BlinkMacSystemFont, Helvetica, Arial,
+ sans-serif;
+ line-height: 1.5em;
+
+ & > p {
+ margin-top: 10px;
+ }
+
+ & a {
+ color: inherit;
+ }
+`;
+
+export function test() {
+ if (typeof window !== "undefined") {
+ const reactEl = document.createElement("div");
+ document.body.appendChild(reactEl);
+ ReactDOM.render(
+ <ErrorScreenRoot id="error-el">
+ The react child should have this text
+ </ErrorScreenRoot>,
+ reactEl
+ );
+
+ const style = document.querySelector("style[data-styled]");
+ console.assert(style, "style tag should exist");
+ console.assert(
+ style.textContent.split("").every((a) => a.codePointAt(0) < 128),
+ "style tag should not contain invalid unicode codepoints"
+ );
+ console.assert(
+ document.querySelector("#error-el").textContent ===
+ "The react child should have this text"
+ );
+
+ ReactDOM.unmountComponentAtNode(reactEl);
+ reactEl.remove();
+ style.remove();
+ return testDone(import.meta.url);
+ }
+
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/template-literal.js b/test/snippets/template-literal.js
new file mode 100644
index 000000000..ff4e08a4d
--- /dev/null
+++ b/test/snippets/template-literal.js
@@ -0,0 +1,51 @@
+const css = (templ) => templ.toString();
+
+const fooNoBracesUTF8 = css`
+ before
+ /* */
+ after
+`;
+
+const fooNoBracesUT16 = css`
+ before
+ πŸ™ƒ
+ after
+`;
+const fooUTF8 = css`
+ before
+ ${true}
+ after
+
+`;
+
+const fooUTF16 = css`
+ before
+ πŸ™ƒ ${true}
+ after
+
+`;
+
+const templateLiteralWhichDefinesAFunction = ((...args) =>
+ args[args.length - 1]().toString())`
+ before
+ πŸ™ƒ ${() => true}
+ after
+
+`;
+
+export function test() {
+ for (let foo of [fooNoBracesUT16, fooNoBracesUTF8, fooUTF16, fooUTF8]) {
+ console.assert(
+ foo.includes("before"),
+ `Expected ${foo} to include "before"`
+ );
+ console.assert(foo.includes("after"), `Expected ${foo} to include "after"`);
+ }
+
+ console.assert(
+ templateLiteralWhichDefinesAFunction.includes("true"),
+ "Expected fooFunction to include 'true'"
+ );
+
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/ts-fallback-rewrite-works.ts b/test/snippets/ts-fallback-rewrite-works.ts
new file mode 100644
index 000000000..8e6dabcdb
--- /dev/null
+++ b/test/snippets/ts-fallback-rewrite-works.ts
@@ -0,0 +1,5 @@
+// This looks like it does nothing
+// But if you import /ts-fallback-rewrite-works.js, it should resolve the import to /ts-fallback-rewrite-works.ts
+export function test() {
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/tsx-fallback-rewrite-works.tsx b/test/snippets/tsx-fallback-rewrite-works.tsx
new file mode 100644
index 000000000..b18619914
--- /dev/null
+++ b/test/snippets/tsx-fallback-rewrite-works.tsx
@@ -0,0 +1,5 @@
+// This looks like it does nothing
+// But if you import /tsx-fallback-rewrite-works.js, it should resolve the import to /tsx-fallback-rewrite-works.tsx
+export function test() {
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/type-only-imports.ts b/test/snippets/type-only-imports.ts
new file mode 100644
index 000000000..447f86793
--- /dev/null
+++ b/test/snippets/type-only-imports.ts
@@ -0,0 +1,12 @@
+import type Bacon from "tree";
+import type { SilentSymbolCollisionsAreOkayInTypeScript } from "./app";
+
+export const baconator: Bacon = true;
+export const SilentSymbolCollisionsAreOkayInTypeScript: SilentSymbolCollisionsAreOkayInTypeScript =
+ true;
+
+export function test() {
+ console.assert(SilentSymbolCollisionsAreOkayInTypeScript);
+ console.assert(baconator);
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/unicode-identifiers.js b/test/snippets/unicode-identifiers.js
new file mode 100644
index 000000000..5b602f49b
--- /dev/null
+++ b/test/snippets/unicode-identifiers.js
@@ -0,0 +1,15 @@
+var Ξ΅ = 1e-6,
+ Ξ΅2 = Ξ΅ * Ξ΅,
+ Ο€ = Math.PI,
+ Ο„ = 2 * Ο€,
+ τΡ = Ο„ - Ξ΅,
+ halfΟ€ = Ο€ / 2,
+ d3_radians = Ο€ / 180,
+ d3_degrees = 180 / Ο€;
+
+export { d3_radians };
+
+export function test() {
+ console.assert(Ξ΅ === 1e-6);
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/utf8-package-json.json b/test/snippets/utf8-package-json.json
new file mode 100644
index 000000000..aae7ce7b2
--- /dev/null
+++ b/test/snippets/utf8-package-json.json
@@ -0,0 +1,3 @@
+{
+ "author": "Arnuad BarrΓ© (https://github.com/ArnaudBarre)"
+}
diff --git a/test/snippets/void-shouldnt-delete-call-expressions.js b/test/snippets/void-shouldnt-delete-call-expressions.js
new file mode 100644
index 000000000..380fb591b
--- /dev/null
+++ b/test/snippets/void-shouldnt-delete-call-expressions.js
@@ -0,0 +1,14 @@
+var was_called = false;
+function thisShouldBeCalled() {
+ was_called = true;
+}
+
+void thisShouldBeCalled();
+
+export function test() {
+ if (!was_called) {
+ throw new Error("Expected thisShouldBeCalled to be called");
+ }
+
+ return testDone(import.meta.url);
+}
diff --git a/test/snippets/zero.js b/test/snippets/zero.js
new file mode 100644
index 000000000..38f521ff1
--- /dev/null
+++ b/test/snippets/zero.js
@@ -0,0 +1 @@
+export const zero = "\0";