aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/README.md138
-rw-r--r--test/apps/bun-create-next.sh57
-rw-r--r--test/apps/bun-create-react.sh20
-rw-r--r--test/apps/bun-dev-index-html.sh69
-rw-r--r--test/apps/bun-dev.sh55
-rw-r--r--test/apps/bun-install-lockfile-status.sh65
-rw-r--r--test/apps/bun-install-utf8.sh14
-rw-r--r--test/apps/bun-install.sh85
-rw-r--r--test/apps/bun-run-check-package.json7
-rw-r--r--test/apps/bun-run-check.sh43
-rw-r--r--test/bun.js/atob.test.js77
-rw-r--r--test/bun.js/baz.js2
-rw-r--r--test/bun.js/buffer.test.js304
-rw-r--r--test/bun.js/bun-jsc.test.js98
-rwxr-xr-xtest/bun.js/bun.lockbbin0 -> 109914 bytes
l---------test/bun.js/bundled/always-bundled-module/always-bundled-module1
-rw-r--r--test/bun.js/bundled/always-bundled-module/cjs.js10
-rw-r--r--test/bun.js/bundled/always-bundled-module/esm.js5
-rw-r--r--test/bun.js/bundled/always-bundled-module/package.json4
-rw-r--r--test/bun.js/bundled/entrypoint.ts13
-rw-r--r--test/bun.js/bundled/package.json12
-rw-r--r--test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/cjs.js10
-rw-r--r--test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/esm.js5
-rw-r--r--test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/package.json4
-rw-r--r--test/bun.js/bundled/tsconfig.json6
-rw-r--r--test/bun.js/concat.test.js46
-rw-r--r--test/bun.js/console-log.js58
-rw-r--r--test/bun.js/crypto.test.js70
-rw-r--r--test/bun.js/dirname.test.js9
-rw-r--r--test/bun.js/escapeHTML.test.js105
-rw-r--r--test/bun.js/esm/first.mjs8
-rw-r--r--test/bun.js/esm/second-child.mjs5
-rw-r--r--test/bun.js/esm/second.mjs7
-rw-r--r--test/bun.js/esm/startEnd.mjs6
-rw-r--r--test/bun.js/esm/third.mjs4
-rw-r--r--test/bun.js/exit.js2
-rw-r--r--test/bun.js/fetch.js.txt46
-rw-r--r--test/bun.js/fetch.test.js440
-rw-r--r--test/bun.js/ffi-test.c129
-rw-r--r--test/bun.js/ffi.test.fixture.callback.c270
-rw-r--r--test/bun.js/ffi.test.fixture.receiver.c268
-rw-r--r--test/bun.js/ffi.test.js543
-rw-r--r--test/bun.js/fs-stream.js23
-rw-r--r--test/bun.js/fs.test.js244
-rw-r--r--test/bun.js/gc.js15
-rw-r--r--test/bun.js/globals.test.js39
-rw-r--r--test/bun.js/hash.test.js36
-rw-r--r--test/bun.js/html-rewriter.test.js293
-rw-r--r--test/bun.js/import-meta.test.js33
-rw-r--r--test/bun.js/inline.macro.js3
-rw-r--r--test/bun.js/inspect.test.js96
-rw-r--r--test/bun.js/macro-check.js7
-rw-r--r--test/bun.js/microtask.test.js80
-rw-r--r--test/bun.js/mmap.test.js69
-rw-r--r--test/bun.js/node-builtins.test.js16
-rw-r--r--test/bun.js/path.test.js457
-rw-r--r--test/bun.js/performance.test.js18
-rw-r--r--test/bun.js/process-nexttick.js91
-rw-r--r--test/bun.js/process-nexttick.test.js93
-rw-r--r--test/bun.js/process.test.js54
-rw-r--r--test/bun.js/readFileSync.txt1
-rw-r--r--test/bun.js/readdir.js9
-rw-r--r--test/bun.js/reportError.test.js25
-rw-r--r--test/bun.js/require-json.json3
-rw-r--r--test/bun.js/resolve-typescript-file.tsx1
-rw-r--r--test/bun.js/resolve.test.js100
-rw-r--r--test/bun.js/response.file.test.js218
-rw-r--r--test/bun.js/serve.test.ts82
-rw-r--r--test/bun.js/setInterval.test.js35
-rw-r--r--test/bun.js/setTimeout.test.js39
-rw-r--r--test/bun.js/shadow.test.js10
-rw-r--r--test/bun.js/sleep.js10
-rw-r--r--test/bun.js/solid-dom-fixtures/SVG/code.js74
-rw-r--r--test/bun.js/solid-dom-fixtures/SVG/output.bun.js33
-rw-r--r--test/bun.js/solid-dom-fixtures/SVG/output.js108
-rw-r--r--test/bun.js/solid-dom-fixtures/attributeExpressions/code.js115
-rw-r--r--test/bun.js/solid-dom-fixtures/attributeExpressions/output.bun.js155
-rw-r--r--test/bun.js/solid-dom-fixtures/attributeExpressions/output.js241
-rw-r--r--test/bun.js/solid-dom-fixtures/components/code.js161
-rw-r--r--test/bun.js/solid-dom-fixtures/components/output.bun.js205
-rw-r--r--test/bun.js/solid-dom-fixtures/components/output.js443
-rw-r--r--test/bun.js/solid-dom-fixtures/conditionalExpressions/code.js71
-rw-r--r--test/bun.js/solid-dom-fixtures/conditionalExpressions/output.bun.js144
-rw-r--r--test/bun.js/solid-dom-fixtures/conditionalExpressions/output.js319
-rw-r--r--test/bun.js/solid-dom-fixtures/customElements/code.js29
-rw-r--r--test/bun.js/solid-dom-fixtures/customElements/output.bun.js27
-rw-r--r--test/bun.js/solid-dom-fixtures/customElements/output.js66
-rw-r--r--test/bun.js/solid-dom-fixtures/eventExpressions/code.js32
-rw-r--r--test/bun.js/solid-dom-fixtures/eventExpressions/output.bun.js57
-rw-r--r--test/bun.js/solid-dom-fixtures/eventExpressions/output.js63
-rw-r--r--test/bun.js/solid-dom-fixtures/fragments/code.js83
-rw-r--r--test/bun.js/solid-dom-fixtures/fragments/output.bun.js13
-rw-r--r--test/bun.js/solid-dom-fixtures/fragments/output.js66
-rw-r--r--test/bun.js/solid-dom-fixtures/insertChildren/code.js36
-rw-r--r--test/bun.js/solid-dom-fixtures/insertChildren/output.js185
-rw-r--r--test/bun.js/solid-dom-fixtures/namespaceElements/code.js6
-rw-r--r--test/bun.js/solid-dom-fixtures/namespaceElements/output.js16
-rw-r--r--test/bun.js/solid-dom-fixtures/simpleElements/code.js9
-rw-r--r--test/bun.js/solid-dom-fixtures/simpleElements/output.bun.js5
-rw-r--r--test/bun.js/solid-dom-fixtures/simpleElements/output.js8
-rw-r--r--test/bun.js/solid-dom-fixtures/textInterpolation/code.js72
-rw-r--r--test/bun.js/solid-dom-fixtures/textInterpolation/output.bun.js71
-rw-r--r--test/bun.js/solid-dom-fixtures/textInterpolation/output.js144
-rw-r--r--test/bun.js/some-fs.js51
-rw-r--r--test/bun.js/sql-raw.test.js71
-rw-r--r--test/bun.js/sqlite.test.js430
-rw-r--r--test/bun.js/streams.test.js317
-rw-r--r--test/bun.js/text-encoder.test.js212
-rw-r--r--test/bun.js/toml-fixture.toml39
-rw-r--r--test/bun.js/toml.test.js30
-rw-r--r--test/bun.js/transpiler.test.js1675
-rw-r--r--test/bun.js/tsconfig.json16
-rw-r--r--test/bun.js/unsafe.test.js51
-rw-r--r--test/bun.js/url.test.ts102
-rw-r--r--test/bun.js/wasm-return-1-test.zig5
-rw-r--r--test/bun.js/wasm.js1
-rw-r--r--test/bun.js/wasm.test.js20
-rw-r--r--test/bun.js/web-globals.test.js46
-rw-r--r--test/bun.js/websocket.test.js79
-rw-r--r--test/bun.js/writeFileSync.txt1
-rw-r--r--test/bun.js/zlib.test.js18
-rw-r--r--test/macro/assert.tsx4
-rw-r--r--test/macro/fetchSync.tsx8
-rw-r--r--test/macro/hello-fetch-macro.tsx5
-rw-r--r--test/macro/loadMocks.tsx30
-rw-r--r--test/scripts/browser.js190
-rw-r--r--test/scripts/bun.js86
-rwxr-xr-xtest/scripts/bun.lockbbin0 -> 15723 bytes
-rw-r--r--test/scripts/package-lock.json892
-rw-r--r--test/scripts/package.json5
-rw-r--r--test/scripts/snippets.json32
-rw-r--r--test/snapshots/.prettierignore1
-rw-r--r--test/snapshots/array-args-with-default-values.debug.js27
-rw-r--r--test/snapshots/array-args-with-default-values.hmr.debug.js53
-rw-r--r--test/snapshots/array-args-with-default-values.hmr.js51
-rw-r--r--test/snapshots/array-args-with-default-values.js27
-rw-r--r--test/snapshots/bundled-entry-point.debug.js11
-rw-r--r--test/snapshots/bundled-entry-point.hmr.debug.js35
-rw-r--r--test/snapshots/bundled-entry-point.hmr.js33
-rw-r--r--test/snapshots/bundled-entry-point.js11
-rw-r--r--test/snapshots/caught-require.debug.js32
-rw-r--r--test/snapshots/caught-require.hmr.debug.js56
-rw-r--r--test/snapshots/caught-require.hmr.js54
-rw-r--r--test/snapshots/caught-require.js32
-rw-r--r--test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.debug.js15
-rw-r--r--test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.hmr.debug.js47
-rw-r--r--test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.hmr.js45
-rw-r--r--test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js15
-rw-r--r--test/snapshots/code-simplification-neql-define.debug.js29
-rw-r--r--test/snapshots/code-simplification-neql-define.hmr.debug.js58
-rw-r--r--test/snapshots/code-simplification-neql-define.hmr.js56
-rw-r--r--test/snapshots/code-simplification-neql-define.js29
-rw-r--r--test/snapshots/custom-emotion-jsx/file.debug.jsx25
-rw-r--r--test/snapshots/custom-emotion-jsx/file.hmr.debug.jsx53
-rw-r--r--test/snapshots/custom-emotion-jsx/file.hmr.jsx50
-rw-r--r--test/snapshots/custom-emotion-jsx/file.jsx25
-rw-r--r--test/snapshots/export-default-module-hot.debug.js6
-rw-r--r--test/snapshots/export-default-module-hot.hmr.debug.js35
-rw-r--r--test/snapshots/export-default-module-hot.hmr.js33
-rw-r--r--test/snapshots/export-default-module-hot.js6
-rw-r--r--test/snapshots/export.debug.js32
-rw-r--r--test/snapshots/export.hmr.debug.js80
-rw-r--r--test/snapshots/export.hmr.js78
-rw-r--r--test/snapshots/export.js32
-rw-r--r--test/snapshots/forbid-in-is-correct.debug.js10
-rw-r--r--test/snapshots/forbid-in-is-correct.hmr.debug.js36
-rw-r--r--test/snapshots/forbid-in-is-correct.hmr.js34
-rw-r--r--test/snapshots/forbid-in-is-correct.js10
-rw-r--r--test/snapshots/global-is-remapped-to-globalThis.debug.js6
-rw-r--r--test/snapshots/global-is-remapped-to-globalThis.hmr.debug.js32
-rw-r--r--test/snapshots/global-is-remapped-to-globalThis.hmr.js30
-rw-r--r--test/snapshots/global-is-remapped-to-globalThis.js6
-rw-r--r--test/snapshots/jsx-entities.debug.jsx2768
-rw-r--r--test/snapshots/jsx-entities.hmr.debug.jsx2793
-rw-r--r--test/snapshots/jsx-entities.hmr.jsx2790
-rw-r--r--test/snapshots/jsx-entities.jsx2768
-rw-r--r--test/snapshots/jsx-spacing.debug.jsx49
-rw-r--r--test/snapshots/jsx-spacing.hmr.debug.jsx74
-rw-r--r--test/snapshots/jsx-spacing.hmr.jsx71
-rw-r--r--test/snapshots/jsx-spacing.jsx49
-rw-r--r--test/snapshots/latin1-chars-in-regexp.debug.js69
-rw-r--r--test/snapshots/latin1-chars-in-regexp.hmr.debug.js101
-rw-r--r--test/snapshots/latin1-chars-in-regexp.hmr.js99
-rw-r--r--test/snapshots/latin1-chars-in-regexp.js69
-rw-r--r--test/snapshots/lodash-regexp.debug.js23
-rw-r--r--test/snapshots/lodash-regexp.hmr.debug.js47
-rw-r--r--test/snapshots/lodash-regexp.hmr.js45
-rw-r--r--test/snapshots/lodash-regexp.js23
-rw-r--r--test/snapshots/multiple-imports.debug.js25
-rw-r--r--test/snapshots/multiple-imports.hmr.debug.js50
-rw-r--r--test/snapshots/multiple-imports.hmr.js47
-rw-r--r--test/snapshots/multiple-imports.js25
-rw-r--r--test/snapshots/multiple-var.debug.js11
-rw-r--r--test/snapshots/multiple-var.hmr.debug.js37
-rw-r--r--test/snapshots/multiple-var.hmr.js35
-rw-r--r--test/snapshots/multiple-var.js11
-rw-r--r--test/snapshots/number-literal-bug.debug.js11
-rw-r--r--test/snapshots/number-literal-bug.hmr.debug.js37
-rw-r--r--test/snapshots/number-literal-bug.hmr.js35
-rw-r--r--test/snapshots/number-literal-bug.js11
-rw-r--r--test/snapshots/optional-chain-with-function.debug.js15
-rw-r--r--test/snapshots/optional-chain-with-function.hmr.debug.js41
-rw-r--r--test/snapshots/optional-chain-with-function.hmr.js39
-rw-r--r--test/snapshots/optional-chain-with-function.js15
-rw-r--r--test/snapshots/package-json-exports/index.debug.js22
-rw-r--r--test/snapshots/package-json-exports/index.hmr.debug.js46
-rw-r--r--test/snapshots/package-json-exports/index.hmr.js44
-rw-r--r--test/snapshots/package-json-exports/index.js22
-rw-r--r--test/snapshots/package-json-utf8.debug.js9
-rw-r--r--test/snapshots/package-json-utf8.hmr.debug.js33
-rw-r--r--test/snapshots/package-json-utf8.hmr.js31
-rw-r--r--test/snapshots/package-json-utf8.js9
-rw-r--r--test/snapshots/react-context-value-func.debug.tsx38
-rw-r--r--test/snapshots/react-context-value-func.hmr.debug.tsx63
-rw-r--r--test/snapshots/react-context-value-func.hmr.tsx60
-rw-r--r--test/snapshots/react-context-value-func.tsx38
-rw-r--r--test/snapshots/spread_with_key.debug.tsx29
-rw-r--r--test/snapshots/spread_with_key.hmr.debug.tsx56
-rw-r--r--test/snapshots/spread_with_key.hmr.tsx53
-rw-r--r--test/snapshots/spread_with_key.tsx29
-rw-r--r--test/snapshots/string-escapes.debug.js463
-rw-r--r--test/snapshots/string-escapes.hmr.debug.js492
-rw-r--r--test/snapshots/string-escapes.hmr.js490
-rw-r--r--test/snapshots/string-escapes.js463
-rw-r--r--test/snapshots/styled-components-output.hmr.js67
-rw-r--r--test/snapshots/styledcomponents-output.debug.js63
-rw-r--r--test/snapshots/styledcomponents-output.hmr.debug.js88
-rw-r--r--test/snapshots/styledcomponents-output.hmr.js85
-rw-r--r--test/snapshots/styledcomponents-output.js63
-rw-r--r--test/snapshots/template-literal.debug.js39
-rw-r--r--test/snapshots/template-literal.hmr.debug.js65
-rw-r--r--test/snapshots/template-literal.hmr.js63
-rw-r--r--test/snapshots/template-literal.js39
-rw-r--r--test/snapshots/ts-fallback-rewrite-works.debug.js5
-rw-r--r--test/snapshots/ts-fallback-rewrite-works.hmr.debug.js28
-rw-r--r--test/snapshots/ts-fallback-rewrite-works.hmr.js26
-rw-r--r--test/snapshots/ts-fallback-rewrite-works.js5
-rw-r--r--test/snapshots/tsx-fallback-rewrite-works.debug.js5
-rw-r--r--test/snapshots/tsx-fallback-rewrite-works.hmr.debug.js31
-rw-r--r--test/snapshots/tsx-fallback-rewrite-works.hmr.js29
-rw-r--r--test/snapshots/tsx-fallback-rewrite-works.js5
-rw-r--r--test/snapshots/type-only-imports.debug.ts9
-rw-r--r--test/snapshots/type-only-imports.hmr.debug.ts38
-rw-r--r--test/snapshots/type-only-imports.hmr.ts36
-rw-r--r--test/snapshots/type-only-imports.ts9
-rw-r--r--test/snapshots/unicode-identifiers.debug.js16
-rw-r--r--test/snapshots/unicode-identifiers.hmr.debug.js43
-rw-r--r--test/snapshots/unicode-identifiers.hmr.js41
-rw-r--r--test/snapshots/unicode-identifiers.js16
-rw-r--r--test/snapshots/void-shouldnt-delete-call-expressions.debug.js12
-rw-r--r--test/snapshots/void-shouldnt-delete-call-expressions.hmr.debug.js38
-rw-r--r--test/snapshots/void-shouldnt-delete-call-expressions.hmr.js36
-rw-r--r--test/snapshots/void-shouldnt-delete-call-expressions.js12
-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
326 files changed, 31832 insertions, 0 deletions
diff --git a/test/README.md b/test/README.md
new file mode 100644
index 000000000..292d23cf2
--- /dev/null
+++ b/test/README.md
@@ -0,0 +1,138 @@
+# Tests in Bun
+
+Bun currently has four different kinds of tests
+
+To run the tests:
+
+```bash
+make test-all
+bun wiptest
+```
+
+### Browser tests
+
+Browser tests run end-to-end inside of Puppeteer and execute code transpiled by `bun dev`. These tests are in [./snippets](./snippets).
+
+The interface is:
+
+```js
+// this function is called after import()
+// if testDone() is never called, the test fails
+export function test() {
+ return testDone(import.meta.url);
+}
+```
+
+On success, it saves a snapshot to [./snapshots](./snapshots) which is checked into git.
+
+#### Adding a new test
+
+1. Create a new file in the `snippets` directory.
+2. Append the filename to [./scripts/snippets.json](./scripts/snippets.json)
+3. Run `bun dev` inside this folder in one terminal window
+4. Run `make integration-test-dev`
+
+These tests are run twice. Once with HMR enabled and once with HMR disabled. HMR changes the output enough to warrant it's own special treatment.
+
+#### Running the tests
+
+To run the browser tests with HMR on a production build:
+
+```bash
+make test-with-hmr
+```
+
+To run the browser tests without HMR on a production build:
+
+```bash
+make test-with-no-hmr
+```
+
+To run the browser tests with HMR on a debug build:
+
+```bash
+make test-dev-with-hmr
+```
+
+To run the browser tests without HMR on a debug build:
+
+```bash
+make test-dev-no-hmr
+```
+
+To run the browser tests on whatever version of bun is running on port 3000:
+
+```bash
+make integration-test-dev
+```
+
+These were the first tests bun started with
+
+### Runtime tests
+
+These tests are in [./bun.js](./bun.js) and are files which are either `.test.js` or `.test.ts` files.
+
+These test that the runtime behaves as expected. These also test the transpiler, both because test files are transpiled and directly by running the transpiler via `Bun.Transpiler`.
+
+#### Adding a new test
+
+1. Create a new file in [./bun.js](./bun.js/) with `.test` in the name.
+
+These test use `bun:test` as the import (though you can also import from `vitest` or jest and it will work).
+
+This will eventually be a public test runner for bun, but the reporter isn't very good yet and it doesn't run in parallel.
+
+The syntax intends for Jest compatibility.
+
+```ts
+import { describe, expect, it } from "bun:test";
+
+describe("Example", () => {
+ it("should work", () => {
+ expect(1).toBe(1);
+ });
+});
+```
+
+#### Running the tests
+
+Run `bun wiptest ${part-of-file-name}`
+
+If you run the test in the top-level bun repo directory, it will take an extra couple seconds because `bun wiptest` will scan through all of WebKit recursively. Consider running it in the `bun.js` directory instead.
+
+### CLI tests
+
+These run the bash files in the `apps` directory.
+
+They check end-to-end that the CLI works as expected.
+
+```bash
+# Install dependencies for running tests
+# Does not run tests
+make test-install
+
+# Check a Create React App created via `bun create react ./foo` returns HTML
+make test-create-react
+
+# Check a Next.js app created via `bun create next ./foo` SSRs successfully
+make test-create-next
+
+# Check that bun run works for the same CLI args passed to npm run
+make test-bun-run
+
+# Check that "react" installed via bun install loads successfully
+# and that deleting/adding updates the lockfile as expected
+make test-bun-install
+
+# Check that serving public paths works correctly
+# and that files which should be transpiled are transpiled and files which shouldn't be aren't
+make test-bun-dev
+```
+
+### Zig tests
+
+These tests live in various `.zig` files throughout Bun's codebase, leveraging Zig's builtin `test` keyword.
+
+Currently, they're not run automatically nor is there a simple way to run all of them.
+
+This is an area bun needs to improve in.
diff --git a/test/apps/bun-create-next.sh b/test/apps/bun-create-next.sh
new file mode 100644
index 000000000..4f19e535d
--- /dev/null
+++ b/test/apps/bun-create-next.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+set -euo pipefail
+
+# The important part of this test: make sure that bun.js successfully loads
+# The most likely reason for this test to fail is that something broke in the JavaScriptCore <> bun integration
+killall -9 $(basename $BUN_BIN) || echo ""
+
+rm -rf /tmp/next-app
+mkdir -p /tmp/next-app
+$BUN_BIN create next /tmp/next-app
+
+if (($?)); then
+ echo "bun create failed"
+ exit 1
+fi
+
+echo "hi!" >/tmp/next-app/public/file.txt
+echo "export default 'string';" >/tmp/next-app/file.js
+
+cd /tmp/next-app
+BUN_CRASH_WITHOUT_JIT=1 $BUN_BIN dev --port 8087 &
+sleep 0.1
+curl --fail -Ss http://localhost:8087/
+
+if [[ "$(curl --fail -sS http://localhost:8087/file.txt)" != "hi!" ]]; then
+ echo ""
+ echo ""
+ echo ""
+ echo "ERR: Expected 'hi!', got '$(curl --fail -sS http://localhost:8087/file.txt)'"
+ killall -9 $(basename $BUN_BIN) || echo ""
+ exit 1
+fi
+
+if [[ "$(curl --fail -sS http://localhost:8087/file.js)" != *"string"* ]]; then
+ echo ""
+ echo ""
+ echo ""
+ echo "ERR: Expected file to contain string got '$(curl --fail -sS http://localhost:8087/file.js)'"
+ killall -9 $(basename $BUN_BIN) || echo ""
+ exit 1
+fi
+
+# very simple HMR test
+echo "export default 'string';" >/tmp/next-app/file2.js
+sleep 0.1
+
+if [[ "$(curl --fail -sS http://localhost:8087/file2.js)" != *"string"* ]]; then
+ echo ""
+ echo ""
+ echo ""
+ echo "ERR: Expected file to contain string got '$(curl --fail -sS http://localhost:8087/file2.js)'"
+ killall -9 $(basename $BUN_BIN) || echo ""
+ exit 1
+fi
+
+killall -9 $(basename $BUN_BIN) || echo ""
diff --git a/test/apps/bun-create-react.sh b/test/apps/bun-create-react.sh
new file mode 100644
index 000000000..2b986134c
--- /dev/null
+++ b/test/apps/bun-create-react.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+killall -9 $(basename $BUN_BIN) || echo ""
+
+rm -rf /tmp/react-app
+mkdir -p /tmp/react-app
+$BUN_BIN create react /tmp/react-app
+
+
+if (($?)); then
+ echo "bun create failed"
+ exit 1
+fi
+
+cd /tmp/react-app
+BUN_CRASH_WITHOUT_JIT=1 $BUN_BIN --port 8087 &
+sleep 0.005
+
+curl --fail http://localhost:8087/ && curl --fail http://localhost:8087/src/index.jsx && killall -9 $(basename $BUN_BIN) && echo "βœ… bun create react passed."
+exit $?
diff --git a/test/apps/bun-dev-index-html.sh b/test/apps/bun-dev-index-html.sh
new file mode 100644
index 000000000..eef41f78b
--- /dev/null
+++ b/test/apps/bun-dev-index-html.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+set -euo pipefail
+
+killall -9 $(basename $BUN_BIN) || echo ""
+
+dir=$(mktemp -d --suffix=bun-dev-check)
+
+index_content="<html><body>index.html</body></html>"
+bacon_content="<html><body>bacon.html</body></html>"
+js_content="if(0) { var foo = 'TEST FAILED'; }"
+static_content="PASS"
+css_not_transpiled_content="@import url(/index.js); @import url(/i-dont-exist.css); @import url('/i-dont-exist.css'); @import url(\"/i-dont-exist.css\");"
+css_is_transpiled_import="*{background-color:red;}"
+css_is_transpiled="@import url(./css_is_transpiled_import.css);"
+
+echo $index_content >"$dir/index.html"
+echo $js_content >"$dir/index.js"
+echo $bacon_content >"$dir/bacon.html"
+echo $static_content >"$dir/static.txt"
+echo $css_not_transpiled_content >"$dir/css_not_transpiled_content.css"
+
+cd $dir
+$BUN_BIN --port 8087 &
+sleep 0.005
+
+if [[ "$(curl --fail -sS http://localhost:8087/)" != "$index_content" ]]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/)'"
+ exit 1
+fi
+
+if [[ "$(curl --fail -sS http://localhost:8087/index)" != "$index_content" ]]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/index)'"
+ exit 1
+fi
+
+if [[ "$(curl --fail -sS http://localhost:8087/static.txt)" != "PASS" ]]; then
+ echo "ERR: Expected static file, got '$(curl --fail -sS http://localhost:8087/static.txt)'"
+ exit 1
+fi
+
+# Check that the file is actually transpiled
+if [[ "$(curl --fail -sS http://localhost:8087/index.js)" == *"TEST FAILED"* ]]; then
+ echo "ERR: Expected file to be transpiled, got '$(curl --fail -sS http://localhost:8087/index.js)'"
+ exit 1
+fi
+
+if [[ "$(curl --fail -sS http://localhost:8087/index.html)" != "$index_content" ]]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/index.html)'"
+ exit 1
+fi
+
+if [[ "$(curl --fail -sS http://localhost:8087/foo/foo)" != "$index_content" ]]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/index.html)'"
+ exit 1
+fi
+
+if [[ "$(curl --fail -sS http://localhost:8087/bacon)" != "$bacon_content" ]]; then
+ echo "ERR: Expected '$bacon_content', got '$(curl --fail -sS http://localhost:8087/bacon)'"
+ exit 1
+fi
+
+if [[ "$(curl --fail -sS http://localhost:8087/bacon.html)" != "$bacon_content" ]]; then
+ echo "ERR: Expected '$bacon_content', got '$(curl --fail -sS http://localhost:8087/bacon.html)'"
+ exit 1
+fi
+
+killall -9 $(basename $BUN_BIN) || echo ""
+echo "βœ… bun dev index html check passed."
diff --git a/test/apps/bun-dev.sh b/test/apps/bun-dev.sh
new file mode 100644
index 000000000..f2d76d028
--- /dev/null
+++ b/test/apps/bun-dev.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+set -euo pipefail
+
+killall -9 $(basename $BUN_BIN) || echo ""
+
+dir=$(mktemp -d --suffix=bun-dev-check)
+
+index_content="<html><body>index.html</body></html>"
+bacon_content="<html><body>bacon.html</body></html>"
+js_content="console.log('hi')"
+
+mkdir -p $dir/public
+
+echo $index_content >"$dir/public/index.html"
+echo $js_content >"$dir/index.js"
+echo $bacon_content >"$dir/public/bacon.html"
+
+cd $dir
+
+$BUN_BIN --port 8087 &
+sleep 0.005
+
+if [ "$(curl --fail -sS http://localhost:8087/)" != "$index_content" ]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/)'"
+ exit 1
+fi
+
+if [ "$(curl --fail -sS http://localhost:8087/index)" != "$index_content" ]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/index)'"
+ exit 1
+fi
+
+if [ "$(curl --fail -sS http://localhost:8087/index.html)" != "$index_content" ]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/index.html)'"
+ exit 1
+fi
+
+if [ "$(curl --fail -sS http://localhost:8087/foo/foo)" != "$index_content" ]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/index.html)'"
+ exit 1
+fi
+
+if [ "$(curl --fail -sS http://localhost:8087/bacon)" != "$bacon_content" ]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/bacon)'"
+ exit 1
+fi
+
+if [ "$(curl --fail -sS http://localhost:8087/bacon.html)" != "$bacon_content" ]; then
+ echo "ERR: Expected '$index_content', got '$(curl --fail -sS http://localhost:8087/bacon.html)'"
+ exit 1
+fi
+
+killall -9 $(basename $BUN_BIN) || echo ""
+echo "βœ… bun dev index html check passed."
diff --git a/test/apps/bun-install-lockfile-status.sh b/test/apps/bun-install-lockfile-status.sh
new file mode 100644
index 000000000..b23b4fc3c
--- /dev/null
+++ b/test/apps/bun-install-lockfile-status.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+set -euo pipefail
+
+killall -9 $(basename $BUN_BIN) || echo ""
+
+dir=$(mktemp -d --suffix=bun-lockfile)
+
+cd $dir
+
+$BUN_BIN add react
+
+echo "node_modules" >.gitignore
+
+git init && git add . && git commit -am "Initial commit"
+
+$BUN_BIN install
+
+ORIG_LOCKFILE="$($BUN_BIN pm hash-string)"
+
+[[ -z $(git status --untracked-files=no --porcelain) ]] || {
+ echo "ERR: Expected empty git status, got '$(git status --untracked-files=no --porcelain)'"
+ exit 1
+}
+
+$BUN_BIN add react
+
+NEW_LOCKFILE="$($BUN_BIN pm hash-string)"
+
+diff <(echo "$ORIG_LOCKFILE") <(echo "$NEW_LOCKFILE") || {
+ echo "ERR: Expected lockfile to be unchanged, got '$NEW_LOCKFILE'"
+ exit 1
+}
+
+ORIG_HASH=$($BUN_BIN bun.lockb --hash)
+
+$BUN_BIN remove react
+$BUN_BIN add react
+
+NEW_HASH=$($BUN_BIN bun.lockb --hash)
+
+diff <(echo "$ORIG_HASH") <(echo "$NEW_HASH") || {
+ echo "ERR: Expected hash to be unchanged, got '$NEW_HASH'"
+ exit 1
+}
+
+echo '{ "dependencies": { "react": "17.0.2", "react-dom": "17.0.2" } }' >package.json
+
+$BUN_BIN install
+
+echo "var {version} = JSON.parse(require(\"fs\").readFileSync('./node_modules/react-dom/package.json', 'utf8')); if (version !== '17.0.2') {throw new Error('Unexpected react-dom version');}; " >index.js
+$BUN_BIN run ./index.js
+
+echo "var {version} = JSON.parse(require(\"fs\").readFileSync('./node_modules/react/package.json', 'utf8')); if (version !== '17.0.2') {throw new Error('Unexpected react version');}; " >index.js
+$BUN_BIN run ./index.js
+
+# This is just making sure that the JS was executed
+realpath -e node_modules/react-dom >/dev/null || {
+ echo "ERR: Expected react-dom to be installed"
+ exit 1
+}
+realpath -e node_modules/react >/dev/null || {
+ echo "ERR: Expected react to be installed"
+ exit 1
+}
diff --git a/test/apps/bun-install-utf8.sh b/test/apps/bun-install-utf8.sh
new file mode 100644
index 000000000..66783cb50
--- /dev/null
+++ b/test/apps/bun-install-utf8.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+set -euo pipefail
+
+killall -9 $(basename $BUN_BIN) || echo ""
+
+dir=$(mktemp -d --suffix=bun-ADD)
+
+cd $dir
+
+# https://github.com/Jarred-Sumner/bun/issues/115
+echo '{ "author": "Arnaud BarrΓ© (https://github.com/ArnaudBarre)" }' >package.json
+
+$BUN_BIN add react
diff --git a/test/apps/bun-install.sh b/test/apps/bun-install.sh
new file mode 100644
index 000000000..dd4083e33
--- /dev/null
+++ b/test/apps/bun-install.sh
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+set -euo pipefail
+
+dir=$(mktemp -d --suffix=bun-install-test-1)
+
+cd $dir
+${NPM_CLIENT:-$(which bun)} add react react-dom @types/react @babel/parser esbuild
+
+echo "console.log(typeof require(\"react\").createElement);" >index.js
+chmod +x index.js
+
+JS_RUNTIME=${JS_RUNTIME:-"$(which bun)"}
+
+if [ "$JS_RUNTIME" == "node" ]; then
+ result="$(node ./index.js)"
+fi
+
+if [ "$JS_RUNTIME" != "node" ]; then
+ result="$($JS_RUNTIME run ./index.js)"
+fi
+
+echo "console.log(typeof require(\"react-dom\").render);" >index.js
+chmod +x index.js
+
+JS_RUNTIME=${JS_RUNTIME:-"$(which bun)"}
+
+# If this fails to run, it means we didn't link @babel/parser correctly
+realpath -e ./node_modules/.bin/parser
+
+# If this fails to run, it means we didn't link esbuild correctly
+./node_modules/.bin/esbuild --version >/dev/null
+
+if [ "$JS_RUNTIME" == "node" ]; then
+ result="$(node ./index.js)"
+fi
+
+if [ "$JS_RUNTIME" != "node" ]; then
+ result="$($JS_RUNTIME run ./index.js)"
+fi
+
+if [ "$result" != "function" ]; then
+ echo "ERR: Expected 'function', got '$result'"
+ exit 1
+fi
+
+${NPM_CLIENT:-$(which bun)} remove react-dom
+
+if [ -d "node_modules/react-dom" ]; then
+ echo "ERR: react-dom module still exists in $dir"
+ exit 1
+fi
+
+yarn_dot_lock=$(${NPM_CLIENT:-$(which bun)} bun.lockb)
+
+if echo "$yarn_dot_lock" | grep -q "react-dom"; then
+ echo "ERR: react-dom module still exists in lockfile"
+ exit 1
+fi
+
+${NPM_CLIENT:-$(which bun)} remove @types/react
+
+yarn_dot_lock=$(${NPM_CLIENT:-$(which bun)} bun.lockb)
+
+if echo "$yarn_dot_lock" | grep -q "@types/react"; then
+ echo "ERR: @types/react module still exists in lockfile"
+ exit 1
+fi
+
+if echo "$yarn_dot_lock" | grep -q "@types/react"; then
+ echo "ERR: @types/react module still exists in $dir"
+ exit 1
+fi
+
+${NPM_CLIENT:-$(which bun)} remove react
+
+if [ -d "node_modules/react" ]; then
+ echo "ERR: react module still exists in $dir"
+ exit 1
+fi
+
+if [ -d "bun.lockb" ]; then
+ echo "ERR: empty bun.lockb should be deleted"
+ exit 1
+fi
diff --git a/test/apps/bun-run-check-package.json b/test/apps/bun-run-check-package.json
new file mode 100644
index 000000000..b6eeda046
--- /dev/null
+++ b/test/apps/bun-run-check-package.json
@@ -0,0 +1,7 @@
+{
+ "name": "check",
+ "scripts": {
+ "this-should-work": "echo \"βœ… bun run test passed!\"",
+ "argv": "node -e 'console.log(process.argv)'"
+ }
+}
diff --git a/test/apps/bun-run-check.sh b/test/apps/bun-run-check.sh
new file mode 100644
index 000000000..dca1db6ae
--- /dev/null
+++ b/test/apps/bun-run-check.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+(killall -9 $(basename $BUN_BIN) || echo "") >/dev/null 2>&1
+
+# https://github.com/Jarred-Sumner/bun/issues/40
+# Define a function (details aren't important)
+fn() { :; }
+# The important bit: export the function
+export -f fn
+
+rm -rf /tmp/bun-run-check
+mkdir -p /tmp/bun-run-check
+
+cp ./bun-run-check-package.json /tmp/bun-run-check/package.json
+cd /tmp/bun-run-check
+
+$BUN_BIN run bash -- -c ""
+
+if (($?)); then
+ echo "Bash exported functions are broken"
+ exit 1
+fi
+
+# https://github.com/Jarred-Sumner/bun/issues/53
+rm -f /tmp/bun-run-out.expected.txt /tmp/bun-run-out.txt >/dev/null 2>&1
+
+$BUN_BIN run --silent argv -- foo bar baz >/tmp/bun-run-out.txt
+npm run --silent argv -- foo bar baz >/tmp/bun-run-out.expected.txt
+
+cmp -s /tmp/bun-run-out.expected.txt /tmp/bun-run-out.txt
+if (($?)); then
+ echo "argv failed"
+ exit 1
+fi
+
+$BUN_BIN run --silent this-should-work
+
+if (($?)); then
+ echo "this-should work failed"
+ exit 1
+fi
+
+exit 0
diff --git a/test/bun.js/atob.test.js b/test/bun.js/atob.test.js
new file mode 100644
index 000000000..4945829e1
--- /dev/null
+++ b/test/bun.js/atob.test.js
@@ -0,0 +1,77 @@
+import { expect, it } from "bun:test";
+
+function expectInvalidCharacters(val) {
+ try {
+ atob(val);
+ throw new Error("Expected error");
+ } catch (error) {
+ expect(error.message).toBe("The string contains invalid characters.");
+ }
+}
+
+it("atob", () => {
+ expect(atob("YQ==")).toBe("a");
+ expect(atob("YWI=")).toBe("ab");
+ expect(atob("YWJj")).toBe("abc");
+ expect(atob("YWJjZA==")).toBe("abcd");
+ expect(atob("YWJjZGU=")).toBe("abcde");
+ expect(atob("YWJjZGVm")).toBe("abcdef");
+ expect(atob("zzzz")).toBe("Ï<ó");
+ expect(atob("")).toBe("");
+ expect(atob(null)).toBe("žée");
+ expect(atob("6ek=")).toBe("éé");
+ expect(atob("6ek")).toBe("éé");
+ expect(atob("gIE=")).toBe("€");
+ expect(atob("zz")).toBe("Ï");
+ expect(atob("zzz")).toBe("Ï<");
+ expect(atob("zzz=")).toBe("Ï<");
+ expect(atob(" YQ==")).toBe("a");
+ expect(atob("YQ==\u000a")).toBe("a");
+
+ try {
+ atob();
+ } catch (error) {
+ expect(error.name).toBe("TypeError");
+ }
+ expectInvalidCharacters(undefined);
+ expectInvalidCharacters(" abcd===");
+ expectInvalidCharacters("abcd=== ");
+ expectInvalidCharacters("abcd ===");
+ expectInvalidCharacters("тСст");
+ expectInvalidCharacters("z");
+ expectInvalidCharacters("zzz==");
+ expectInvalidCharacters("zzz===");
+ expectInvalidCharacters("zzz====");
+ expectInvalidCharacters("zzz=====");
+ expectInvalidCharacters("zzzzz");
+ expectInvalidCharacters("z=zz");
+ expectInvalidCharacters("=");
+ expectInvalidCharacters("==");
+ expectInvalidCharacters("===");
+ expectInvalidCharacters("====");
+ expectInvalidCharacters("=====");
+});
+
+it("btoa", () => {
+ expect(btoa("a")).toBe("YQ==");
+ expect(btoa("ab")).toBe("YWI=");
+ expect(btoa("abc")).toBe("YWJj");
+ expect(btoa("abcd")).toBe("YWJjZA==");
+ expect(btoa("abcde")).toBe("YWJjZGU=");
+ expect(btoa("abcdef")).toBe("YWJjZGVm");
+ expect(typeof btoa).toBe("function");
+ try {
+ btoa();
+ throw new Error("Expected error");
+ } catch (error) {
+ expect(error.name).toBe("TypeError");
+ }
+ var window = "[object Window]";
+ expect(btoa("")).toBe("");
+ expect(btoa(null)).toBe("bnVsbA==");
+ expect(btoa(undefined)).toBe("dW5kZWZpbmVk");
+ expect(btoa(window)).toBe("W29iamVjdCBXaW5kb3dd");
+ expect(btoa("éé")).toBe("6ek=");
+ expect(btoa("\u0080\u0081")).toBe("gIE=");
+ expect(btoa(Bun)).toBe(btoa("[object Bun]"));
+});
diff --git a/test/bun.js/baz.js b/test/bun.js/baz.js
new file mode 100644
index 000000000..5837bb3bb
--- /dev/null
+++ b/test/bun.js/baz.js
@@ -0,0 +1,2 @@
+// this file is used in resolve.test.js
+export default {};
diff --git a/test/bun.js/buffer.test.js b/test/bun.js/buffer.test.js
new file mode 100644
index 000000000..6e9a3c6b4
--- /dev/null
+++ b/test/bun.js/buffer.test.js
@@ -0,0 +1,304 @@
+// import { describe, it, expect, beforeEach, afterEach } from "bun:test";
+// import { gc } from "./gc";
+
+// beforeEach(() => gc());
+// afterEach(() => gc());
+
+// it("buffer", () => {
+// var buf = new Buffer(20);
+// gc();
+// // if this fails or infinitely loops, it means there is a memory issue with the JSC::Structure object
+// expect(Object.keys(buf).length > 0).toBe(true);
+// gc();
+// expect(buf.write("hello world ")).toBe(12);
+// expect(buf.write("hello world ", "utf8")).toBe(12);
+
+// gc();
+// expect(buf.toString("utf8", 0, "hello world ".length)).toBe("hello world ");
+// gc();
+// expect(buf.toString("base64url", 0, "hello world ".length)).toBe(
+// btoa("hello world ")
+// );
+// gc();
+// expect(buf instanceof Uint8Array).toBe(true);
+// gc();
+// expect(buf instanceof Buffer).toBe(true);
+// gc();
+// expect(buf.slice() instanceof Uint8Array).toBe(true);
+// gc();
+// expect(buf.slice(0, 1) instanceof Buffer).toBe(true);
+// gc();
+// expect(buf.slice(0, 1) instanceof Uint8Array).toBe(true);
+// gc();
+// expect(buf.slice(0, 1) instanceof Buffer).toBe(true);
+// gc();
+// });
+
+// it("Buffer", () => {
+// var inputs = [
+// "hello world",
+// "hello world".repeat(100),
+// `πŸ˜‹ Get Emoji β€” All Emojis to βœ‚οΈ Copy and πŸ“‹ Paste πŸ‘Œ`,
+// ];
+// var good = inputs.map((a) => new TextEncoder().encode(a));
+// for (let i = 0; i < inputs.length; i++) {
+// var input = inputs[i];
+// expect(new Buffer(input).toString("utf8")).toBe(inputs[i]);
+// gc();
+// expect(Array.from(new Buffer(input)).join(",")).toBe(good[i].join(","));
+// gc();
+// expect(Buffer.byteLength(input)).toBe(good[i].length);
+// gc();
+// expect(Buffer.from(input).byteLength).toBe(Buffer.byteLength(input));
+// }
+// });
+
+// it("Buffer.byteLength", () => {
+// expect(Buffer.byteLength("πŸ˜€πŸ˜ƒπŸ˜„πŸ˜πŸ˜†πŸ˜…πŸ˜‚πŸ€£β˜ΊοΈπŸ˜ŠπŸ˜ŠπŸ˜‡")).toBe(
+// new TextEncoder().encode("πŸ˜€πŸ˜ƒπŸ˜„πŸ˜πŸ˜†πŸ˜…πŸ˜‚πŸ€£β˜ΊοΈπŸ˜ŠπŸ˜ŠπŸ˜‡").byteLength
+// );
+// });
+
+// it("Buffer.isBuffer", () => {
+// expect(Buffer.isBuffer(new Buffer(1))).toBe(true);
+// gc();
+// expect(Buffer.isBuffer(new Buffer(0))).toBe(true);
+// gc();
+// expect(Buffer.isBuffer(new Uint8Array(0))).toBe(false);
+// gc();
+// expect(Buffer.isBuffer(new Uint8Array(1))).toBe(false);
+// gc();
+// var a = new Uint8Array(1);
+// gc();
+// expect(Buffer.isBuffer(a)).toBe(false);
+// gc();
+// Buffer.toBuffer(a);
+// gc();
+// expect(Buffer.isBuffer(a)).toBe(true);
+// gc();
+// });
+
+// it("Buffer.toBuffer throws", () => {
+// const checks = [
+// [],
+// {},
+// "foo",
+// new Uint16Array(),
+// new DataView(new Uint8Array(14).buffer),
+// ];
+// for (let i = 0; i < checks.length; i++) {
+// try {
+// Buffer.toBuffer(checks[i]);
+// expect(false).toBe(true);
+// } catch (exception) {
+// expect(exception.message).toBe("Expected Uint8Array");
+// }
+// }
+// expect(true).toBe(true);
+// });
+
+// it("Buffer.toBuffer works", () => {
+// var array = new Uint8Array(20);
+// expect(array instanceof Buffer).toBe(false);
+// var buf = Buffer.toBuffer(array);
+// expect(array instanceof Buffer).toBe(true);
+// // if this fails or infinitely loops, it means there is a memory issue with the JSC::Structure object
+// expect(Object.keys(buf).length > 0).toBe(true);
+
+// expect(buf.write("hello world ")).toBe(12);
+// gc();
+// expect(buf.toString("utf8", 0, "hello world ".length)).toBe("hello world ");
+// gc();
+// expect(buf.toString("base64url", 0, "hello world ".length)).toBe(
+// btoa("hello world ")
+// );
+// gc();
+
+// expect(buf instanceof Uint8Array).toBe(true);
+// expect(buf instanceof Buffer).toBe(true);
+// expect(buf.slice() instanceof Uint8Array).toBe(true);
+// expect(buf.slice(0, 1) instanceof Buffer).toBe(true);
+// expect(buf.slice(0, 1) instanceof Uint8Array).toBe(true);
+// expect(buf.slice(0, 1) instanceof Buffer).toBe(true);
+// expect(new Buffer(buf) instanceof Buffer).toBe(true);
+// expect(new Buffer(buf.buffer) instanceof Buffer).toBe(true);
+// });
+
+// it("writeInt", () => {
+// var buf = new Buffer(1024);
+// var data = new DataView(buf.buffer);
+// buf.writeInt32BE(100);
+// expect(data.getInt32(0, false)).toBe(100);
+// buf.writeInt32BE(100);
+// expect(data.getInt32(0, false)).toBe(100);
+// var childBuf = buf.subarray(0, 4);
+// expect(data.getInt32(0, false)).toBe(100);
+// expect(childBuf.readInt32BE(0, false)).toBe(100);
+// });
+
+// it("Buffer.from", () => {
+// expect(Buffer.from("hello world").toString("utf8")).toBe("hello world");
+// expect(Buffer.from("hello world", "ascii").toString("utf8")).toBe(
+// "hello world"
+// );
+// expect(Buffer.from("hello world", "latin1").toString("utf8")).toBe(
+// "hello world"
+// );
+// gc();
+// expect(Buffer.from([254]).join(",")).toBe("254");
+// expect(Buffer.from(123).join(",")).toBe(Uint8Array.from(123).join(","));
+// expect(Buffer.from({ length: 124 }).join(",")).toBe(
+// Uint8Array.from({ length: 124 }).join(",")
+// );
+
+// expect(Buffer.from(new ArrayBuffer(1024), 0, 512).join(",")).toBe(
+// new Uint8Array(512).join(",")
+// );
+
+// expect(Buffer.from(new Buffer(new ArrayBuffer(1024), 0, 512)).join(",")).toBe(
+// new Uint8Array(512).join(",")
+// );
+// gc();
+// });
+
+// it("Buffer.equals", () => {
+// var a = new Uint8Array(10);
+// a[2] = 1;
+// var b = new Uint8Array(10);
+// b[2] = 1;
+// Buffer.toBuffer(a);
+// Buffer.toBuffer(b);
+// expect(a.equals(b)).toBe(true);
+// b[2] = 0;
+// expect(a.equals(b)).toBe(false);
+// });
+
+// it("Buffer.compare", () => {
+// var a = new Uint8Array(10);
+// a[2] = 1;
+// var b = new Uint8Array(10);
+// b[2] = 1;
+// Buffer.toBuffer(a);
+// Buffer.toBuffer(b);
+// expect(a.compare(b)).toBe(0);
+// b[2] = 0;
+// expect(a.compare(b)).toBe(1);
+// expect(b.compare(a)).toBe(-1);
+// });
+
+// it("Buffer.copy", () => {
+// var array1 = new Uint8Array(128);
+// array1.fill(100);
+// Buffer.toBuffer(array1);
+// var array2 = new Uint8Array(128);
+// array2.fill(200);
+// Buffer.toBuffer(array2);
+// var array3 = new Uint8Array(128);
+// Buffer.toBuffer(array3);
+// gc();
+// expect(array1.copy(array2)).toBe(128);
+// expect(array1.join("")).toBe(array2.join(""));
+// });
+
+// it("Buffer.concat", () => {
+// var array1 = new Uint8Array(128);
+// array1.fill(100);
+// var array2 = new Uint8Array(128);
+// array2.fill(200);
+// var array3 = new Uint8Array(128);
+// array3.fill(300);
+// gc();
+// expect(Buffer.concat([array1, array2, array3]).join("")).toBe(
+// array1.join("") + array2.join("") + array3.join("")
+// );
+// expect(Buffer.concat([array1, array2, array3], 222).length).toBe(222);
+// expect(
+// Buffer.concat([array1, array2, array3], 222).subarray(0, 128).join("")
+// ).toBe("100".repeat(128));
+// expect(
+// Buffer.concat([array1, array2, array3], 222).subarray(129, 222).join("")
+// ).toBe("200".repeat(222 - 129));
+// });
+
+// it("read", () => {
+// var buf = new Buffer(1024);
+// var data = new DataView(buf.buffer);
+// function reset() {
+// new Uint8Array(buf.buffer).fill(0);
+// }
+// data.setBigInt64(0, BigInt(1000), false);
+// expect(buf.readBigInt64BE(0)).toBe(BigInt(1000));
+// reset();
+
+// data.setBigInt64(0, BigInt(1000), false);
+// expect(buf.readBigInt64LE(0)).toBe(BigInt(1000));
+// reset();
+
+// data.setBigUint64(0, BigInt(1000), false);
+// expect(buf.readBigUInt64BE(0)).toBe(BigInt(1000));
+// reset();
+
+// data.setBigUint64(0, BigInt(1000), false);
+// expect(buf.readBigUInt64LE(0)).toBe(BigInt(1000));
+// reset();
+
+// data.setFloat64(0, 1000, false);
+// expect(buf.readDoubleBE(0)).toBe(1000);
+// reset();
+
+// data.setFloat64(0, 1000, true);
+// expect(buf.readDoubleLE(0)).toBe(1000);
+// reset();
+
+// data.setFloat32(0, 1000, false);
+// expect(buf.readFloatBE(0)).toBe(1000);
+// reset();
+
+// data.setFloat32(0, 1000, true);
+// expect(buf.readFloatLE(0)).toBe(1000);
+// reset();
+
+// data.setInt16(0, 1000, false);
+// expect(buf.readInt16BE(0)).toBe(1000);
+// reset();
+
+// data.setInt16(0, 1000, true);
+// expect(buf.readInt16LE(0)).toBe(1000);
+// reset();
+
+// data.setInt32(0, 1000, false);
+// expect(buf.readInt32BE(0)).toBe(1000);
+// reset();
+
+// data.setInt32(0, 1000, true);
+// expect(buf.readInt32LE(0)).toBe(1000);
+// reset();
+
+// data.setInt8(0, 100, false);
+// expect(buf.readInt8(0)).toBe(100);
+// reset();
+
+// data.setUint16(0, 1000, false);
+// expect(buf.readUInt16BE(0)).toBe(1000);
+// reset();
+
+// data.setUint16(0, 1000, true);
+// expect(buf.readUInt16LE(0)).toBe(1000);
+// reset();
+
+// data.setUint32(0, 1000, false);
+// expect(buf.readUInt32BE(0)).toBe(1000);
+// reset();
+
+// data.setUint32(0, 1000, true);
+// expect(buf.readUInt32LE(0)).toBe(1000);
+// reset();
+
+// data.setUint8(0, 255, false);
+// expect(buf.readUInt8(0)).toBe(255);
+// reset();
+
+// data.setUint8(0, 255, false);
+// expect(buf.readUInt8(0)).toBe(255);
+// reset();
+// });
diff --git a/test/bun.js/bun-jsc.test.js b/test/bun.js/bun-jsc.test.js
new file mode 100644
index 000000000..8ee0decf2
--- /dev/null
+++ b/test/bun.js/bun-jsc.test.js
@@ -0,0 +1,98 @@
+import { describe, expect, it } from "bun:test";
+import {
+ describe as jscDescribe,
+ describeArray,
+ gcAndSweep,
+ fullGC,
+ edenGC,
+ heapSize,
+ heapStats,
+ memoryUsage,
+ getRandomSeed,
+ setRandomSeed,
+ isRope,
+ callerSourceOrigin,
+ noFTL,
+ noOSRExitFuzzing,
+ optimizeNextInvocation,
+ numberOfDFGCompiles,
+ releaseWeakRefs,
+ totalCompileTime,
+ reoptimizationRetryCount,
+ drainMicrotasks,
+ startRemoteDebugger,
+} from "bun:jsc";
+
+describe("bun:jsc", () => {
+ function count() {
+ var j = 0;
+ for (var i = 0; i < 999999; i++) {
+ j += i + 2;
+ }
+
+ return j;
+ }
+
+ it("describe", () => {
+ jscDescribe([]);
+ });
+ it("describeArray", () => {
+ describeArray([1, 2, 3]);
+ });
+ it("gcAndSweep", () => {
+ gcAndSweep();
+ });
+ it("fullGC", () => {
+ fullGC();
+ });
+ it("edenGC", () => {
+ edenGC();
+ });
+ it("heapSize", () => {
+ expect(heapSize() > 0).toBe(true);
+ });
+ it("heapStats", () => {
+ heapStats();
+ });
+ it("memoryUsage", () => {
+ memoryUsage();
+ });
+ it("getRandomSeed", () => {
+ getRandomSeed(2);
+ });
+ it("setRandomSeed", () => {
+ setRandomSeed(2);
+ });
+ it("isRope", () => {
+ expect(isRope("a" + 123 + "b")).toBe(true);
+ expect(isRope("abcdefgh")).toBe(false);
+ });
+ it("callerSourceOrigin", () => {
+ expect(callerSourceOrigin()).toBe(import.meta.url);
+ });
+ it("noFTL", () => {});
+ it("noOSRExitFuzzing", () => {});
+ it("optimizeNextInvocation", () => {
+ count();
+ optimizeNextInvocation(count);
+ count();
+ });
+ it("numberOfDFGCompiles", () => {
+ expect(numberOfDFGCompiles(count) > 0).toBe(true);
+ });
+ it("releaseWeakRefs", () => {
+ releaseWeakRefs();
+ });
+ it("totalCompileTime", () => {
+ totalCompileTime(count);
+ });
+ it("reoptimizationRetryCount", () => {
+ reoptimizationRetryCount(count);
+ });
+ it("drainMicrotasks", () => {
+ drainMicrotasks();
+ });
+ it("startRemoteDebugger", () => {
+ startRemoteDebugger("");
+ });
+});
diff --git a/test/bun.js/bun.lockb b/test/bun.js/bun.lockb
new file mode 100755
index 000000000..cff7a8ddc
--- /dev/null
+++ b/test/bun.js/bun.lockb
Binary files differ
diff --git a/test/bun.js/bundled/always-bundled-module/always-bundled-module b/test/bun.js/bundled/always-bundled-module/always-bundled-module
new file mode 120000
index 000000000..f9a91ac4d
--- /dev/null
+++ b/test/bun.js/bundled/always-bundled-module/always-bundled-module
@@ -0,0 +1 @@
+node_modules/always-bundled-module \ No newline at end of file
diff --git a/test/bun.js/bundled/always-bundled-module/cjs.js b/test/bun.js/bundled/always-bundled-module/cjs.js
new file mode 100644
index 000000000..087697589
--- /dev/null
+++ b/test/bun.js/bundled/always-bundled-module/cjs.js
@@ -0,0 +1,10 @@
+module.exports = {
+ default: 0xdeadbeef,
+ default() {
+ return "ok";
+ },
+ default: true,
+ ok() {
+ return true;
+ },
+};
diff --git a/test/bun.js/bundled/always-bundled-module/esm.js b/test/bun.js/bundled/always-bundled-module/esm.js
new file mode 100644
index 000000000..28e702881
--- /dev/null
+++ b/test/bun.js/bundled/always-bundled-module/esm.js
@@ -0,0 +1,5 @@
+const __esModule = true;
+
+export const foo = () => __esModule;
+
+export { __esModule, foo as default };
diff --git a/test/bun.js/bundled/always-bundled-module/package.json b/test/bun.js/bundled/always-bundled-module/package.json
new file mode 100644
index 000000000..5029c1695
--- /dev/null
+++ b/test/bun.js/bundled/always-bundled-module/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "always-bundled-module",
+ "version": "1.0.0"
+}
diff --git a/test/bun.js/bundled/entrypoint.ts b/test/bun.js/bundled/entrypoint.ts
new file mode 100644
index 000000000..b9a17b538
--- /dev/null
+++ b/test/bun.js/bundled/entrypoint.ts
@@ -0,0 +1,13 @@
+import "i-am-bundled/cjs";
+import "i-am-bundled/esm";
+import "always-bundled-module/esm";
+import "always-bundled-module/cjs";
+import { foo } from "i-am-bundled/esm";
+import { foo as foo2 } from "always-bundled-module/esm";
+import cJS from "always-bundled-module/cjs";
+
+foo();
+foo2();
+cJS();
+
+export default cJS();
diff --git a/test/bun.js/bundled/package.json b/test/bun.js/bundled/package.json
new file mode 100644
index 000000000..cce72af9c
--- /dev/null
+++ b/test/bun.js/bundled/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "to-bundle",
+ "scripts": {
+ "prebundle": "rm -rf node_modules; cp -r to_bundle_node_modules node_modules; ln -s always-bundled-module node_modules/always-bundled-module",
+ "bundle": "${BUN_BIN:-$(which bun)} bun ./entrypoint.ts"
+ },
+ "bun": {
+ "alwaysBundle": [
+ "always-bundled-module"
+ ]
+ }
+}
diff --git a/test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/cjs.js b/test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/cjs.js
new file mode 100644
index 000000000..087697589
--- /dev/null
+++ b/test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/cjs.js
@@ -0,0 +1,10 @@
+module.exports = {
+ default: 0xdeadbeef,
+ default() {
+ return "ok";
+ },
+ default: true,
+ ok() {
+ return true;
+ },
+};
diff --git a/test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/esm.js b/test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/esm.js
new file mode 100644
index 000000000..28e702881
--- /dev/null
+++ b/test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/esm.js
@@ -0,0 +1,5 @@
+const __esModule = true;
+
+export const foo = () => __esModule;
+
+export { __esModule, foo as default };
diff --git a/test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/package.json b/test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/package.json
new file mode 100644
index 000000000..661a80b2d
--- /dev/null
+++ b/test/bun.js/bundled/to_bundle_node_modules/i-am-bundled/package.json
@@ -0,0 +1,4 @@
+{
+ "name": "i-am-bundled",
+ "version": "1.0.0"
+}
diff --git a/test/bun.js/bundled/tsconfig.json b/test/bun.js/bundled/tsconfig.json
new file mode 100644
index 000000000..358cb5526
--- /dev/null
+++ b/test/bun.js/bundled/tsconfig.json
@@ -0,0 +1,6 @@
+{
+ "compilerOptions": {
+ "paths": {},
+ "baseUrl": "."
+ }
+}
diff --git a/test/bun.js/concat.test.js b/test/bun.js/concat.test.js
new file mode 100644
index 000000000..a965fdb94
--- /dev/null
+++ b/test/bun.js/concat.test.js
@@ -0,0 +1,46 @@
+import { describe, it, expect } from "bun:test";
+import { gcTick } from "./gc";
+import { concatArrayBuffers } from "bun";
+
+describe("concat", () => {
+ function polyfill(chunks) {
+ var size = 0;
+ for (const chunk of chunks) {
+ size += chunk.byteLength;
+ }
+ var buffer = new ArrayBuffer(size);
+ var view = new Uint8Array(buffer);
+ var offset = 0;
+ for (const chunk of chunks) {
+ view.set(chunk, offset);
+ offset += chunk.byteLength;
+ }
+ return buffer;
+ }
+
+ function concatToString(chunks) {
+ return Array.from(new Uint8Array(concatArrayBuffers(chunks))).join("");
+ }
+
+ function polyfillToString(chunks) {
+ return Array.from(new Uint8Array(polyfill(chunks))).join("");
+ }
+
+ it("works with one element", () => {
+ expect(concatToString([new Uint8Array([123])])).toBe(
+ polyfillToString([new Uint8Array([123])])
+ );
+ });
+
+ it("works with two elements", () => {
+ expect(
+ concatToString([Uint8Array.from([123]), Uint8Array.from([456])])
+ ).toBe(polyfillToString([Uint8Array.from([123]), Uint8Array.from([456])]));
+ });
+
+ it("works with mix of ArrayBuffer and TypedArray elements", () => {
+ expect(
+ concatToString([Uint8Array.from([123]).buffer, Uint8Array.from([456])])
+ ).toBe(polyfillToString([Uint8Array.from([123]), Uint8Array.from([456])]));
+ });
+});
diff --git a/test/bun.js/console-log.js b/test/bun.js/console-log.js
new file mode 100644
index 000000000..e8aa200ac
--- /dev/null
+++ b/test/bun.js/console-log.js
@@ -0,0 +1,58 @@
+console.log("Hello World!");
+console.log(123);
+console.log(-123);
+console.log(123.567);
+console.log(-123.567);
+console.log(true);
+console.log(false);
+console.log(null);
+console.log(undefined);
+console.log(Symbol("Symbol Description"));
+console.log(new Date(2021, 12, 30, 666, 777, 888, 999));
+console.log([123, 456, 789]);
+console.log({ a: 123, b: 456, c: 789 });
+console.log({
+ a: {
+ b: {
+ c: 123,
+ },
+ bacon: true,
+ },
+});
+
+console.log(new Promise(() => {}));
+
+class Foo {}
+
+console.log(() => {});
+console.log(Foo);
+console.log(new Foo());
+console.log(function foooo() {});
+
+console.log(/FooRegex/);
+
+console.error("uh oh");
+console.time("Check");
+
+console.log(
+ "Is it a bug or a feature that formatting numbers like %d is colored",
+ 123
+);
+console.log(globalThis);
+
+console.log(
+ "String %s should be 2nd word, 456 == %s and percent s %s == %s",
+ "123",
+ "456",
+ "%s",
+ "What",
+ "okay"
+);
+
+const infinteLoop = {
+ foo: {},
+ bar: {},
+};
+
+infinteLoop.bar = infinteLoop;
+console.log(infinteLoop, "am");
diff --git a/test/bun.js/crypto.test.js b/test/bun.js/crypto.test.js
new file mode 100644
index 000000000..c489e11c1
--- /dev/null
+++ b/test/bun.js/crypto.test.js
@@ -0,0 +1,70 @@
+import {
+ sha,
+ MD5,
+ MD4,
+ SHA1,
+ SHA256,
+ SHA384,
+ SHA512,
+ SHA512_256,
+ gc,
+} from "bun";
+import { it, expect, describe } from "bun:test";
+import { readFileSync } from "fs";
+
+describe("crypto", () => {
+ for (let Hash of [MD5, MD4, SHA1, SHA256, SHA384, SHA512, SHA512_256]) {
+ for (let [input, label] of [
+ ["hello world", '"hello world"'],
+ ["hello world".repeat(20).slice(), '"hello world" x 20'],
+ ["", "empty string"],
+ ["a", '"a"'],
+ ]) {
+ describe(label, () => {
+ gc(true);
+
+ it(`${Hash.name} base64`, () => {
+ gc(true);
+ const result = new Hash();
+ result.update(input);
+ expect(typeof result.digest("base64")).toBe("string");
+ gc(true);
+ });
+
+ it(`${Hash.name} hash base64`, () => {
+ Hash.hash(input, "base64");
+ gc(true);
+ });
+
+ it(`${Hash.name} hex`, () => {
+ const result = new Hash();
+ result.update(input);
+ expect(typeof result.digest("hex")).toBe("string");
+ gc(true);
+ });
+
+ it(`${Hash.name} hash hex`, () => {
+ expect(typeof Hash.hash(input, "hex")).toBe("string");
+ gc(true);
+ });
+
+ it(`${Hash.name} buffer`, () => {
+ var buf = new Uint8Array(256);
+ const result = new Hash();
+
+ result.update(input);
+ expect(result.digest(buf)).toBe(buf);
+ expect(buf[0] != 0).toBe(true);
+ gc(true);
+ });
+
+ it(`${Hash.name} buffer`, () => {
+ var buf = new Uint8Array(256);
+
+ expect(Hash.hash(input, buf) instanceof Uint8Array).toBe(true);
+ gc(true);
+ });
+ });
+ }
+ }
+});
diff --git a/test/bun.js/dirname.test.js b/test/bun.js/dirname.test.js
new file mode 100644
index 000000000..98292dc49
--- /dev/null
+++ b/test/bun.js/dirname.test.js
@@ -0,0 +1,9 @@
+import { expect, it } from "bun:test";
+
+it("__dirname should work", () => {
+ expect(import.meta.dir).toBe(__dirname);
+});
+
+it("__filename should work", () => {
+ expect(import.meta.path).toBe(__filename);
+});
diff --git a/test/bun.js/escapeHTML.test.js b/test/bun.js/escapeHTML.test.js
new file mode 100644
index 000000000..ecfcc5e7c
--- /dev/null
+++ b/test/bun.js/escapeHTML.test.js
@@ -0,0 +1,105 @@
+import { describe, it, expect } from "bun:test";
+import { gcTick } from "./gc";
+import { escapeHTML } from "bun";
+
+describe("escapeHTML", () => {
+ // The matrix of cases we need to test for:
+ // 1. Works with short strings
+ // 2. Works with long strings
+ // 3. Works with latin1 strings
+ // 4. Works with utf16 strings
+ // 5. Works when the text to escape is somewhere in the middle
+ // 6. Works when the text to escape is in the beginning
+ // 7. Works when the text to escape is in the end
+ // 8. Returns the same string when there's no need to escape
+ it("works", () => {
+ expect(escapeHTML("absolutely nothing to do here")).toBe(
+ "absolutely nothing to do here"
+ );
+ expect(escapeHTML("<script>alert(1)</script>")).toBe(
+ "&lt;script&gt;alert(1)&lt;/script&gt;"
+ );
+ expect(escapeHTML("<")).toBe("&lt;");
+ expect(escapeHTML(">")).toBe("&gt;");
+ expect(escapeHTML("&")).toBe("&amp;");
+ expect(escapeHTML("'")).toBe("&#x27;");
+ expect(escapeHTML('"')).toBe("&quot;");
+ expect(escapeHTML("\n")).toBe("\n");
+ expect(escapeHTML("\r")).toBe("\r");
+ expect(escapeHTML("\t")).toBe("\t");
+ expect(escapeHTML("\f")).toBe("\f");
+ expect(escapeHTML("\v")).toBe("\v");
+ expect(escapeHTML("\b")).toBe("\b");
+ expect(escapeHTML("\u00A0")).toBe("\u00A0");
+ expect(escapeHTML("<script>ab")).toBe("&lt;script&gt;ab");
+ expect(escapeHTML("<script>")).toBe("&lt;script&gt;");
+ expect(escapeHTML("<script><script>")).toBe("&lt;script&gt;&lt;script&gt;");
+
+ expect(escapeHTML("lalala" + "<script>alert(1)</script>" + "lalala")).toBe(
+ "lalala&lt;script&gt;alert(1)&lt;/script&gt;lalala"
+ );
+
+ expect(escapeHTML("<script>alert(1)</script>" + "lalala")).toBe(
+ "&lt;script&gt;alert(1)&lt;/script&gt;lalala"
+ );
+ expect(escapeHTML("lalala" + "<script>alert(1)</script>")).toBe(
+ "lalala" + "&lt;script&gt;alert(1)&lt;/script&gt;"
+ );
+
+ expect(escapeHTML("What does 😊 mean?")).toBe("What does 😊 mean?");
+ const output = escapeHTML("<What does 😊");
+ expect(output).toBe("&lt;What does 😊");
+ expect(escapeHTML("<div>What does 😊 mean in text?")).toBe(
+ "&lt;div&gt;What does 😊 mean in text?"
+ );
+
+ expect(
+ escapeHTML(
+ ("lalala" + "<script>alert(1)</script>" + "lalala").repeat(900)
+ )
+ ).toBe("lalala&lt;script&gt;alert(1)&lt;/script&gt;lalala".repeat(900));
+ expect(
+ escapeHTML(("<script>alert(1)</script>" + "lalala").repeat(900))
+ ).toBe("&lt;script&gt;alert(1)&lt;/script&gt;lalala".repeat(900));
+ expect(
+ escapeHTML(("lalala" + "<script>alert(1)</script>").repeat(900))
+ ).toBe(("lalala" + "&lt;script&gt;alert(1)&lt;/script&gt;").repeat(900));
+
+ // the positions of the unicode codepoint are important
+ // our simd code for U16 is at 8 bytes, so we need to especially check the boundaries
+ expect(
+ escapeHTML("😊lalala" + "<script>alert(1)</script>" + "lalala")
+ ).toBe("😊lalala&lt;script&gt;alert(1)&lt;/script&gt;lalala");
+ expect(escapeHTML("<script>😊alert(1)</script>" + "lalala")).toBe(
+ "&lt;script&gt;😊alert(1)&lt;/script&gt;lalala"
+ );
+ expect(escapeHTML("<script>alert(1)😊</script>" + "lalala")).toBe(
+ "&lt;script&gt;alert(1)😊&lt;/script&gt;lalala"
+ );
+ expect(escapeHTML("<script>alert(1)</script>" + "😊lalala")).toBe(
+ "&lt;script&gt;alert(1)&lt;/script&gt;😊lalala"
+ );
+ expect(escapeHTML("<script>alert(1)</script>" + "lal😊ala")).toBe(
+ "&lt;script&gt;alert(1)&lt;/script&gt;lal😊ala"
+ );
+ expect(
+ escapeHTML("<script>alert(1)</script>" + "lal😊ala".repeat(10))
+ ).toBe("&lt;script&gt;alert(1)&lt;/script&gt;" + "lal😊ala".repeat(10));
+
+ for (let i = 1; i < 10; i++)
+ expect(escapeHTML("<script>alert(1)</script>" + "la😊".repeat(i))).toBe(
+ "&lt;script&gt;alert(1)&lt;/script&gt;" + "la😊".repeat(i)
+ );
+
+ expect(escapeHTML("la😊" + "<script>alert(1)</script>")).toBe(
+ "la😊" + "&lt;script&gt;alert(1)&lt;/script&gt;"
+ );
+ expect(
+ escapeHTML(("lalala" + "<script>alert(1)</script>😊").repeat(1))
+ ).toBe(("lalala" + "&lt;script&gt;alert(1)&lt;/script&gt;😊").repeat(1));
+
+ expect(escapeHTML("😊".repeat(100))).toBe("😊".repeat(100));
+ expect(escapeHTML("😊<".repeat(100))).toBe("😊&lt;".repeat(100));
+ expect(escapeHTML("<😊>".repeat(100))).toBe("&lt;😊&gt;".repeat(100));
+ });
+});
diff --git a/test/bun.js/esm/first.mjs b/test/bun.js/esm/first.mjs
new file mode 100644
index 000000000..17021c623
--- /dev/null
+++ b/test/bun.js/esm/first.mjs
@@ -0,0 +1,8 @@
+import { end, start } from "./startEnd.mjs";
+
+start("First");
+
+import "./second.mjs";
+import "./third.mjs";
+
+end("First");
diff --git a/test/bun.js/esm/second-child.mjs b/test/bun.js/esm/second-child.mjs
new file mode 100644
index 000000000..5fb06ed45
--- /dev/null
+++ b/test/bun.js/esm/second-child.mjs
@@ -0,0 +1,5 @@
+import { start, end } from "./startEnd.mjs";
+
+start("Second (nested import)");
+
+end("Second (nested import)");
diff --git a/test/bun.js/esm/second.mjs b/test/bun.js/esm/second.mjs
new file mode 100644
index 000000000..888eb11b9
--- /dev/null
+++ b/test/bun.js/esm/second.mjs
@@ -0,0 +1,7 @@
+import { start, end } from "./startEnd.mjs";
+
+start("Second");
+
+import "./second-child.mjs";
+
+end("Second");
diff --git a/test/bun.js/esm/startEnd.mjs b/test/bun.js/esm/startEnd.mjs
new file mode 100644
index 000000000..8b5549802
--- /dev/null
+++ b/test/bun.js/esm/startEnd.mjs
@@ -0,0 +1,6 @@
+export function start(name) {
+ console.log(`[start] ${name}`);
+}
+export function end(name) {
+ console.log(`[end] ${name}`);
+}
diff --git a/test/bun.js/esm/third.mjs b/test/bun.js/esm/third.mjs
new file mode 100644
index 000000000..f5ba5cc84
--- /dev/null
+++ b/test/bun.js/esm/third.mjs
@@ -0,0 +1,4 @@
+import { end, start } from "./startEnd.mjs";
+
+start("Third");
+end("Third");
diff --git a/test/bun.js/exit.js b/test/bun.js/exit.js
new file mode 100644
index 000000000..fb28b1fb4
--- /dev/null
+++ b/test/bun.js/exit.js
@@ -0,0 +1,2 @@
+process.exit(0);
+throw new Error("Well that didn't work");
diff --git a/test/bun.js/fetch.js.txt b/test/bun.js/fetch.js.txt
new file mode 100644
index 000000000..5a9b52fcf
--- /dev/null
+++ b/test/bun.js/fetch.js.txt
@@ -0,0 +1,46 @@
+<!doctype html>
+<html>
+<head>
+ <title>Example Domain</title>
+
+ <meta charset="utf-8" />
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <style type="text/css">
+ body {
+ background-color: #f0f0f2;
+ margin: 0;
+ padding: 0;
+ font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
+
+ }
+ div {
+ width: 600px;
+ margin: 5em auto;
+ padding: 2em;
+ background-color: #fdfdff;
+ border-radius: 0.5em;
+ box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
+ }
+ a:link, a:visited {
+ color: #38488f;
+ text-decoration: none;
+ }
+ @media (max-width: 700px) {
+ div {
+ margin: 0 auto;
+ width: auto;
+ }
+ }
+ </style>
+</head>
+
+<body>
+<div>
+ <h1>Example Domain</h1>
+ <p>This domain is for use in illustrative examples in documents. You may use this
+ domain in literature without prior coordination or asking for permission.</p>
+ <p><a href="https://www.iana.org/domains/example">More information...</a></p>
+</div>
+</body>
+</html>
diff --git a/test/bun.js/fetch.test.js b/test/bun.js/fetch.test.js
new file mode 100644
index 000000000..9b6093afd
--- /dev/null
+++ b/test/bun.js/fetch.test.js
@@ -0,0 +1,440 @@
+import { it, describe, expect } from "bun:test";
+import fs from "fs";
+import { gc } from "./gc";
+
+describe("fetch", () => {
+ const urls = ["https://example.com", "http://example.com"];
+ for (let url of urls) {
+ gc();
+ it(url, async () => {
+ gc();
+ const response = await fetch(url);
+ gc();
+ const text = await response.text();
+ gc();
+ expect(
+ fs.readFileSync(
+ import.meta.path.substring(0, import.meta.path.lastIndexOf("/")) +
+ "/fetch.js.txt",
+ "utf8"
+ )
+ ).toBe(text);
+ });
+ }
+});
+
+function testBlobInterface(blobbyConstructor, hasBlobFn) {
+ for (let withGC of [false, true]) {
+ for (let jsonObject of [
+ { hello: true },
+ {
+ hello:
+ "πŸ˜€ πŸ˜ƒ πŸ˜„ 😁 πŸ˜† πŸ˜… πŸ˜‚ 🀣 πŸ₯² ☺️ 😊 πŸ˜‡ πŸ™‚ πŸ™ƒ πŸ˜‰ 😌 😍 πŸ₯° 😘 πŸ˜— πŸ˜™ 😚 πŸ˜‹ πŸ˜› 😝 😜 πŸ€ͺ 🀨 🧐 πŸ€“ 😎 πŸ₯Έ 🀩 πŸ₯³",
+ },
+ ]) {
+ it(`${jsonObject.hello === true ? "latin1" : "utf16"} json${
+ withGC ? " (with gc) " : ""
+ }`, async () => {
+ if (withGC) gc();
+ var response = blobbyConstructor(JSON.stringify(jsonObject));
+ if (withGC) gc();
+ expect(JSON.stringify(await response.json())).toBe(
+ JSON.stringify(jsonObject)
+ );
+ if (withGC) gc();
+ });
+
+ it(`${
+ jsonObject.hello === true ? "latin1" : "utf16"
+ } arrayBuffer -> json${withGC ? " (with gc) " : ""}`, async () => {
+ if (withGC) gc();
+ var response = blobbyConstructor(
+ new TextEncoder().encode(JSON.stringify(jsonObject))
+ );
+ if (withGC) gc();
+ expect(JSON.stringify(await response.json())).toBe(
+ JSON.stringify(jsonObject)
+ );
+ if (withGC) gc();
+ });
+
+ it(`${jsonObject.hello === true ? "latin1" : "utf16"} text${
+ withGC ? " (with gc) " : ""
+ }`, async () => {
+ if (withGC) gc();
+ var response = blobbyConstructor(JSON.stringify(jsonObject));
+ if (withGC) gc();
+ expect(await response.text()).toBe(JSON.stringify(jsonObject));
+ if (withGC) gc();
+ });
+
+ it(`${
+ jsonObject.hello === true ? "latin1" : "utf16"
+ } arrayBuffer -> text${withGC ? " (with gc) " : ""}`, async () => {
+ if (withGC) gc();
+ var response = blobbyConstructor(
+ new TextEncoder().encode(JSON.stringify(jsonObject))
+ );
+ if (withGC) gc();
+ expect(await response.text()).toBe(JSON.stringify(jsonObject));
+ if (withGC) gc();
+ });
+
+ it(`${jsonObject.hello === true ? "latin1" : "utf16"} arrayBuffer${
+ withGC ? " (with gc) " : ""
+ }`, async () => {
+ if (withGC) gc();
+
+ var response = blobbyConstructor(JSON.stringify(jsonObject));
+ if (withGC) gc();
+
+ const bytes = new TextEncoder().encode(JSON.stringify(jsonObject));
+ if (withGC) gc();
+
+ const compare = new Uint8Array(await response.arrayBuffer());
+ if (withGC) gc();
+
+ for (let i = 0; i < compare.length; i++) {
+ if (withGC) gc();
+
+ expect(compare[i]).toBe(bytes[i]);
+ if (withGC) gc();
+ }
+ if (withGC) gc();
+ });
+
+ it(`${
+ jsonObject.hello === true ? "latin1" : "utf16"
+ } arrayBuffer -> arrayBuffer${withGC ? " (with gc) " : ""}`, async () => {
+ if (withGC) gc();
+
+ var response = blobbyConstructor(
+ new TextEncoder().encode(JSON.stringify(jsonObject))
+ );
+ if (withGC) gc();
+
+ const bytes = new TextEncoder().encode(JSON.stringify(jsonObject));
+ if (withGC) gc();
+
+ const compare = new Uint8Array(await response.arrayBuffer());
+ if (withGC) gc();
+
+ for (let i = 0; i < compare.length; i++) {
+ if (withGC) gc();
+
+ expect(compare[i]).toBe(bytes[i]);
+ if (withGC) gc();
+ }
+ if (withGC) gc();
+ });
+
+ hasBlobFn &&
+ it(`${jsonObject.hello === true ? "latin1" : "utf16"} blob${
+ withGC ? " (with gc) " : ""
+ }`, async () => {
+ if (withGC) gc();
+ const text = JSON.stringify(jsonObject);
+ var response = blobbyConstructor(text);
+ if (withGC) gc();
+ const size = new TextEncoder().encode(text).byteLength;
+ if (withGC) gc();
+ const blobed = await response.blob();
+ if (withGC) gc();
+ expect(blobed instanceof Blob).toBe(true);
+ if (withGC) gc();
+ expect(blobed.size).toBe(size);
+ if (withGC) gc();
+ expect(blobed.type).toBe("");
+ if (withGC) gc();
+ blobed.type = "application/json";
+ if (withGC) gc();
+ expect(blobed.type).toBe("application/json");
+ if (withGC) gc();
+ const out = await blobed.text();
+ expect(out).toBe(text);
+ if (withGC) gc();
+ await new Promise((resolve) => setTimeout(resolve, 1));
+ if (withGC) gc();
+ expect(out).toBe(text);
+ const first = await blobed.arrayBuffer();
+ const initial = first[0];
+ first[0] = 254;
+ const second = await blobed.arrayBuffer();
+ expect(second[0]).toBe(initial);
+ expect(first[0]).toBe(254);
+ });
+ }
+ }
+}
+
+describe("Blob", () => {
+ testBlobInterface((data) => new Blob([data]));
+
+ var blobConstructorValues = [
+ ["123", "456"],
+ ["123", 456],
+ ["123", "456", "789"],
+ ["123", 456, 789],
+ [1, 2, 3, 4, 5, 6, 7, 8, 9],
+ [Uint8Array.from([1, 2, 3, 4, 5, 6, 7, 9])],
+ [Uint8Array.from([1, 2, 3, 4]), "5678", 9],
+ [new Blob([Uint8Array.from([1, 2, 3, 4])]), "5678", 9],
+ [
+ new Blob([
+ new TextEncoder().encode(
+ "πŸ˜€ πŸ˜ƒ πŸ˜„ 😁 πŸ˜† πŸ˜… πŸ˜‚ 🀣 πŸ₯² ☺️ 😊 πŸ˜‡ πŸ™‚ πŸ™ƒ πŸ˜‰ 😌 😍 πŸ₯° 😘 πŸ˜— πŸ˜™ 😚 πŸ˜‹ πŸ˜› 😝 😜 πŸ€ͺ 🀨 🧐 πŸ€“ 😎 πŸ₯Έ 🀩 πŸ₯³"
+ ),
+ ]),
+ ],
+ [
+ new TextEncoder().encode(
+ "πŸ˜€ πŸ˜ƒ πŸ˜„ 😁 πŸ˜† πŸ˜… πŸ˜‚ 🀣 πŸ₯² ☺️ 😊 πŸ˜‡ πŸ™‚ πŸ™ƒ πŸ˜‰ 😌 😍 πŸ₯° 😘 πŸ˜— πŸ˜™ 😚 πŸ˜‹ πŸ˜› 😝 😜 πŸ€ͺ 🀨 🧐 πŸ€“ 😎 πŸ₯Έ 🀩 πŸ₯³"
+ ),
+ ],
+ ];
+
+ var expected = [
+ "123456",
+ "123456",
+ "123456789",
+ "123456789",
+ "123456789",
+ "\x01\x02\x03\x04\x05\x06\x07\t",
+ "\x01\x02\x03\x0456789",
+ "\x01\x02\x03\x0456789",
+ "πŸ˜€ πŸ˜ƒ πŸ˜„ 😁 πŸ˜† πŸ˜… πŸ˜‚ 🀣 πŸ₯² ☺️ 😊 πŸ˜‡ πŸ™‚ πŸ™ƒ πŸ˜‰ 😌 😍 πŸ₯° 😘 πŸ˜— πŸ˜™ 😚 πŸ˜‹ πŸ˜› 😝 😜 πŸ€ͺ 🀨 🧐 πŸ€“ 😎 πŸ₯Έ 🀩 πŸ₯³",
+ "πŸ˜€ πŸ˜ƒ πŸ˜„ 😁 πŸ˜† πŸ˜… πŸ˜‚ 🀣 πŸ₯² ☺️ 😊 πŸ˜‡ πŸ™‚ πŸ™ƒ πŸ˜‰ 😌 😍 πŸ₯° 😘 πŸ˜— πŸ˜™ 😚 πŸ˜‹ πŸ˜› 😝 😜 πŸ€ͺ 🀨 🧐 πŸ€“ 😎 πŸ₯Έ 🀩 πŸ₯³",
+ ];
+
+ it(`blobConstructorValues`, async () => {
+ for (let i = 0; i < blobConstructorValues.length; i++) {
+ var response = new Blob(blobConstructorValues[i]);
+ const res = await response.text();
+ if (res !== expected[i]) {
+ throw new Error(
+ `Failed: ${expected[i]
+ .split("")
+ .map((a) => a.charCodeAt(0))}, received: ${res
+ .split("")
+ .map((a) => a.charCodeAt(0))}`
+ );
+ }
+
+ expect(res).toBe(expected[i]);
+ }
+ });
+
+ for (let withGC of [false, true]) {
+ it(`Blob.slice() ${withGC ? " with gc" : ""}`, async () => {
+ var parts = ["hello", " ", "world"];
+ if (withGC) gc();
+ var str = parts.join("");
+ if (withGC) gc();
+ var combined = new Blob(parts);
+ if (withGC) gc();
+ for (let part of parts) {
+ if (withGC) gc();
+ expect(
+ await combined
+ .slice(str.indexOf(part), str.indexOf(part) + part.length)
+ .text()
+ ).toBe(part);
+ if (withGC) gc();
+ }
+ if (withGC) gc();
+ for (let part of parts) {
+ if (withGC) gc();
+ expect(
+ await combined
+ .slice(str.indexOf(part), str.indexOf(part) + part.length)
+ .text()
+ ).toBe(part);
+ if (withGC) gc();
+ }
+ });
+ }
+});
+
+describe("Response", () => {
+ describe("Response.json", () => {
+ it("works", async () => {
+ const inputs = [
+ "hellooo",
+ [[123], 456, 789],
+ { hello: "world" },
+ { ok: "πŸ˜‰ 😌 😍 πŸ₯° 😘 " },
+ ];
+ for (let input of inputs) {
+ const output = JSON.stringify(input);
+ expect(await Response.json(input).text()).toBe(output);
+ }
+ // JSON.stringify() returns undefined
+ expect(await Response.json().text()).toBe("");
+ // JSON.stringify("") returns '""'
+ expect(await Response.json("").text()).toBe('""');
+ });
+ it("sets the content-type header", () => {
+ let response = Response.json("hello");
+ expect(response.type).toBe("basic");
+ expect(response.headers.get("content-type")).toBe(
+ "application/json;charset=utf-8"
+ );
+ expect(response.status).toBe(200);
+ });
+ it("supports number status code", () => {
+ let response = Response.json("hello", 407);
+ expect(response.type).toBe("basic");
+ expect(response.headers.get("content-type")).toBe(
+ "application/json;charset=utf-8"
+ );
+ expect(response.status).toBe(407);
+ });
+
+ it("supports headers", () => {
+ var response = Response.json("hello", {
+ headers: {
+ "content-type": "potato",
+ "x-hello": "world",
+ },
+ status: 408,
+ });
+
+ expect(response.headers.get("x-hello")).toBe("world");
+ expect(response.status).toBe(408);
+ });
+ });
+ describe("Response.redirect", () => {
+ it("works", () => {
+ const inputs = [
+ "http://example.com",
+ "http://example.com/",
+ "http://example.com/hello",
+ "http://example.com/hello/",
+ "http://example.com/hello/world",
+ "http://example.com/hello/world/",
+ ];
+ for (let input of inputs) {
+ expect(Response.redirect(input).headers.get("Location")).toBe(input);
+ }
+ });
+
+ it("supports headers", () => {
+ var response = Response.redirect("https://example.com", {
+ headers: {
+ "content-type": "potato",
+ "x-hello": "world",
+ Location: "https://wrong.com",
+ },
+ status: 408,
+ });
+ expect(response.headers.get("x-hello")).toBe("world");
+ expect(response.headers.get("Location")).toBe("https://example.com");
+ expect(response.status).toBe(302);
+ expect(response.type).toBe("basic");
+ expect(response.ok).toBe(false);
+ });
+ });
+ describe("Response.error", () => {
+ it("works", () => {
+ expect(Response.error().type).toBe("error");
+ expect(Response.error().ok).toBe(false);
+ expect(Response.error().status).toBe(0);
+ });
+ });
+ it("clone", async () => {
+ gc();
+ var body = new Response("<div>hello</div>", {
+ headers: {
+ "content-type": "text/html; charset=utf-8",
+ },
+ });
+ gc();
+ var clone = body.clone();
+ gc();
+ body.headers.set("content-type", "text/plain");
+ gc();
+ expect(clone.headers.get("content-type")).toBe("text/html; charset=utf-8");
+ gc();
+ expect(body.headers.get("content-type")).toBe("text/plain");
+ gc();
+ expect(await clone.text()).toBe("<div>hello</div>");
+ gc();
+ });
+ it("invalid json", async () => {
+ gc();
+ var body = new Response("<div>hello</div>", {
+ headers: {
+ "content-type": "text/html; charset=utf-8",
+ },
+ });
+ try {
+ await body.json();
+ expect(false).toBe(true);
+ } catch (exception) {
+ expect(exception instanceof SyntaxError);
+ }
+ });
+
+ testBlobInterface((data) => new Response(data), true);
+});
+
+describe("Request", () => {
+ it("clone", async () => {
+ gc();
+ var body = new Request("https://hello.com", {
+ headers: {
+ "content-type": "text/html; charset=utf-8",
+ },
+ body: "<div>hello</div>",
+ });
+ gc();
+ expect(body.headers.get("content-type")).toBe("text/html; charset=utf-8");
+ gc();
+ var clone = body.clone();
+ gc();
+ body.headers.set("content-type", "text/plain");
+ gc();
+ expect(clone.headers.get("content-type")).toBe("text/html; charset=utf-8");
+ gc();
+ expect(body.headers.get("content-type")).toBe("text/plain");
+ gc();
+ expect(await clone.text()).toBe("<div>hello</div>");
+ gc();
+ });
+
+ testBlobInterface(
+ (data) => new Request("https://hello.com", { body: data }),
+ true
+ );
+});
+
+describe("Headers", () => {
+ it("writes", async () => {
+ var headers = new Headers({
+ "content-type": "text/html; charset=utf-8",
+ });
+ gc();
+ expect(headers.get("content-type")).toBe("text/html; charset=utf-8");
+ gc();
+ headers.delete("content-type");
+ gc();
+ expect(headers.get("content-type")).toBe(null);
+ gc();
+ headers.append("content-type", "text/plain");
+ gc();
+ expect(headers.get("content-type")).toBe("text/plain");
+ gc();
+ headers.append("content-type", "text/plain");
+ gc();
+ expect(headers.get("content-type")).toBe("text/plain, text/plain");
+ gc();
+ headers.set("content-type", "text/html; charset=utf-8");
+ gc();
+ expect(headers.get("content-type")).toBe("text/html; charset=utf-8");
+
+ headers.delete("content-type");
+ gc();
+ expect(headers.get("content-type")).toBe(null);
+ gc();
+ });
+});
diff --git a/test/bun.js/ffi-test.c b/test/bun.js/ffi-test.c
new file mode 100644
index 000000000..cc87d0528
--- /dev/null
+++ b/test/bun.js/ffi-test.c
@@ -0,0 +1,129 @@
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+bool returns_true();
+bool returns_false();
+char returns_42_char();
+float returns_42_float();
+double returns_42_double();
+uint8_t returns_42_uint8_t();
+int8_t returns_neg_42_int8_t();
+uint16_t returns_42_uint16_t();
+uint32_t returns_42_uint32_t();
+uint64_t returns_42_uint64_t();
+int16_t returns_neg_42_int16_t();
+int32_t returns_neg_42_int32_t();
+int64_t returns_neg_42_int64_t();
+
+bool cb_identity_true(bool (*cb)());
+bool cb_identity_false(bool (*cb)());
+char cb_identity_42_char(char (*cb)());
+float cb_identity_42_float(float (*cb)());
+double cb_identity_42_double(double (*cb)());
+uint8_t cb_identity_42_uint8_t(uint8_t (*cb)());
+int8_t cb_identity_neg_42_int8_t(int8_t (*cb)());
+uint16_t cb_identity_42_uint16_t(uint16_t (*cb)());
+uint32_t cb_identity_42_uint32_t(uint32_t (*cb)());
+uint64_t cb_identity_42_uint64_t(uint64_t (*cb)());
+int16_t cb_identity_neg_42_int16_t(int16_t (*cb)());
+int32_t cb_identity_neg_42_int32_t(int32_t (*cb)());
+int64_t cb_identity_neg_42_int64_t(int64_t (*cb)());
+
+bool identity_bool_true();
+bool identity_bool_false();
+char identity_char(char a);
+float identity_float(float a);
+bool identity_bool(bool ident);
+double identity_double(double a);
+int8_t identity_int8_t(int8_t a);
+int16_t identity_int16_t(int16_t a);
+int32_t identity_int32_t(int32_t a);
+int64_t identity_int64_t(int64_t a);
+uint8_t identity_uint8_t(uint8_t a);
+uint16_t identity_uint16_t(uint16_t a);
+uint32_t identity_uint32_t(uint32_t a);
+uint64_t identity_uint64_t(uint64_t a);
+
+char add_char(char a, char b);
+float add_float(float a, float b);
+double add_double(double a, double b);
+int8_t add_int8_t(int8_t a, int8_t b);
+int16_t add_int16_t(int16_t a, int16_t b);
+int32_t add_int32_t(int32_t a, int32_t b);
+int64_t add_int64_t(int64_t a, int64_t b);
+uint8_t add_uint8_t(uint8_t a, uint8_t b);
+uint16_t add_uint16_t(uint16_t a, uint16_t b);
+uint32_t add_uint32_t(uint32_t a, uint32_t b);
+uint64_t add_uint64_t(uint64_t a, uint64_t b);
+
+bool returns_false() { return false; }
+bool returns_true() { return true; }
+char returns_42_char() { return '*'; }
+double returns_42_double() { return (double)42.42; }
+float returns_42_float() { return 42.42f; }
+int16_t returns_neg_42_int16_t() { return -42; }
+int32_t returns_neg_42_int32_t() { return -42; }
+int64_t returns_neg_42_int64_t() { return -42; }
+int8_t returns_neg_42_int8_t() { return -42; }
+uint16_t returns_42_uint16_t() { return 42; }
+uint32_t returns_42_uint32_t() { return 42; }
+uint64_t returns_42_uint64_t() { return 42; }
+uint8_t returns_42_uint8_t() { return (uint8_t)42; }
+
+char identity_char(char a) { return a; }
+float identity_float(float a) { return a; }
+double identity_double(double a) { return a; }
+int8_t identity_int8_t(int8_t a) { return a; }
+int16_t identity_int16_t(int16_t a) { return a; }
+int32_t identity_int32_t(int32_t a) { return a; }
+int64_t identity_int64_t(int64_t a) { return a; }
+uint8_t identity_uint8_t(uint8_t a) { return a; }
+uint16_t identity_uint16_t(uint16_t a) { return a; }
+uint32_t identity_uint32_t(uint32_t a) { return a; }
+uint64_t identity_uint64_t(uint64_t a) { return a; }
+bool identity_bool(bool ident) { return ident; }
+void *identity_ptr(void *ident) { return ident; }
+
+char add_char(char a, char b) { return a + b; }
+float add_float(float a, float b) { return a + b; }
+double add_double(double a, double b) { return a + b; }
+int8_t add_int8_t(int8_t a, int8_t b) { return a + b; }
+int16_t add_int16_t(int16_t a, int16_t b) { return a + b; }
+int32_t add_int32_t(int32_t a, int32_t b) { return a + b; }
+int64_t add_int64_t(int64_t a, int64_t b) { return a + b; }
+uint8_t add_uint8_t(uint8_t a, uint8_t b) { return a + b; }
+uint16_t add_uint16_t(uint16_t a, uint16_t b) { return a + b; }
+uint32_t add_uint32_t(uint32_t a, uint32_t b) { return a + b; }
+uint64_t add_uint64_t(uint64_t a, uint64_t b) { return a + b; }
+
+void *ptr_should_point_to_42_as_int32_t();
+void *ptr_should_point_to_42_as_int32_t() {
+ int32_t *ptr = malloc(sizeof(int32_t));
+ *ptr = 42;
+ return ptr;
+}
+
+bool does_pointer_equal_42_as_int32_t(int32_t *ptr);
+bool does_pointer_equal_42_as_int32_t(int32_t *ptr) { return *ptr == 42; }
+
+void *return_a_function_ptr_to_function_that_returns_true();
+void *return_a_function_ptr_to_function_that_returns_true() {
+ return (void *)&returns_true;
+}
+
+bool cb_identity_true(bool (*cb)()) { return cb(); }
+
+bool cb_identity_false(bool (*cb)()) { return cb(); }
+char cb_identity_42_char(char (*cb)()) { return cb(); }
+float cb_identity_42_float(float (*cb)()) { return cb(); }
+double cb_identity_42_double(double (*cb)()) { return cb(); }
+uint8_t cb_identity_42_uint8_t(uint8_t (*cb)()) { return cb(); }
+int8_t cb_identity_neg_42_int8_t(int8_t (*cb)()) { return cb(); }
+uint16_t cb_identity_42_uint16_t(uint16_t (*cb)()) { return cb(); }
+uint32_t cb_identity_42_uint32_t(uint32_t (*cb)()) { return cb(); }
+uint64_t cb_identity_42_uint64_t(uint64_t (*cb)()) { return cb(); }
+int16_t cb_identity_neg_42_int16_t(int16_t (*cb)()) { return cb(); }
+int32_t cb_identity_neg_42_int32_t(int32_t (*cb)()) { return cb(); }
+int64_t cb_identity_neg_42_int64_t(int64_t (*cb)()) { return cb(); } \ No newline at end of file
diff --git a/test/bun.js/ffi.test.fixture.callback.c b/test/bun.js/ffi.test.fixture.callback.c
new file mode 100644
index 000000000..d48ef6753
--- /dev/null
+++ b/test/bun.js/ffi.test.fixture.callback.c
@@ -0,0 +1,270 @@
+#define IS_CALLBACK 1
+// This file is part of Bun!
+// You can find the original source:
+// https://github.com/Jarred-Sumner/bun/blob/main/src/bun.js/api/FFI.h#L2
+//
+// clang-format off
+// This file is only compatible with 64 bit CPUs
+// It must be kept in sync with JSCJSValue.h
+// https://github.com/Jarred-Sumner/WebKit/blob/72c2052b781cbfd4af867ae79ac9de460e392fba/Source/JavaScriptCore/runtime/JSCJSValue.h#L455-L458
+#ifdef IS_CALLBACK
+#define INJECT_BEFORE int c = 500; // This is a callback, so we need to inject code before the call
+#endif
+#define IS_BIG_ENDIAN 0
+#define USE_JSVALUE64 1
+#define USE_JSVALUE32_64 0
+
+
+// /* 7.18.1.1 Exact-width integer types */
+typedef unsigned char uint8_t;
+typedef signed char int8_t;
+typedef short int16_t;
+typedef unsigned short uint16_t;
+typedef int int32_t;
+typedef unsigned int uint32_t;
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+typedef unsigned long long size_t;
+typedef long intptr_t;
+typedef uint64_t uintptr_t;
+typedef _Bool bool;
+
+#define true 1
+#define false 0
+
+
+#ifdef INJECT_BEFORE
+// #include <stdint.h>
+#endif
+// #include <tcclib.h>
+
+// This value is 2^49, used to encode doubles such that the encoded value will
+// begin with a 15-bit pattern within the range 0x0002..0xFFFC.
+#define DoubleEncodeOffsetBit 49
+#define DoubleEncodeOffset (1ll << DoubleEncodeOffsetBit)
+#define OtherTag 0x2
+#define BoolTag 0x4
+#define UndefinedTag 0x8
+#define TagValueFalse (OtherTag | BoolTag | false)
+#define TagValueTrue (OtherTag | BoolTag | true)
+#define TagValueUndefined (OtherTag | UndefinedTag)
+#define TagValueNull (OtherTag)
+#define NotCellMask NumberTag | OtherTag
+
+#define MAX_INT32 2147483648
+#define MAX_INT52 9007199254740991
+
+// If all bits in the mask are set, this indicates an integer number,
+// if any but not all are set this value is a double precision number.
+#define NumberTag 0xfffe000000000000ll
+
+typedef void* JSCell;
+
+typedef union EncodedJSValue {
+ int64_t asInt64;
+
+#if USE_JSVALUE64
+ JSCell *ptr;
+#endif
+
+#if IS_BIG_ENDIAN
+ struct {
+ int32_t tag;
+ int32_t payload;
+ } asBits;
+#else
+ struct {
+ int32_t payload;
+ int32_t tag;
+ } asBits;
+#endif
+
+ void* asPtr;
+ double asDouble;
+} EncodedJSValue;
+
+EncodedJSValue ValueUndefined = { TagValueUndefined };
+EncodedJSValue ValueTrue = { TagValueTrue };
+
+typedef void* JSContext;
+
+// Bun_FFI_PointerOffsetToArgumentsList is injected into the build
+// The value is generated in `make sizegen`
+// The value is 6.
+// On ARM64_32, the value is something else but it really doesn't matter for our case
+// However, I don't want this to subtly break amidst future upgrades to JavaScriptCore
+#define LOAD_ARGUMENTS_FROM_CALL_FRAME \
+ int64_t *argsPtr = (int64_t*)((size_t*)callFrame + Bun_FFI_PointerOffsetToArgumentsList)
+
+
+#ifdef IS_CALLBACK
+extern int64_t bun_call(JSContext, void* func, void* thisValue, size_t len, const EncodedJSValue args[], void* exception);
+JSContext cachedJSContext;
+void* cachedCallbackFunction;
+#endif
+
+static bool JSVALUE_IS_CELL(EncodedJSValue val) __attribute__((__always_inline__));
+static bool JSVALUE_IS_INT32(EncodedJSValue val) __attribute__((__always_inline__));
+static bool JSVALUE_IS_NUMBER(EncodedJSValue val) __attribute__((__always_inline__));
+
+static uint64_t JSVALUE_TO_UINT64(void* globalObject, EncodedJSValue value) __attribute__((__always_inline__));
+static int64_t JSVALUE_TO_INT64(EncodedJSValue value) __attribute__((__always_inline__));
+uint64_t JSVALUE_TO_UINT64_SLOW(void* globalObject, EncodedJSValue value);
+int64_t JSVALUE_TO_INT64_SLOW(EncodedJSValue value);
+
+EncodedJSValue UINT64_TO_JSVALUE_SLOW(void* globalObject, uint64_t val);
+EncodedJSValue INT64_TO_JSVALUE_SLOW(void* globalObject, int64_t val);
+static EncodedJSValue UINT64_TO_JSVALUE(void* globalObject, uint64_t val) __attribute__((__always_inline__));
+static EncodedJSValue INT64_TO_JSVALUE(void* globalObject, int64_t val) __attribute__((__always_inline__));
+
+
+static EncodedJSValue INT32_TO_JSVALUE(int32_t val) __attribute__((__always_inline__));
+static EncodedJSValue DOUBLE_TO_JSVALUE(double val) __attribute__((__always_inline__));
+static EncodedJSValue FLOAT_TO_JSVALUE(float val) __attribute__((__always_inline__));
+static EncodedJSValue BOOLEAN_TO_JSVALUE(bool val) __attribute__((__always_inline__));
+static EncodedJSValue PTR_TO_JSVALUE(void* ptr) __attribute__((__always_inline__));
+
+static void* JSVALUE_TO_PTR(EncodedJSValue val) __attribute__((__always_inline__));
+static int32_t JSVALUE_TO_INT32(EncodedJSValue val) __attribute__((__always_inline__));
+static float JSVALUE_TO_FLOAT(EncodedJSValue val) __attribute__((__always_inline__));
+static double JSVALUE_TO_DOUBLE(EncodedJSValue val) __attribute__((__always_inline__));
+static bool JSVALUE_TO_BOOL(EncodedJSValue val) __attribute__((__always_inline__));
+
+static bool JSVALUE_IS_CELL(EncodedJSValue val) {
+ return !(val.asInt64 & NotCellMask);
+}
+
+static bool JSVALUE_IS_INT32(EncodedJSValue val) {
+ return (val.asInt64 & NumberTag) == NumberTag;
+}
+
+static bool JSVALUE_IS_NUMBER(EncodedJSValue val) {
+ return val.asInt64 & NumberTag;
+}
+
+
+static void* JSVALUE_TO_PTR(EncodedJSValue val) {
+ // must be a double
+ return (void*)(val.asInt64 - DoubleEncodeOffset);
+}
+
+static EncodedJSValue PTR_TO_JSVALUE(void* ptr) {
+ EncodedJSValue val;
+ val.asInt64 = (int64_t)ptr + DoubleEncodeOffset;
+ return val;
+}
+
+static int32_t JSVALUE_TO_INT32(EncodedJSValue val) {
+ return val.asInt64;
+}
+
+static EncodedJSValue INT32_TO_JSVALUE(int32_t val) {
+ EncodedJSValue res;
+ res.asInt64 = NumberTag | (uint32_t)val;
+ return res;
+}
+
+
+static EncodedJSValue DOUBLE_TO_JSVALUE(double val) {
+ EncodedJSValue res;
+ res.asDouble = val;
+ res.asInt64 += DoubleEncodeOffset;
+ return res;
+}
+
+static EncodedJSValue FLOAT_TO_JSVALUE(float val) {
+ return DOUBLE_TO_JSVALUE((double)val);
+}
+
+static EncodedJSValue BOOLEAN_TO_JSVALUE(bool val) {
+ EncodedJSValue res;
+ res.asInt64 = val ? TagValueTrue : TagValueFalse;
+ return res;
+}
+
+
+static double JSVALUE_TO_DOUBLE(EncodedJSValue val) {
+ val.asInt64 -= DoubleEncodeOffset;
+ return val.asDouble;
+}
+
+static float JSVALUE_TO_FLOAT(EncodedJSValue val) {
+ return (float)JSVALUE_TO_DOUBLE(val);
+}
+
+static bool JSVALUE_TO_BOOL(EncodedJSValue val) {
+ return val.asInt64 == TagValueTrue;
+}
+
+
+static uint64_t JSVALUE_TO_UINT64(void* globalObject, EncodedJSValue value) {
+ if (JSVALUE_IS_INT32(value)) {
+ return (uint64_t)JSVALUE_TO_INT32(value);
+ }
+
+ if (JSVALUE_IS_NUMBER(value)) {
+ return (uint64_t)JSVALUE_TO_DOUBLE(value);
+ }
+
+ return JSVALUE_TO_UINT64_SLOW(globalObject, value);
+}
+static int64_t JSVALUE_TO_INT64(EncodedJSValue value) {
+ if (JSVALUE_IS_INT32(value)) {
+ return (int64_t)JSVALUE_TO_INT32(value);
+ }
+
+ if (JSVALUE_IS_NUMBER(value)) {
+ return (int64_t)JSVALUE_TO_DOUBLE(value);
+ }
+
+ return JSVALUE_TO_INT64_SLOW(value);
+}
+
+static EncodedJSValue UINT64_TO_JSVALUE(void* globalObject, uint64_t val) {
+ if (val < MAX_INT32) {
+ return INT32_TO_JSVALUE((int32_t)val);
+ }
+
+ if (val < MAX_INT52) {
+ return DOUBLE_TO_JSVALUE((double)val);
+ }
+
+ return UINT64_TO_JSVALUE_SLOW(globalObject, val);
+}
+
+static EncodedJSValue INT64_TO_JSVALUE(void* globalObject, int64_t val) {
+ if (val >= -MAX_INT32 && val <= MAX_INT32) {
+ return INT32_TO_JSVALUE((int32_t)val);
+ }
+
+ if (val >= -MAX_INT52 && val <= MAX_INT52) {
+ return DOUBLE_TO_JSVALUE((double)val);
+ }
+
+ return INT64_TO_JSVALUE_SLOW(globalObject, val);
+}
+
+#ifndef IS_CALLBACK
+void* JSFunctionCall(void* globalObject, void* callFrame);
+
+#endif
+
+
+// --- Generated Code ---
+
+
+/* --- The Callback Function */
+/* --- The Callback Function */
+bool my_callback_function(void* arg0);
+
+bool my_callback_function(void* arg0) {
+#ifdef INJECT_BEFORE
+INJECT_BEFORE;
+#endif
+ EncodedJSValue arguments[1] = {
+ PTR_TO_JSVALUE(arg0)
+ };
+ EncodedJSValue return_value = {bun_call(cachedJSContext, cachedCallbackFunction, (void*)0, 1, &arguments[0], (void*)0)};
+ return JSVALUE_TO_BOOL(return_value);
+}
+
diff --git a/test/bun.js/ffi.test.fixture.receiver.c b/test/bun.js/ffi.test.fixture.receiver.c
new file mode 100644
index 000000000..5bb51bda5
--- /dev/null
+++ b/test/bun.js/ffi.test.fixture.receiver.c
@@ -0,0 +1,268 @@
+#define HAS_ARGUMENTS
+#define USES_FLOAT 1
+// This file is part of Bun!
+// You can find the original source:
+// https://github.com/Jarred-Sumner/bun/blob/main/src/bun.js/api/FFI.h#L2
+//
+// clang-format off
+// This file is only compatible with 64 bit CPUs
+// It must be kept in sync with JSCJSValue.h
+// https://github.com/Jarred-Sumner/WebKit/blob/72c2052b781cbfd4af867ae79ac9de460e392fba/Source/JavaScriptCore/runtime/JSCJSValue.h#L455-L458
+#ifdef IS_CALLBACK
+#define INJECT_BEFORE int c = 500; // This is a callback, so we need to inject code before the call
+#endif
+#define IS_BIG_ENDIAN 0
+#define USE_JSVALUE64 1
+#define USE_JSVALUE32_64 0
+
+
+// /* 7.18.1.1 Exact-width integer types */
+typedef unsigned char uint8_t;
+typedef signed char int8_t;
+typedef short int16_t;
+typedef unsigned short uint16_t;
+typedef int int32_t;
+typedef unsigned int uint32_t;
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+typedef unsigned long long size_t;
+typedef long intptr_t;
+typedef uint64_t uintptr_t;
+typedef _Bool bool;
+
+#define true 1
+#define false 0
+
+
+#ifdef INJECT_BEFORE
+// #include <stdint.h>
+#endif
+// #include <tcclib.h>
+
+// This value is 2^49, used to encode doubles such that the encoded value will
+// begin with a 15-bit pattern within the range 0x0002..0xFFFC.
+#define DoubleEncodeOffsetBit 49
+#define DoubleEncodeOffset (1ll << DoubleEncodeOffsetBit)
+#define OtherTag 0x2
+#define BoolTag 0x4
+#define UndefinedTag 0x8
+#define TagValueFalse (OtherTag | BoolTag | false)
+#define TagValueTrue (OtherTag | BoolTag | true)
+#define TagValueUndefined (OtherTag | UndefinedTag)
+#define TagValueNull (OtherTag)
+#define NotCellMask NumberTag | OtherTag
+
+#define MAX_INT32 2147483648
+#define MAX_INT52 9007199254740991
+
+// If all bits in the mask are set, this indicates an integer number,
+// if any but not all are set this value is a double precision number.
+#define NumberTag 0xfffe000000000000ll
+
+typedef void* JSCell;
+
+typedef union EncodedJSValue {
+ int64_t asInt64;
+
+#if USE_JSVALUE64
+ JSCell *ptr;
+#endif
+
+#if IS_BIG_ENDIAN
+ struct {
+ int32_t tag;
+ int32_t payload;
+ } asBits;
+#else
+ struct {
+ int32_t payload;
+ int32_t tag;
+ } asBits;
+#endif
+
+ void* asPtr;
+ double asDouble;
+} EncodedJSValue;
+
+EncodedJSValue ValueUndefined = { TagValueUndefined };
+EncodedJSValue ValueTrue = { TagValueTrue };
+
+typedef void* JSContext;
+
+// Bun_FFI_PointerOffsetToArgumentsList is injected into the build
+// The value is generated in `make sizegen`
+// The value is 6.
+// On ARM64_32, the value is something else but it really doesn't matter for our case
+// However, I don't want this to subtly break amidst future upgrades to JavaScriptCore
+#define LOAD_ARGUMENTS_FROM_CALL_FRAME \
+ int64_t *argsPtr = (int64_t*)((size_t*)callFrame + Bun_FFI_PointerOffsetToArgumentsList)
+
+
+#ifdef IS_CALLBACK
+extern int64_t bun_call(JSContext, void* func, void* thisValue, size_t len, const EncodedJSValue args[], void* exception);
+JSContext cachedJSContext;
+void* cachedCallbackFunction;
+#endif
+
+static bool JSVALUE_IS_CELL(EncodedJSValue val) __attribute__((__always_inline__));
+static bool JSVALUE_IS_INT32(EncodedJSValue val) __attribute__((__always_inline__));
+static bool JSVALUE_IS_NUMBER(EncodedJSValue val) __attribute__((__always_inline__));
+
+static uint64_t JSVALUE_TO_UINT64(void* globalObject, EncodedJSValue value) __attribute__((__always_inline__));
+static int64_t JSVALUE_TO_INT64(EncodedJSValue value) __attribute__((__always_inline__));
+uint64_t JSVALUE_TO_UINT64_SLOW(void* globalObject, EncodedJSValue value);
+int64_t JSVALUE_TO_INT64_SLOW(EncodedJSValue value);
+
+EncodedJSValue UINT64_TO_JSVALUE_SLOW(void* globalObject, uint64_t val);
+EncodedJSValue INT64_TO_JSVALUE_SLOW(void* globalObject, int64_t val);
+static EncodedJSValue UINT64_TO_JSVALUE(void* globalObject, uint64_t val) __attribute__((__always_inline__));
+static EncodedJSValue INT64_TO_JSVALUE(void* globalObject, int64_t val) __attribute__((__always_inline__));
+
+
+static EncodedJSValue INT32_TO_JSVALUE(int32_t val) __attribute__((__always_inline__));
+static EncodedJSValue DOUBLE_TO_JSVALUE(double val) __attribute__((__always_inline__));
+static EncodedJSValue FLOAT_TO_JSVALUE(float val) __attribute__((__always_inline__));
+static EncodedJSValue BOOLEAN_TO_JSVALUE(bool val) __attribute__((__always_inline__));
+static EncodedJSValue PTR_TO_JSVALUE(void* ptr) __attribute__((__always_inline__));
+
+static void* JSVALUE_TO_PTR(EncodedJSValue val) __attribute__((__always_inline__));
+static int32_t JSVALUE_TO_INT32(EncodedJSValue val) __attribute__((__always_inline__));
+static float JSVALUE_TO_FLOAT(EncodedJSValue val) __attribute__((__always_inline__));
+static double JSVALUE_TO_DOUBLE(EncodedJSValue val) __attribute__((__always_inline__));
+static bool JSVALUE_TO_BOOL(EncodedJSValue val) __attribute__((__always_inline__));
+
+static bool JSVALUE_IS_CELL(EncodedJSValue val) {
+ return !(val.asInt64 & NotCellMask);
+}
+
+static bool JSVALUE_IS_INT32(EncodedJSValue val) {
+ return (val.asInt64 & NumberTag) == NumberTag;
+}
+
+static bool JSVALUE_IS_NUMBER(EncodedJSValue val) {
+ return val.asInt64 & NumberTag;
+}
+
+
+static void* JSVALUE_TO_PTR(EncodedJSValue val) {
+ // must be a double
+ return (void*)(val.asInt64 - DoubleEncodeOffset);
+}
+
+static EncodedJSValue PTR_TO_JSVALUE(void* ptr) {
+ EncodedJSValue val;
+ val.asInt64 = (int64_t)ptr + DoubleEncodeOffset;
+ return val;
+}
+
+static int32_t JSVALUE_TO_INT32(EncodedJSValue val) {
+ return val.asInt64;
+}
+
+static EncodedJSValue INT32_TO_JSVALUE(int32_t val) {
+ EncodedJSValue res;
+ res.asInt64 = NumberTag | (uint32_t)val;
+ return res;
+}
+
+
+static EncodedJSValue DOUBLE_TO_JSVALUE(double val) {
+ EncodedJSValue res;
+ res.asDouble = val;
+ res.asInt64 += DoubleEncodeOffset;
+ return res;
+}
+
+static EncodedJSValue FLOAT_TO_JSVALUE(float val) {
+ return DOUBLE_TO_JSVALUE((double)val);
+}
+
+static EncodedJSValue BOOLEAN_TO_JSVALUE(bool val) {
+ EncodedJSValue res;
+ res.asInt64 = val ? TagValueTrue : TagValueFalse;
+ return res;
+}
+
+
+static double JSVALUE_TO_DOUBLE(EncodedJSValue val) {
+ val.asInt64 -= DoubleEncodeOffset;
+ return val.asDouble;
+}
+
+static float JSVALUE_TO_FLOAT(EncodedJSValue val) {
+ return (float)JSVALUE_TO_DOUBLE(val);
+}
+
+static bool JSVALUE_TO_BOOL(EncodedJSValue val) {
+ return val.asInt64 == TagValueTrue;
+}
+
+
+static uint64_t JSVALUE_TO_UINT64(void* globalObject, EncodedJSValue value) {
+ if (JSVALUE_IS_INT32(value)) {
+ return (uint64_t)JSVALUE_TO_INT32(value);
+ }
+
+ if (JSVALUE_IS_NUMBER(value)) {
+ return (uint64_t)JSVALUE_TO_DOUBLE(value);
+ }
+
+ return JSVALUE_TO_UINT64_SLOW(globalObject, value);
+}
+static int64_t JSVALUE_TO_INT64(EncodedJSValue value) {
+ if (JSVALUE_IS_INT32(value)) {
+ return (int64_t)JSVALUE_TO_INT32(value);
+ }
+
+ if (JSVALUE_IS_NUMBER(value)) {
+ return (int64_t)JSVALUE_TO_DOUBLE(value);
+ }
+
+ return JSVALUE_TO_INT64_SLOW(value);
+}
+
+static EncodedJSValue UINT64_TO_JSVALUE(void* globalObject, uint64_t val) {
+ if (val < MAX_INT32) {
+ return INT32_TO_JSVALUE((int32_t)val);
+ }
+
+ if (val < MAX_INT52) {
+ return DOUBLE_TO_JSVALUE((double)val);
+ }
+
+ return UINT64_TO_JSVALUE_SLOW(globalObject, val);
+}
+
+static EncodedJSValue INT64_TO_JSVALUE(void* globalObject, int64_t val) {
+ if (val >= -MAX_INT32 && val <= MAX_INT32) {
+ return INT32_TO_JSVALUE((int32_t)val);
+ }
+
+ if (val >= -MAX_INT52 && val <= MAX_INT52) {
+ return DOUBLE_TO_JSVALUE((double)val);
+ }
+
+ return INT64_TO_JSVALUE_SLOW(globalObject, val);
+}
+
+#ifndef IS_CALLBACK
+void* JSFunctionCall(void* globalObject, void* callFrame);
+
+#endif
+
+
+// --- Generated Code ---
+/* --- The Function To Call */
+float not_a_callback(float arg0);
+
+
+/* ---- Your Wrapper Function ---- */
+void* JSFunctionCall(void* globalObject, void* callFrame) {
+ LOAD_ARGUMENTS_FROM_CALL_FRAME;
+ EncodedJSValue arg0;
+ arg0.asInt64 = *argsPtr;
+ float return_value = not_a_callback( JSVALUE_TO_FLOAT(arg0));
+
+ return FLOAT_TO_JSVALUE(return_value).asPtr;
+}
+
diff --git a/test/bun.js/ffi.test.js b/test/bun.js/ffi.test.js
new file mode 100644
index 000000000..db2cfb6d4
--- /dev/null
+++ b/test/bun.js/ffi.test.js
@@ -0,0 +1,543 @@
+// import { describe, it, expect } from "bun:test";
+// import { unsafe } from "bun";
+// //
+// import {
+// native,
+// viewSource,
+// dlopen,
+// CString,
+// ptr,
+// toBuffer,
+// toArrayBuffer,
+// FFIType,
+// callback,
+// CFunction,
+// } from "bun:ffi";
+
+// it("ffi print", async () => {
+// await Bun.write(
+// import.meta.dir + "/ffi.test.fixture.callback.c",
+// viewSource(
+// {
+// returns: "bool",
+// args: ["ptr"],
+// },
+// true
+// )
+// );
+// await Bun.write(
+// import.meta.dir + "/ffi.test.fixture.receiver.c",
+// viewSource(
+// {
+// not_a_callback: {
+// returns: "float",
+// args: ["float"],
+// },
+// },
+// false
+// )[0]
+// );
+// expect(
+// viewSource(
+// {
+// returns: "int8_t",
+// args: [],
+// },
+// true
+// ).length > 0
+// ).toBe(true);
+// expect(
+// viewSource(
+// {
+// a: {
+// returns: "int8_t",
+// args: [],
+// },
+// },
+// false
+// ).length > 0
+// ).toBe(true);
+// });
+
+// function getTypes(fast) {
+// const int64_t = fast ? "i64_fast" : "int64_t";
+// const uint64_t = fast ? "u64_fast" : "uint64_t";
+// return {
+// returns_true: {
+// returns: "bool",
+// args: [],
+// },
+// returns_false: {
+// returns: "bool",
+// args: [],
+// },
+// returns_42_char: {
+// returns: "char",
+// args: [],
+// },
+// returns_42_float: {
+// returns: "float",
+// args: [],
+// },
+// returns_42_double: {
+// returns: "double",
+// args: [],
+// },
+// returns_42_uint8_t: {
+// returns: "uint8_t",
+// args: [],
+// },
+// returns_neg_42_int8_t: {
+// returns: "int8_t",
+// args: [],
+// },
+// returns_42_uint16_t: {
+// returns: "uint16_t",
+// args: [],
+// },
+// returns_42_uint32_t: {
+// returns: "uint32_t",
+// args: [],
+// },
+// returns_42_uint64_t: {
+// returns: uint64_t,
+// args: [],
+// },
+// returns_neg_42_int16_t: {
+// returns: "int16_t",
+// args: [],
+// },
+// returns_neg_42_int32_t: {
+// returns: "int32_t",
+// args: [],
+// },
+// returns_neg_42_int64_t: {
+// returns: int64_t,
+// args: [],
+// },
+
+// identity_char: {
+// returns: "char",
+// args: ["char"],
+// },
+// identity_float: {
+// returns: "float",
+// args: ["float"],
+// },
+// identity_bool: {
+// returns: "bool",
+// args: ["bool"],
+// },
+// identity_double: {
+// returns: "double",
+// args: ["double"],
+// },
+// identity_int8_t: {
+// returns: "int8_t",
+// args: ["int8_t"],
+// },
+// identity_int16_t: {
+// returns: "int16_t",
+// args: ["int16_t"],
+// },
+// identity_int32_t: {
+// returns: "int32_t",
+// args: ["int32_t"],
+// },
+// identity_int64_t: {
+// returns: int64_t,
+// args: [int64_t],
+// },
+// identity_uint8_t: {
+// returns: "uint8_t",
+// args: ["uint8_t"],
+// },
+// identity_uint16_t: {
+// returns: "uint16_t",
+// args: ["uint16_t"],
+// },
+// identity_uint32_t: {
+// returns: "uint32_t",
+// args: ["uint32_t"],
+// },
+// identity_uint64_t: {
+// returns: uint64_t,
+// args: [uint64_t],
+// },
+
+// add_char: {
+// returns: "char",
+// args: ["char", "char"],
+// },
+// add_float: {
+// returns: "float",
+// args: ["float", "float"],
+// },
+// add_double: {
+// returns: "double",
+// args: ["double", "double"],
+// },
+// add_int8_t: {
+// returns: "int8_t",
+// args: ["int8_t", "int8_t"],
+// },
+// add_int16_t: {
+// returns: "int16_t",
+// args: ["int16_t", "int16_t"],
+// },
+// add_int32_t: {
+// returns: "int32_t",
+// args: ["int32_t", "int32_t"],
+// },
+// add_int64_t: {
+// returns: int64_t,
+// args: [int64_t, int64_t],
+// },
+// add_uint8_t: {
+// returns: "uint8_t",
+// args: ["uint8_t", "uint8_t"],
+// },
+// add_uint16_t: {
+// returns: "uint16_t",
+// args: ["uint16_t", "uint16_t"],
+// },
+// add_uint32_t: {
+// returns: "uint32_t",
+// args: ["uint32_t", "uint32_t"],
+// },
+
+// does_pointer_equal_42_as_int32_t: {
+// returns: "bool",
+// args: ["ptr"],
+// },
+
+// ptr_should_point_to_42_as_int32_t: {
+// returns: "ptr",
+// args: [],
+// },
+// identity_ptr: {
+// returns: "ptr",
+// args: ["ptr"],
+// },
+// add_uint64_t: {
+// returns: uint64_t,
+// args: [uint64_t, uint64_t],
+// },
+
+// cb_identity_true: {
+// returns: "bool",
+// args: ["ptr"],
+// },
+// cb_identity_false: {
+// returns: "bool",
+// args: ["ptr"],
+// },
+// cb_identity_42_char: {
+// returns: "char",
+// args: ["ptr"],
+// },
+// cb_identity_42_float: {
+// returns: "float",
+// args: ["ptr"],
+// },
+// cb_identity_42_double: {
+// returns: "double",
+// args: ["ptr"],
+// },
+// cb_identity_42_uint8_t: {
+// returns: "uint8_t",
+// args: ["ptr"],
+// },
+// cb_identity_neg_42_int8_t: {
+// returns: "int8_t",
+// args: ["ptr"],
+// },
+// cb_identity_42_uint16_t: {
+// returns: "uint16_t",
+// args: ["ptr"],
+// },
+// cb_identity_42_uint32_t: {
+// returns: "uint32_t",
+// args: ["ptr"],
+// },
+// cb_identity_42_uint64_t: {
+// returns: uint64_t,
+// args: ["ptr"],
+// },
+// cb_identity_neg_42_int16_t: {
+// returns: "int16_t",
+// args: ["ptr"],
+// },
+// cb_identity_neg_42_int32_t: {
+// returns: "int32_t",
+// args: ["ptr"],
+// },
+// cb_identity_neg_42_int64_t: {
+// returns: int64_t,
+// args: ["ptr"],
+// },
+
+// return_a_function_ptr_to_function_that_returns_true: {
+// returns: "ptr",
+// args: [],
+// },
+// };
+// }
+
+// function ffiRunner(types) {
+// const {
+// symbols: {
+// returns_true,
+// returns_false,
+// return_a_function_ptr_to_function_that_returns_true,
+// returns_42_char,
+// returns_42_float,
+// returns_42_double,
+// returns_42_uint8_t,
+// returns_neg_42_int8_t,
+// returns_42_uint16_t,
+// returns_42_uint32_t,
+// returns_42_uint64_t,
+// returns_neg_42_int16_t,
+// returns_neg_42_int32_t,
+// returns_neg_42_int64_t,
+// identity_char,
+// identity_float,
+// identity_bool,
+// identity_double,
+// identity_int8_t,
+// identity_int16_t,
+// identity_int32_t,
+// identity_int64_t,
+// identity_uint8_t,
+// identity_uint16_t,
+// identity_uint32_t,
+// identity_uint64_t,
+// add_char,
+// add_float,
+// add_double,
+// add_int8_t,
+// add_int16_t,
+// add_int32_t,
+// add_int64_t,
+// add_uint8_t,
+// add_uint16_t,
+// identity_ptr,
+// add_uint32_t,
+// add_uint64_t,
+// does_pointer_equal_42_as_int32_t,
+// ptr_should_point_to_42_as_int32_t,
+// cb_identity_true,
+// cb_identity_false,
+// cb_identity_42_char,
+// cb_identity_42_float,
+// cb_identity_42_double,
+// cb_identity_42_uint8_t,
+// cb_identity_neg_42_int8_t,
+// cb_identity_42_uint16_t,
+// cb_identity_42_uint32_t,
+// cb_identity_42_uint64_t,
+// cb_identity_neg_42_int16_t,
+// cb_identity_neg_42_int32_t,
+// cb_identity_neg_42_int64_t,
+// },
+// close,
+// } = dlopen("/tmp/bun-ffi-test.dylib", types);
+
+// expect(returns_true()).toBe(true);
+
+// expect(returns_false()).toBe(false);
+
+// expect(returns_42_char()).toBe(42);
+// console.log(
+// returns_42_uint64_t().valueOf(),
+// returns_42_uint64_t(),
+// returns_42_uint64_t().valueOf() === returns_42_uint64_t()
+// );
+// expect(returns_42_uint64_t().valueOf()).toBe(42);
+
+// expect(Math.fround(returns_42_float())).toBe(Math.fround(42.41999804973602));
+// expect(returns_42_double()).toBe(42.42);
+// expect(returns_42_uint8_t()).toBe(42);
+// expect(returns_neg_42_int8_t()).toBe(-42);
+// expect(returns_42_uint16_t()).toBe(42);
+// expect(returns_42_uint32_t()).toBe(42);
+// expect(returns_42_uint64_t()).toBe(42);
+// expect(returns_neg_42_int16_t()).toBe(-42);
+// expect(returns_neg_42_int32_t()).toBe(-42);
+// expect(identity_int32_t(10)).toBe(10);
+// expect(returns_neg_42_int64_t()).toBe(-42);
+
+// expect(identity_char(10)).toBe(10);
+
+// expect(identity_float(10.199999809265137)).toBe(10.199999809265137);
+
+// expect(identity_bool(true)).toBe(true);
+
+// expect(identity_bool(false)).toBe(false);
+// expect(identity_double(10.100000000000364)).toBe(10.100000000000364);
+
+// expect(identity_int8_t(10)).toBe(10);
+// expect(identity_int16_t(10)).toBe(10);
+// expect(identity_int64_t(10)).toBe(10);
+// expect(identity_uint8_t(10)).toBe(10);
+// expect(identity_uint16_t(10)).toBe(10);
+// expect(identity_uint32_t(10)).toBe(10);
+// expect(identity_uint64_t(10)).toBe(10);
+
+// var bigArray = new BigUint64Array(8);
+// new Uint8Array(bigArray.buffer).fill(255);
+// var bigIntArray = new BigInt64Array(bigArray.buffer);
+// expect(identity_uint64_t(bigArray[0])).toBe(bigArray[0]);
+// expect(identity_uint64_t(bigArray[0] - BigInt(1))).toBe(
+// bigArray[0] - BigInt(1)
+// );
+
+// expect(add_uint64_t(BigInt(-1) * bigArray[0], bigArray[0])).toBe(0);
+// expect(add_uint64_t(BigInt(-1) * bigArray[0] + BigInt(10), bigArray[0])).toBe(
+// 10
+// );
+// expect(identity_uint64_t(0)).toBe(0);
+// expect(identity_uint64_t(100)).toBe(100);
+// expect(identity_uint64_t(BigInt(100))).toBe(100);
+// expect(identity_int64_t(bigIntArray[0])).toBe(bigIntArray[0]);
+// expect(identity_int64_t(bigIntArray[0] - BigInt(1))).toBe(
+// bigIntArray[0] - BigInt(1)
+// );
+
+// expect(add_char(1, 1)).toBe(2);
+// expect(add_float(2.4, 2.8)).toBe(Math.fround(5.2));
+// expect(add_double(4.2, 0.1)).toBe(4.3);
+// expect(add_int8_t(1, 1)).toBe(2);
+// expect(add_int16_t(1, 1)).toBe(2);
+// expect(add_int32_t(1, 1)).toBe(2);
+// expect(add_int64_t(1, 1)).toBe(2);
+// expect(add_uint8_t(1, 1)).toBe(2);
+// expect(add_uint16_t(1, 1)).toBe(2);
+// expect(add_uint32_t(1, 1)).toBe(2);
+
+// const cptr = ptr_should_point_to_42_as_int32_t();
+// expect(cptr != 0).toBe(true);
+// expect(typeof cptr === "number").toBe(true);
+// expect(does_pointer_equal_42_as_int32_t(cptr)).toBe(true);
+// const buffer = toBuffer(cptr, 0, 4);
+// expect(buffer.readInt32(0)).toBe(42);
+// expect(new DataView(toArrayBuffer(cptr, 0, 4), 0, 4).getInt32(0, true)).toBe(
+// 42
+// );
+// expect(ptr(buffer)).toBe(cptr);
+// expect(new CString(cptr, 0, 1).toString()).toBe("*");
+// expect(identity_ptr(cptr)).toBe(cptr);
+// const second_ptr = ptr(new Buffer(8));
+// expect(identity_ptr(second_ptr)).toBe(second_ptr);
+
+// var myCFunction = new CFunction({
+// ptr: return_a_function_ptr_to_function_that_returns_true(),
+// returns: "bool",
+// });
+// expect(myCFunction()).toBe(true);
+
+// // function identityBool() {
+// // return true;
+// // }
+// // globalThis.identityBool = identityBool;
+
+// // const first = native.callback(
+// // {
+// // returns: "bool",
+// // },
+// // identityBool
+// // );
+// // expect(
+// // cb_identity_true()
+// // ).toBe(true);
+
+// // expect(cb_identity_true(first)).toBe(true);
+
+// // expect(
+// // cb_identity_false(
+// // callback(
+// // {
+// // returns: "bool",
+// // },
+// // () => false
+// // )
+// // )
+// // ).toBe(false);
+
+// // expect(
+// // cb_identity_42_char(
+// // callback(
+// // {
+// // returns: "char",
+// // },
+// // () => 42
+// // )
+// // )
+// // ).toBe(42);
+// // expect(
+// // cb_identity_42_uint8_t(
+// // callback(
+// // {
+// // returns: "uint8_t",
+// // },
+// // () => 42
+// // )
+// // )
+// // ).toBe(42);
+
+// // cb_identity_neg_42_int8_t(
+// // callback(
+// // {
+// // returns: "int8_t",
+// // },
+// // () => -42
+// // )
+// // ).toBe(-42);
+
+// // cb_identity_42_uint16_t(
+// // callback(
+// // {
+// // returns: "uint16_t",
+// // },
+// // () => 42
+// // )
+// // ).toBe(42);
+
+// // cb_identity_42_uint32_t(
+// // callback(
+// // {
+// // returns: "uint32_t",
+// // },
+// // () => 42
+// // )
+// // ).toBe(42);
+
+// // cb_identity_neg_42_int16_t(
+// // callback(
+// // {
+// // returns: "int16_t",
+// // },
+// // () => -42
+// // )
+// // ).toBe(-42);
+
+// // cb_identity_neg_42_int32_t(
+// // callback(
+// // {
+// // returns: "int32_t",
+// // },
+// // () => -42
+// // )
+// // ).toBe(-42);
+
+// close();
+// }
+
+// it("run ffi fast", () => {
+// ffiRunner(getTypes(true));
+// });
+
+// it("run ffi", () => {
+// ffiRunner(getTypes(false));
+// });
diff --git a/test/bun.js/fs-stream.js b/test/bun.js/fs-stream.js
new file mode 100644
index 000000000..4b71c95b7
--- /dev/null
+++ b/test/bun.js/fs-stream.js
@@ -0,0 +1,23 @@
+import { createReadStream, createWriteStream, readFileSync } from "fs";
+
+await new Promise((resolve, reject) => {
+ createReadStream("fs-stream.js")
+ .pipe(createWriteStream("/tmp/fs-stream.copy.js"))
+ .once("error", (err) => reject(err))
+ .once("finish", () => {
+ try {
+ const copied = readFileSync("/tmp/fs-stream.copy.js", "utf8");
+ const real = readFileSync("/tmp/fs-stream.js", "utf8");
+ if (copied !== real) {
+ reject(
+ new Error("fs-stream.js is not the same as fs-stream.copy.js")
+ );
+ return;
+ }
+
+ resolve(true);
+ } catch (err) {
+ reject(err);
+ }
+ });
+});
diff --git a/test/bun.js/fs.test.js b/test/bun.js/fs.test.js
new file mode 100644
index 000000000..79ac60eaa
--- /dev/null
+++ b/test/bun.js/fs.test.js
@@ -0,0 +1,244 @@
+import { gc } from "bun";
+import { describe, expect, it } from "bun:test";
+import {
+ closeSync,
+ existsSync,
+ mkdirSync,
+ openSync,
+ readdirSync,
+ readFile,
+ readFileSync,
+ readSync,
+ writeFileSync,
+ writeSync,
+} from "node:fs";
+
+const Buffer = globalThis.Buffer || Uint8Array;
+
+if (!import.meta.dir) {
+ import.meta.dir = ".";
+}
+
+describe("mkdirSync", () => {
+ it("should create a directory", () => {
+ const tempdir = `/tmp/fs.test.js/${Date.now()}/1234/hi`;
+ expect(existsSync(tempdir)).toBe(false);
+ expect(tempdir.includes(mkdirSync(tempdir, { recursive: true }))).toBe(
+ true
+ );
+ expect(existsSync(tempdir)).toBe(true);
+ });
+});
+
+it("readdirSync on import.meta.dir", () => {
+ const dirs = readdirSync(import.meta.dir);
+ expect(dirs.length > 0).toBe(true);
+ var match = false;
+ gc(true);
+ for (let i = 0; i < dirs.length; i++) {
+ if (dirs[i] === import.meta.file) {
+ match = true;
+ }
+ }
+ gc(true);
+ expect(match).toBe(true);
+});
+
+it("readdirSync on import.meta.dir with trailing slash", () => {
+ const dirs = readdirSync(import.meta.dir + "/");
+ expect(dirs.length > 0).toBe(true);
+ // this file should exist in it
+ var match = false;
+ for (let i = 0; i < dirs.length; i++) {
+ if (dirs[i] === import.meta.file) {
+ match = true;
+ }
+ }
+ expect(match).toBe(true);
+});
+
+it("readdirSync works on empty directories", () => {
+ const path = `/tmp/fs-test-empty-dir-${(
+ Math.random() * 100000 +
+ 100
+ ).toString(32)}`;
+ mkdirSync(path, { recursive: true });
+ expect(readdirSync(path).length).toBe(0);
+});
+
+it("readdirSync works on directories with under 32 files", () => {
+ const path = `/tmp/fs-test-one-dir-${(Math.random() * 100000 + 100).toString(
+ 32
+ )}`;
+ mkdirSync(path, { recursive: true });
+ writeFileSync(`${path}/a`, "a");
+ const results = readdirSync(path);
+ expect(results.length).toBe(1);
+ expect(results[0]).toBe("a");
+});
+
+it("readdirSync throws when given a file path", () => {
+ try {
+ readdirSync(import.meta.path);
+ throw new Error("should not get here");
+ } catch (exception) {
+ expect(exception.name).toBe("ENOTDIR");
+ }
+});
+
+it("readdirSync throws when given a path that doesn't exist", () => {
+ try {
+ readdirSync(import.meta.path + "/does-not-exist/really");
+ throw new Error("should not get here");
+ } catch (exception) {
+ expect(exception.name).toBe("ENOTDIR");
+ }
+});
+
+it("readdirSync throws when given a file path with trailing slash", () => {
+ try {
+ readdirSync(import.meta.path + "/");
+ throw new Error("should not get here");
+ } catch (exception) {
+ expect(exception.name).toBe("ENOTDIR");
+ }
+});
+
+describe("readSync", () => {
+ const firstFourBytes = new Uint32Array(
+ new TextEncoder().encode("File").buffer
+ )[0];
+ it("works with a position set to 0", () => {
+ const fd = openSync(import.meta.dir + "/readFileSync.txt", "r");
+ const four = new Uint8Array(4);
+
+ {
+ const count = readSync(fd, four, 0, 4, 0);
+ const u32 = new Uint32Array(four.buffer)[0];
+ expect(u32).toBe(firstFourBytes);
+ expect(count).toBe(4);
+ }
+ closeSync(fd);
+ });
+ it("works without position set", () => {
+ const fd = openSync(import.meta.dir + "/readFileSync.txt", "r");
+ const four = new Uint8Array(4);
+ {
+ const count = readSync(fd, four);
+ const u32 = new Uint32Array(four.buffer)[0];
+ expect(u32).toBe(firstFourBytes);
+ expect(count).toBe(4);
+ }
+ closeSync(fd);
+ });
+});
+
+describe("writeSync", () => {
+ it("works with a position set to 0", () => {
+ const fd = openSync(import.meta.dir + "/writeFileSync.txt", "w+");
+ const four = new Uint8Array(4);
+
+ {
+ const count = writeSync(fd, new TextEncoder().encode("File"), 0, 4, 0);
+ expect(count).toBe(4);
+ }
+ closeSync(fd);
+ });
+ it("works without position set", () => {
+ const fd = openSync(import.meta.dir + "/writeFileSync.txt", "w+");
+ const four = new Uint8Array(4);
+ {
+ const count = writeSync(fd, new TextEncoder().encode("File"));
+ expect(count).toBe(4);
+ }
+ closeSync(fd);
+ });
+});
+
+describe("readFileSync", () => {
+ it("works", () => {
+ const text = readFileSync(import.meta.dir + "/readFileSync.txt", "utf8");
+ expect(text).toBe("File read successfully");
+ });
+
+ it("works with a file url", () => {
+ const text = readFileSync(
+ new URL("file://" + import.meta.dir + "/readFileSync.txt"),
+ "utf8"
+ );
+ expect(text).toBe("File read successfully");
+ });
+
+ it("returning Buffer works", () => {
+ const text = readFileSync(import.meta.dir + "/readFileSync.txt");
+ const encoded = [
+ 70, 105, 108, 101, 32, 114, 101, 97, 100, 32, 115, 117, 99, 99, 101, 115,
+ 115, 102, 117, 108, 108, 121,
+ ];
+ for (let i = 0; i < encoded.length; i++) {
+ expect(text[i]).toBe(encoded[i]);
+ }
+ });
+});
+
+describe("readFile", () => {
+ it("works", async () => {
+ await new Promise((resolve, reject) => {
+ readFile(import.meta.dir + "/readFileSync.txt", "utf8", (err, text) => {
+ expect(text).toBe("File read successfully");
+ resolve(true);
+ });
+ });
+ });
+
+ it("returning Buffer works", async () => {
+ await new Promise((resolve, reject) => {
+ readFile(import.meta.dir + "/readFileSync.txt", (err, text) => {
+ const encoded = [
+ 70, 105, 108, 101, 32, 114, 101, 97, 100, 32, 115, 117, 99, 99, 101,
+ 115, 115, 102, 117, 108, 108, 121,
+ ];
+ for (let i = 0; i < encoded.length; i++) {
+ expect(text[i]).toBe(encoded[i]);
+ }
+ resolve(true);
+ });
+ });
+ });
+});
+
+describe("writeFileSync", () => {
+ it("works", () => {
+ const path = `/tmp/${Date.now()}.writeFileSync.txt`;
+ writeFileSync(path, "File written successfully", "utf8");
+
+ expect(readFileSync(path, "utf8")).toBe("File written successfully");
+ });
+
+ it("returning Buffer works", () => {
+ const buffer = new Buffer([
+ 70, 105, 108, 101, 32, 119, 114, 105, 116, 116, 101, 110, 32, 115, 117,
+ 99, 99, 101, 115, 115, 102, 117, 108, 108, 121,
+ ]);
+ const path = `/tmp/${Date.now()}.blob.writeFileSync.txt`;
+ writeFileSync(path, buffer);
+ const out = readFileSync(path);
+
+ for (let i = 0; i < buffer.length; i++) {
+ expect(buffer[i]).toBe(out[i]);
+ }
+ });
+ it("returning ArrayBuffer works", () => {
+ const buffer = new Buffer([
+ 70, 105, 108, 101, 32, 119, 114, 105, 116, 116, 101, 110, 32, 115, 117,
+ 99, 99, 101, 115, 115, 102, 117, 108, 108, 121,
+ ]);
+ const path = `/tmp/${Date.now()}.blob2.writeFileSync.txt`;
+ writeFileSync(path, buffer);
+ const out = readFileSync(path);
+
+ for (let i = 0; i < buffer.length; i++) {
+ expect(buffer[i]).toBe(out[i]);
+ }
+ });
+});
diff --git a/test/bun.js/gc.js b/test/bun.js/gc.js
new file mode 100644
index 000000000..9212e8b76
--- /dev/null
+++ b/test/bun.js/gc.js
@@ -0,0 +1,15 @@
+export function gc() {
+ // console.trace("GC");
+ Bun.gc(true);
+}
+
+// we must ensure that finalizers are run
+// so that the reference-counting logic is exercised
+export function gcTick(trace = false) {
+ trace && console.trace("");
+ // console.trace("hello");
+ gc();
+ return new Promise((resolve) => {
+ setTimeout(resolve, 0);
+ });
+}
diff --git a/test/bun.js/globals.test.js b/test/bun.js/globals.test.js
new file mode 100644
index 000000000..b498e0e8e
--- /dev/null
+++ b/test/bun.js/globals.test.js
@@ -0,0 +1,39 @@
+import { it, describe, expect } from "bun:test";
+
+it("extendable", () => {
+ const classes = [
+ Blob,
+ TextDecoder,
+ TextEncoder,
+ Request,
+ Response,
+ Headers,
+ HTMLRewriter,
+ Bun.Transpiler,
+ ];
+ // None of these should error
+ for (let Class of classes) {
+ var Foo = class extends Class {};
+ var bar = new Foo();
+ expect(bar instanceof Class).toBe(true);
+ expect(!!Class.prototype).toBe(true);
+ expect(typeof Class.prototype).toBe("object");
+ }
+ expect(true).toBe(true);
+});
+
+it("name", () => {
+ const classes = [
+ ["Blob", Blob],
+ ["TextDecoder", TextDecoder],
+ ["TextEncoder", TextEncoder],
+ ["Request", Request],
+ ["Response", Response],
+ ["Headers", Headers],
+ ["HTMLRewriter", HTMLRewriter],
+ ["Transpiler", Bun.Transpiler],
+ ];
+ for (let [name, Class] of classes) {
+ expect(Class.name).toBe(name);
+ }
+});
diff --git a/test/bun.js/hash.test.js b/test/bun.js/hash.test.js
new file mode 100644
index 000000000..71ad5a229
--- /dev/null
+++ b/test/bun.js/hash.test.js
@@ -0,0 +1,36 @@
+import fs from "fs";
+import { it, expect } from "bun:test";
+import path from "path";
+
+it(`Bun.hash()`, () => {
+ Bun.hash("hello world");
+ Bun.hash(new TextEncoder().encode("hello world"));
+});
+it(`Bun.hash.wyhash()`, () => {
+ Bun.hash.wyhash("hello world");
+ Bun.hash.wyhash(new TextEncoder().encode("hello world"));
+});
+it(`Bun.hash.adler32()`, () => {
+ Bun.hash.adler32("hello world");
+ Bun.hash.adler32(new TextEncoder().encode("hello world"));
+});
+it(`Bun.hash.crc32()`, () => {
+ Bun.hash.crc32("hello world");
+ Bun.hash.crc32(new TextEncoder().encode("hello world"));
+});
+it(`Bun.hash.cityHash32()`, () => {
+ Bun.hash.cityHash32("hello world");
+ Bun.hash.cityHash32(new TextEncoder().encode("hello world"));
+});
+it(`Bun.hash.cityHash64()`, () => {
+ Bun.hash.cityHash64("hello world");
+ Bun.hash.cityHash64(new TextEncoder().encode("hello world"));
+});
+it(`Bun.hash.murmur32v3()`, () => {
+ Bun.hash.murmur32v3("hello world");
+ Bun.hash.murmur32v3(new TextEncoder().encode("hello world"));
+});
+it(`Bun.hash.murmur64v2()`, () => {
+ Bun.hash.murmur64v2("hello world");
+ Bun.hash.murmur64v2(new TextEncoder().encode("hello world"));
+});
diff --git a/test/bun.js/html-rewriter.test.js b/test/bun.js/html-rewriter.test.js
new file mode 100644
index 000000000..29b765c2f
--- /dev/null
+++ b/test/bun.js/html-rewriter.test.js
@@ -0,0 +1,293 @@
+import { describe, it, expect } from "bun:test";
+import { gcTick } from "./gc";
+
+var setTimeoutAsync = (fn, delay) => {
+ return new Promise((resolve, reject) => {
+ setTimeout(() => {
+ try {
+ resolve(fn());
+ } catch (e) {
+ reject(e);
+ }
+ }, delay);
+ });
+};
+
+describe("HTMLRewriter", () => {
+ it("HTMLRewriter: async replacement", async () => {
+ await gcTick();
+ const res = new HTMLRewriter()
+ .on("div", {
+ async element(element) {
+ await setTimeoutAsync(() => {
+ element.setInnerContent("<span>replace</span>", { html: true });
+ }, 5);
+ },
+ })
+ .transform(new Response("<div>example.com</div>"));
+ await gcTick();
+ expect(await res.text()).toBe("<div><span>replace</span></div>");
+ await gcTick();
+ });
+
+ it("supports element handlers", async () => {
+ var rewriter = new HTMLRewriter();
+ rewriter.on("div", {
+ element(element) {
+ element.setInnerContent("<blink>it worked!</blink>", { html: true });
+ },
+ });
+ var input = new Response("<div>hello</div>");
+ var output = rewriter.transform(input);
+ expect(await output.text()).toBe("<div><blink>it worked!</blink></div>");
+ });
+
+ it("(from file) supports element handlers", async () => {
+ var rewriter = new HTMLRewriter();
+ rewriter.on("div", {
+ element(element) {
+ element.setInnerContent("<blink>it worked!</blink>", { html: true });
+ },
+ });
+ await Bun.write("/tmp/html-rewriter.txt.js", "<div>hello</div>");
+ var input = new Response(Bun.file("/tmp/html-rewriter.txt.js"));
+ var output = rewriter.transform(input);
+ expect(await output.text()).toBe("<div><blink>it worked!</blink></div>");
+ });
+
+ it("supports attribute iterator", async () => {
+ var rewriter = new HTMLRewriter();
+ var expected = [
+ ["first", ""],
+ ["second", "alrihgt"],
+ ["third", "123"],
+ ["fourth", "5"],
+ ["fifth", "helloooo"],
+ ];
+ rewriter.on("div", {
+ element(element2) {
+ for (let attr of element2.attributes) {
+ const stack = expected.shift();
+ expect(stack[0]).toBe(attr[0]);
+ expect(stack[1]).toBe(attr[1]);
+ }
+ },
+ });
+ var input = new Response(
+ '<div first second="alrihgt" third="123" fourth=5 fifth=helloooo>hello</div>'
+ );
+ var output = rewriter.transform(input);
+ expect(await output.text()).toBe(
+ '<div first second="alrihgt" third="123" fourth=5 fifth=helloooo>hello</div>'
+ );
+ expect(expected.length).toBe(0);
+ });
+
+ it("handles element specific mutations", async () => {
+ // prepend/append
+ let res = new HTMLRewriter()
+ .on("p", {
+ element(element) {
+ element.prepend("<span>prepend</span>");
+ element.prepend("<span>prepend html</span>", { html: true });
+ element.append("<span>append</span>");
+ element.append("<span>append html</span>", { html: true });
+ },
+ })
+ .transform(new Response("<p>test</p>"));
+ expect(await res.text()).toBe(
+ [
+ "<p>",
+ "<span>prepend html</span>",
+ "&lt;span&gt;prepend&lt;/span&gt;",
+ "test",
+ "&lt;span&gt;append&lt;/span&gt;",
+ "<span>append html</span>",
+ "</p>",
+ ].join("")
+ );
+
+ // setInnerContent
+ res = new HTMLRewriter()
+ .on("p", {
+ element(element) {
+ element.setInnerContent("<span>replace</span>");
+ },
+ })
+ .transform(new Response("<p>test</p>"));
+ expect(await res.text()).toBe("<p>&lt;span&gt;replace&lt;/span&gt;</p>");
+ res = new HTMLRewriter()
+ .on("p", {
+ element(element) {
+ element.setInnerContent("<span>replace</span>", { html: true });
+ },
+ })
+ .transform(new Response("<p>test</p>"));
+ expect(await res.text()).toBe("<p><span>replace</span></p>");
+
+ // removeAndKeepContent
+ res = new HTMLRewriter()
+ .on("p", {
+ element(element) {
+ element.removeAndKeepContent();
+ },
+ })
+ .transform(new Response("<p>test</p>"));
+ expect(await res.text()).toBe("test");
+ });
+
+ it("handles element class properties", async () => {
+ class Handler {
+ constructor(content) {
+ this.content = content;
+ }
+
+ // noinspection JSUnusedGlobalSymbols
+ element(element) {
+ element.setInnerContent(this.content);
+ }
+ }
+ const res = new HTMLRewriter()
+ .on("p", new Handler("new"))
+ .transform(new Response("<p>test</p>"));
+ expect(await res.text()).toBe("<p>new</p>");
+ });
+
+ const commentsMutationsInput = "<p><!--test--></p>";
+ const commentsMutationsExpected = {
+ beforeAfter: [
+ "<p>",
+ "&lt;span&gt;before&lt;/span&gt;",
+ "<span>before html</span>",
+ "<!--test-->",
+ "<span>after html</span>",
+ "&lt;span&gt;after&lt;/span&gt;",
+ "</p>",
+ ].join(""),
+ replace: "<p>&lt;span&gt;replace&lt;/span&gt;</p>",
+ replaceHtml: "<p><span>replace</span></p>",
+ remove: "<p></p>",
+ };
+
+ const commentPropertiesMacro = async (func) => {
+ const res = func(new HTMLRewriter(), (comment) => {
+ expect(comment.removed).toBe(false);
+ expect(comment.text).toBe("test");
+ comment.text = "new";
+ expect(comment.text).toBe("new");
+ }).transform(new Response("<p><!--test--></p>"));
+ expect(await res.text()).toBe("<p><!--new--></p>");
+ };
+
+ it("HTMLRewriter: handles comment properties", () =>
+ commentPropertiesMacro((rw, comments) => {
+ rw.on("p", { comments });
+ return rw;
+ }));
+
+ it("selector tests", async () => {
+ const checkSelector = async (selector, input, expected) => {
+ const res = new HTMLRewriter()
+ .on(selector, {
+ element(element) {
+ element.setInnerContent("new");
+ },
+ })
+ .transform(new Response(input));
+ expect(await res.text()).toBe(expected);
+ };
+
+ await checkSelector("*", "<h1>1</h1><p>2</p>", "<h1>new</h1><p>new</p>");
+ await checkSelector("p", "<h1>1</h1><p>2</p>", "<h1>1</h1><p>new</p>");
+ await checkSelector(
+ "p:nth-child(2)",
+ "<div><p>1</p><p>2</p><p>3</p></div>",
+ "<div><p>1</p><p>new</p><p>3</p></div>"
+ );
+ await checkSelector(
+ "p:first-child",
+ "<div><p>1</p><p>2</p><p>3</p></div>",
+ "<div><p>new</p><p>2</p><p>3</p></div>"
+ );
+ await checkSelector(
+ "p:nth-of-type(2)",
+ "<div><p>1</p><h1>2</h1><p>3</p><h1>4</h1><p>5</p></div>",
+ "<div><p>1</p><h1>2</h1><p>new</p><h1>4</h1><p>5</p></div>"
+ );
+ await checkSelector(
+ "p:first-of-type",
+ "<div><h1>1</h1><p>2</p><p>3</p></div>",
+ "<div><h1>1</h1><p>new</p><p>3</p></div>"
+ );
+ await checkSelector(
+ "p:not(:first-child)",
+ "<div><p>1</p><p>2</p><p>3</p></div>",
+ "<div><p>1</p><p>new</p><p>new</p></div>"
+ );
+ await checkSelector(
+ "p.red",
+ '<p class="red">1</p><p>2</p>',
+ '<p class="red">new</p><p>2</p>'
+ );
+ await checkSelector(
+ "h1#header",
+ '<h1 id="header">1</h1><h1>2</h1>',
+ '<h1 id="header">new</h1><h1>2</h1>'
+ );
+ await checkSelector(
+ "p[data-test]",
+ "<p data-test>1</p><p>2</p>",
+ "<p data-test>new</p><p>2</p>"
+ );
+ await checkSelector(
+ 'p[data-test="one"]',
+ '<p data-test="one">1</p><p data-test="two">2</p>',
+ '<p data-test="one">new</p><p data-test="two">2</p>'
+ );
+ await checkSelector(
+ 'p[data-test="one" i]',
+ '<p data-test="one">1</p><p data-test="OnE">2</p><p data-test="two">3</p>',
+ '<p data-test="one">new</p><p data-test="OnE">new</p><p data-test="two">3</p>'
+ );
+ await checkSelector(
+ 'p[data-test="one" s]',
+ '<p data-test="one">1</p><p data-test="OnE">2</p><p data-test="two">3</p>',
+ '<p data-test="one">new</p><p data-test="OnE">2</p><p data-test="two">3</p>'
+ );
+ await checkSelector(
+ 'p[data-test~="two"]',
+ '<p data-test="one two three">1</p><p data-test="one two">2</p><p data-test="one">3</p>',
+ '<p data-test="one two three">new</p><p data-test="one two">new</p><p data-test="one">3</p>'
+ );
+ await checkSelector(
+ 'p[data-test^="a"]',
+ '<p data-test="a1">1</p><p data-test="a2">2</p><p data-test="b1">3</p>',
+ '<p data-test="a1">new</p><p data-test="a2">new</p><p data-test="b1">3</p>'
+ );
+ await checkSelector(
+ 'p[data-test$="1"]',
+ '<p data-test="a1">1</p><p data-test="a2">2</p><p data-test="b1">3</p>',
+ '<p data-test="a1">new</p><p data-test="a2">2</p><p data-test="b1">new</p>'
+ );
+ await checkSelector(
+ 'p[data-test*="b"]',
+ '<p data-test="abc">1</p><p data-test="ab">2</p><p data-test="a">3</p>',
+ '<p data-test="abc">new</p><p data-test="ab">new</p><p data-test="a">3</p>'
+ );
+ await checkSelector(
+ 'p[data-test|="a"]',
+ '<p data-test="a">1</p><p data-test="a-1">2</p><p data-test="a2">3</p>',
+ '<p data-test="a">new</p><p data-test="a-1">new</p><p data-test="a2">3</p>'
+ );
+ await checkSelector(
+ "div span",
+ "<div><h1><span>1</span></h1><span>2</span><b>3</b></div>",
+ "<div><h1><span>new</span></h1><span>new</span><b>3</b></div>"
+ );
+ await checkSelector(
+ "div > span",
+ "<div><h1><span>1</span></h1><span>2</span><b>3</b></div>",
+ "<div><h1><span>1</span></h1><span>new</span><b>3</b></div>"
+ );
+ });
+});
diff --git a/test/bun.js/import-meta.test.js b/test/bun.js/import-meta.test.js
new file mode 100644
index 000000000..0e2faa903
--- /dev/null
+++ b/test/bun.js/import-meta.test.js
@@ -0,0 +1,33 @@
+import { it, expect } from "bun:test";
+import * as Module from "node:module";
+import sync from "./require-json.json";
+
+const { path, dir } = import.meta;
+
+it("import.meta.resolveSync", () => {
+ expect(
+ import.meta.resolveSync("./" + import.meta.file, import.meta.path)
+ ).toBe(path);
+ const require = Module.createRequire(import.meta.path);
+ expect(require.resolve(import.meta.path)).toBe(path);
+ expect(require.resolve("./" + import.meta.file)).toBe(path);
+
+ // check it works with URL objects
+ expect(
+ Module.createRequire(new URL(import.meta.url)).resolve(import.meta.path)
+ ).toBe(import.meta.path);
+});
+
+it("import.meta.require", () => {
+ expect(import.meta.require("./require-json.json").hello).toBe(sync.hello);
+ const require = Module.createRequire(import.meta.path);
+ expect(require("./require-json.json").hello).toBe(sync.hello);
+});
+
+it("import.meta.dir", () => {
+ expect(dir.endsWith("/bun/test/bun.js")).toBe(true);
+});
+
+it("import.meta.path", () => {
+ expect(path.endsWith("/bun/test/bun.js/import-meta.test.js")).toBe(true);
+});
diff --git a/test/bun.js/inline.macro.js b/test/bun.js/inline.macro.js
new file mode 100644
index 000000000..ff0292d0a
--- /dev/null
+++ b/test/bun.js/inline.macro.js
@@ -0,0 +1,3 @@
+export function whatDidIPass(expr, ctx) {
+ return ctx;
+}
diff --git a/test/bun.js/inspect.test.js b/test/bun.js/inspect.test.js
new file mode 100644
index 000000000..bf5021c33
--- /dev/null
+++ b/test/bun.js/inspect.test.js
@@ -0,0 +1,96 @@
+import { it, expect } from "bun:test";
+
+it("jsx with two elements", () => {
+ const input = Bun.inspect(
+ <div hello="quoted">
+ <input type="text" value={"123"} />
+ string inside child
+ </div>
+ );
+
+ const output = `<div hello="quoted">
+ <input type="text" value="123" />
+ string inside child
+</div>`;
+
+ expect(input).toBe(output);
+});
+
+const Foo = () => <div hello="quoted">foo</div>;
+
+it("jsx with anon component", () => {
+ const input = Bun.inspect(<Foo />);
+
+ const output = `<NoName />`;
+
+ expect(input).toBe(output);
+});
+
+it("jsx with fragment", () => {
+ const input = Bun.inspect(<>foo bar</>);
+
+ const output = `<>foo bar</>`;
+
+ expect(input).toBe(output);
+});
+
+it("inspect", () => {
+ expect(Bun.inspect(new TypeError("what")).includes("TypeError: what")).toBe(
+ true
+ );
+ expect("hi").toBe("hi");
+ expect(Bun.inspect(1)).toBe("1");
+ expect(Bun.inspect(1, "hi")).toBe("1 hi");
+ expect(Bun.inspect([])).toBe("[]");
+ expect(Bun.inspect({})).toBe("{ }");
+ expect(Bun.inspect({ hello: 1 })).toBe("{ hello: 1 }");
+ expect(Bun.inspect({ hello: 1, there: 2 })).toBe("{ hello: 1, there: 2 }");
+ expect(Bun.inspect({ hello: "1", there: 2 })).toBe(
+ '{ hello: "1", there: 2 }'
+ );
+ expect(Bun.inspect({ 'hello-"there': "1", there: 2 })).toBe(
+ '{ "hello-\\"there": "1", there: 2 }'
+ );
+ var str = "123";
+ while (str.length < 4096) {
+ str += "123";
+ }
+ expect(Bun.inspect(str)).toBe(str);
+ // expect(Bun.inspect(new Headers())).toBe("Headers (0 KB) {}");
+ expect(Bun.inspect(new Response()).length > 0).toBe(true);
+ // expect(
+ // JSON.stringify(
+ // new Headers({
+ // hi: "ok",
+ // })
+ // )
+ // ).toBe('{"hi":"ok"}');
+ expect(Bun.inspect(new Set())).toBe("Set {}");
+ expect(Bun.inspect(new Map())).toBe("Map {}");
+ expect(Bun.inspect(new Map([["foo", "bar"]]))).toBe(
+ 'Map(1) {\n "foo": "bar",\n}'
+ );
+ expect(Bun.inspect(new Set(["bar"]))).toBe('Set(1) {\n "bar",\n}');
+ expect(Bun.inspect(<div>foo</div>)).toBe("<div>foo</div>");
+ expect(Bun.inspect(<div hello>foo</div>)).toBe("<div hello=true>foo</div>");
+ expect(Bun.inspect(<div hello={1}>foo</div>)).toBe("<div hello=1>foo</div>");
+ expect(Bun.inspect(<div hello={123}>hi</div>)).toBe(
+ "<div hello=123>hi</div>"
+ );
+ expect(Bun.inspect(<div hello="quoted">quoted</div>)).toBe(
+ '<div hello="quoted">quoted</div>'
+ );
+ expect(
+ Bun.inspect(
+ <div hello="quoted">
+ <input type="text" value={"123"} />
+ </div>
+ )
+ ).toBe(
+ `
+<div hello="quoted">
+ <input type="text" value="123" />
+</div>`.trim()
+ );
+ expect(Bun.inspect(BigInt(32))).toBe("32n");
+});
diff --git a/test/bun.js/macro-check.js b/test/bun.js/macro-check.js
new file mode 100644
index 000000000..0f494a4e7
--- /dev/null
+++ b/test/bun.js/macro-check.js
@@ -0,0 +1,7 @@
+export function keepSecondArgument(bacon1234) {
+ return bacon1234.arguments[1];
+}
+
+export function bacon(heloooo) {
+ return heloooo.arguments[1];
+}
diff --git a/test/bun.js/microtask.test.js b/test/bun.js/microtask.test.js
new file mode 100644
index 000000000..18956b1e5
--- /dev/null
+++ b/test/bun.js/microtask.test.js
@@ -0,0 +1,80 @@
+import { it } from "bun:test";
+
+it("queueMicrotask", async () => {
+ // You can verify this test is correct by copy pasting this into a browser's console and checking it doesn't throw an error.
+ var run = 0;
+
+ await new Promise((resolve, reject) => {
+ queueMicrotask(() => {
+ if (run++ != 0) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ queueMicrotask(() => {
+ if (run++ != 3) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ });
+ });
+ queueMicrotask(() => {
+ if (run++ != 1) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ queueMicrotask(() => {
+ if (run++ != 4) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+
+ queueMicrotask(() => {
+ if (run++ != 6) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ });
+ });
+ });
+ queueMicrotask(() => {
+ if (run++ != 2) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ queueMicrotask(() => {
+ if (run++ != 5) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+
+ queueMicrotask(() => {
+ if (run++ != 7) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ resolve(true);
+ });
+ });
+ });
+ });
+
+ {
+ var passed = false;
+ try {
+ queueMicrotask(1234);
+ } catch (exception) {
+ passed = exception instanceof TypeError;
+ }
+
+ if (!passed)
+ throw new Error(
+ "queueMicrotask should throw a TypeError if the argument is not a function"
+ );
+ }
+
+ {
+ var passed = false;
+ try {
+ queueMicrotask();
+ } catch (exception) {
+ passed = exception instanceof TypeError;
+ }
+
+ if (!passed)
+ throw new Error(
+ "queueMicrotask should throw a TypeError if the argument is empty"
+ );
+ }
+});
diff --git a/test/bun.js/mmap.test.js b/test/bun.js/mmap.test.js
new file mode 100644
index 000000000..2b15a4000
--- /dev/null
+++ b/test/bun.js/mmap.test.js
@@ -0,0 +1,69 @@
+import { describe, it, expect } from "bun:test";
+import { gcTick } from "./gc";
+
+describe("Bun.mmap", async () => {
+ await gcTick();
+ const path = `/tmp/bun-mmap-test_${Math.random()}.txt`;
+ await gcTick();
+ await Bun.write(path, "hello");
+ await gcTick();
+
+ it("mmap finalizer", async () => {
+ let map = Bun.mmap(path);
+ await gcTick();
+ const map2 = Bun.mmap(path);
+
+ map = null;
+ await gcTick();
+ });
+
+ it("mmap passed to other syscalls", async () => {
+ const map = Bun.mmap(path);
+ await gcTick();
+ await Bun.write(path + "1", map);
+ await gcTick();
+ const text = await (await Bun.file(path + "1")).text();
+ await gcTick();
+
+ expect(text).toBe(new TextDecoder().decode(map));
+ });
+
+ it("mmap sync", async () => {
+ const map = Bun.mmap(path);
+ await gcTick();
+ const map2 = Bun.mmap(path);
+ await gcTick();
+
+ const old = map[0];
+ await gcTick();
+ map[0] = 0;
+ await gcTick();
+ expect(map2[0]).toBe(0);
+
+ map2[0] = old;
+ await gcTick();
+ expect(map[0]).toBe(old);
+ await gcTick();
+ await Bun.write(path, "olleh");
+ await gcTick();
+ expect(new TextDecoder().decode(map)).toBe("olleh");
+ await gcTick();
+ });
+
+ it("mmap private", async () => {
+ await gcTick();
+ const map = Bun.mmap(path, { shared: true });
+ await gcTick();
+ const map2 = Bun.mmap(path, { shared: false });
+ await gcTick();
+ const old = map[0];
+
+ await gcTick();
+ map2[0] = 0;
+ await gcTick();
+ expect(map2[0]).toBe(0);
+ await gcTick();
+ expect(map[0]).toBe(old);
+ await gcTick();
+ });
+});
diff --git a/test/bun.js/node-builtins.test.js b/test/bun.js/node-builtins.test.js
new file mode 100644
index 000000000..df31c64fc
--- /dev/null
+++ b/test/bun.js/node-builtins.test.js
@@ -0,0 +1,16 @@
+import { describe, it, expect } from "bun:test";
+
+import { EventEmitter } from "events";
+
+describe("EventEmitter", () => {
+ it("should emit events", () => {
+ const emitter = new EventEmitter();
+ var called = false;
+ const listener = () => {
+ called = true;
+ };
+ emitter.on("test", listener);
+ emitter.emit("test");
+ expect(called).toBe(true);
+ });
+});
diff --git a/test/bun.js/path.test.js b/test/bun.js/path.test.js
new file mode 100644
index 000000000..997368150
--- /dev/null
+++ b/test/bun.js/path.test.js
@@ -0,0 +1,457 @@
+const { file } = import.meta;
+
+import { describe, it, expect } from "bun:test";
+import * as path from "node:path";
+import assert from "assert";
+
+const strictEqual = (...args) => {
+ assert.strictEqual(...args);
+ expect(true).toBe(true);
+};
+
+it("path.basename", () => {
+ strictEqual(path.basename(file), "path.test.js");
+ strictEqual(path.basename(file, ".js"), "path.test");
+ strictEqual(path.basename(".js", ".js"), "");
+ strictEqual(path.basename(""), "");
+ strictEqual(path.basename("/dir/basename.ext"), "basename.ext");
+ strictEqual(path.basename("/basename.ext"), "basename.ext");
+ strictEqual(path.basename("basename.ext"), "basename.ext");
+ strictEqual(path.basename("basename.ext/"), "basename.ext");
+ strictEqual(path.basename("basename.ext//"), "basename.ext");
+ strictEqual(path.basename("aaa/bbb", "/bbb"), "bbb");
+ strictEqual(path.basename("aaa/bbb", "a/bbb"), "bbb");
+ strictEqual(path.basename("aaa/bbb", "bbb"), "bbb");
+ strictEqual(path.basename("aaa/bbb//", "bbb"), "bbb");
+ strictEqual(path.basename("aaa/bbb", "bb"), "b");
+ strictEqual(path.basename("aaa/bbb", "b"), "bb");
+ strictEqual(path.basename("/aaa/bbb", "/bbb"), "bbb");
+ strictEqual(path.basename("/aaa/bbb", "a/bbb"), "bbb");
+ strictEqual(path.basename("/aaa/bbb", "bbb"), "bbb");
+ strictEqual(path.basename("/aaa/bbb//", "bbb"), "bbb");
+ strictEqual(path.basename("/aaa/bbb", "bb"), "b");
+ strictEqual(path.basename("/aaa/bbb", "b"), "bb");
+ strictEqual(path.basename("/aaa/bbb"), "bbb");
+ strictEqual(path.basename("/aaa/"), "aaa");
+ strictEqual(path.basename("/aaa/b"), "b");
+ strictEqual(path.basename("/a/b"), "b");
+ strictEqual(path.basename("//a"), "a");
+ strictEqual(path.basename("a", "a"), "");
+
+ // // On Windows a backslash acts as a path separator.
+ strictEqual(path.win32.basename("\\dir\\basename.ext"), "basename.ext");
+ strictEqual(path.win32.basename("\\basename.ext"), "basename.ext");
+ strictEqual(path.win32.basename("basename.ext"), "basename.ext");
+ strictEqual(path.win32.basename("basename.ext\\"), "basename.ext");
+ strictEqual(path.win32.basename("basename.ext\\\\"), "basename.ext");
+ strictEqual(path.win32.basename("foo"), "foo");
+ strictEqual(path.win32.basename("aaa\\bbb", "\\bbb"), "bbb");
+ strictEqual(path.win32.basename("aaa\\bbb", "a\\bbb"), "bbb");
+ strictEqual(path.win32.basename("aaa\\bbb", "bbb"), "bbb");
+ strictEqual(path.win32.basename("aaa\\bbb\\\\\\\\", "bbb"), "bbb");
+ strictEqual(path.win32.basename("aaa\\bbb", "bb"), "b");
+ strictEqual(path.win32.basename("aaa\\bbb", "b"), "bb");
+ strictEqual(path.win32.basename("C:"), "");
+ strictEqual(path.win32.basename("C:."), ".");
+ strictEqual(path.win32.basename("C:\\"), "");
+ strictEqual(path.win32.basename("C:\\dir\\base.ext"), "base.ext");
+ strictEqual(path.win32.basename("C:\\basename.ext"), "basename.ext");
+ strictEqual(path.win32.basename("C:basename.ext"), "basename.ext");
+ strictEqual(path.win32.basename("C:basename.ext\\"), "basename.ext");
+ strictEqual(path.win32.basename("C:basename.ext\\\\"), "basename.ext");
+ strictEqual(path.win32.basename("C:foo"), "foo");
+ strictEqual(path.win32.basename("file:stream"), "file:stream");
+ strictEqual(path.win32.basename("a", "a"), "");
+
+ // On unix a backslash is just treated as any other character.
+ strictEqual(
+ path.posix.basename("\\dir\\basename.ext"),
+ "\\dir\\basename.ext"
+ );
+ strictEqual(path.posix.basename("\\basename.ext"), "\\basename.ext");
+ strictEqual(path.posix.basename("basename.ext"), "basename.ext");
+ strictEqual(path.posix.basename("basename.ext\\"), "basename.ext\\");
+ strictEqual(path.posix.basename("basename.ext\\\\"), "basename.ext\\\\");
+ strictEqual(path.posix.basename("foo"), "foo");
+
+ // POSIX filenames may include control characters
+ // c.f. http://www.dwheeler.com/essays/fixing-unix-linux-filenames.html
+ const controlCharFilename = `Icon${String.fromCharCode(13)}`;
+ strictEqual(
+ path.posix.basename(`/a/b/${controlCharFilename}`),
+ controlCharFilename
+ );
+});
+
+it("path.join", () => {
+ const failures = [];
+ const backslashRE = /\\/g;
+
+ const joinTests = [
+ [
+ [path.posix.join],
+ // Arguments result
+ [
+ [[".", "x/b", "..", "/b/c.js"], "x/b/c.js"],
+ // [[], '.'],
+ [["/.", "x/b", "..", "/b/c.js"], "/x/b/c.js"],
+ [["/foo", "../../../bar"], "/bar"],
+ [["foo", "../../../bar"], "../../bar"],
+ [["foo/", "../../../bar"], "../../bar"],
+ [["foo/x", "../../../bar"], "../bar"],
+ [["foo/x", "./bar"], "foo/x/bar"],
+ [["foo/x/", "./bar"], "foo/x/bar"],
+ [["foo/x/", ".", "bar"], "foo/x/bar"],
+ [["./"], "./"],
+ [[".", "./"], "./"],
+ [[".", ".", "."], "."],
+ [[".", "./", "."], "."],
+ [[".", "/./", "."], "."],
+ [[".", "/////./", "."], "."],
+ [["."], "."],
+ [["", "."], "."],
+ [["", "foo"], "foo"],
+ [["foo", "/bar"], "foo/bar"],
+ [["", "/foo"], "/foo"],
+ [["", "", "/foo"], "/foo"],
+ [["", "", "foo"], "foo"],
+ [["foo", ""], "foo"],
+ [["foo/", ""], "foo/"],
+ [["foo", "", "/bar"], "foo/bar"],
+ [["./", "..", "/foo"], "../foo"],
+ [["./", "..", "..", "/foo"], "../../foo"],
+ [[".", "..", "..", "/foo"], "../../foo"],
+ [["", "..", "..", "/foo"], "../../foo"],
+ [["/"], "/"],
+ [["/", "."], "/"],
+ [["/", ".."], "/"],
+ [["/", "..", ".."], "/"],
+ [[""], "."],
+ [["", ""], "."],
+ [[" /foo"], " /foo"],
+ [[" ", "foo"], " /foo"],
+ [[" ", "."], " "],
+ [[" ", "/"], " /"],
+ [[" ", ""], " "],
+ [["/", "foo"], "/foo"],
+ [["/", "/foo"], "/foo"],
+ [["/", "//foo"], "/foo"],
+ [["/", "", "/foo"], "/foo"],
+ [["", "/", "foo"], "/foo"],
+ [["", "/", "/foo"], "/foo"],
+ ],
+ ],
+ ];
+
+ // // Windows-specific join tests
+ // joinTests.push([
+ // path.win32.join,
+ // joinTests[0][1].slice(0).concat([
+ // // Arguments result
+ // // UNC path expected
+ // [["//foo/bar"], "\\\\foo\\bar\\"],
+ // [["\\/foo/bar"], "\\\\foo\\bar\\"],
+ // [["\\\\foo/bar"], "\\\\foo\\bar\\"],
+ // // UNC path expected - server and share separate
+ // [["//foo", "bar"], "\\\\foo\\bar\\"],
+ // [["//foo/", "bar"], "\\\\foo\\bar\\"],
+ // [["//foo", "/bar"], "\\\\foo\\bar\\"],
+ // // UNC path expected - questionable
+ // [["//foo", "", "bar"], "\\\\foo\\bar\\"],
+ // [["//foo/", "", "bar"], "\\\\foo\\bar\\"],
+ // [["//foo/", "", "/bar"], "\\\\foo\\bar\\"],
+ // // UNC path expected - even more questionable
+ // [["", "//foo", "bar"], "\\\\foo\\bar\\"],
+ // [["", "//foo/", "bar"], "\\\\foo\\bar\\"],
+ // [["", "//foo/", "/bar"], "\\\\foo\\bar\\"],
+ // // No UNC path expected (no double slash in first component)
+ // [["\\", "foo/bar"], "\\foo\\bar"],
+ // [["\\", "/foo/bar"], "\\foo\\bar"],
+ // [["", "/", "/foo/bar"], "\\foo\\bar"],
+ // // No UNC path expected (no non-slashes in first component -
+ // // questionable)
+ // [["//", "foo/bar"], "\\foo\\bar"],
+ // [["//", "/foo/bar"], "\\foo\\bar"],
+ // [["\\\\", "/", "/foo/bar"], "\\foo\\bar"],
+ // [["//"], "\\"],
+ // // No UNC path expected (share name missing - questionable).
+ // [["//foo"], "\\foo"],
+ // [["//foo/"], "\\foo\\"],
+ // [["//foo", "/"], "\\foo\\"],
+ // [["//foo", "", "/"], "\\foo\\"],
+ // // No UNC path expected (too many leading slashes - questionable)
+ // [["///foo/bar"], "\\foo\\bar"],
+ // [["////foo", "bar"], "\\foo\\bar"],
+ // [["\\\\\\/foo/bar"], "\\foo\\bar"],
+ // // Drive-relative vs drive-absolute paths. This merely describes the
+ // // status quo, rather than being obviously right
+ // [["c:"], "c:."],
+ // [["c:."], "c:."],
+ // [["c:", ""], "c:."],
+ // [["", "c:"], "c:."],
+ // [["c:.", "/"], "c:.\\"],
+ // [["c:.", "file"], "c:file"],
+ // [["c:", "/"], "c:\\"],
+ // [["c:", "file"], "c:\\file"],
+ // ]),
+ // ]);
+ joinTests.forEach((test) => {
+ if (!Array.isArray(test[0])) test[0] = [test[0]];
+ test[0].forEach((join) => {
+ test[1].forEach((test) => {
+ const actual = join.apply(null, test[0]);
+ const expected = test[1];
+ // For non-Windows specific tests with the Windows join(), we need to try
+ // replacing the slashes since the non-Windows specific tests' `expected`
+ // use forward slashes
+ let actualAlt;
+ let os;
+ if (join === path.win32.join) {
+ actualAlt = actual.replace(backslashRE, "/");
+ os = "win32";
+ } else {
+ os = "posix";
+ }
+ if (actual !== expected && actualAlt !== expected) {
+ const delimiter = test[0].map(JSON.stringify).join(",");
+ const message = `path.${os}.join(${delimiter})\n expect=${JSON.stringify(
+ expected
+ )}\n actual=${JSON.stringify(actual)}`;
+ failures.push(`\n${message}`);
+ }
+ });
+ });
+ });
+ strictEqual(failures.length, 0, failures.join(""));
+});
+
+it("path.relative", () => {
+ const failures = [];
+
+ const relativeTests = [
+ // [
+ // path.win32.relative,
+ // // Arguments result
+ // [
+ // ["c:/blah\\blah", "d:/games", "d:\\games"],
+ // ["c:/aaaa/bbbb", "c:/aaaa", ".."],
+ // ["c:/aaaa/bbbb", "c:/cccc", "..\\..\\cccc"],
+ // ["c:/aaaa/bbbb", "c:/aaaa/bbbb", ""],
+ // ["c:/aaaa/bbbb", "c:/aaaa/cccc", "..\\cccc"],
+ // ["c:/aaaa/", "c:/aaaa/cccc", "cccc"],
+ // ["c:/", "c:\\aaaa\\bbbb", "aaaa\\bbbb"],
+ // ["c:/aaaa/bbbb", "d:\\", "d:\\"],
+ // ["c:/AaAa/bbbb", "c:/aaaa/bbbb", ""],
+ // ["c:/aaaaa/", "c:/aaaa/cccc", "..\\aaaa\\cccc"],
+ // ["C:\\foo\\bar\\baz\\quux", "C:\\", "..\\..\\..\\.."],
+ // [
+ // "C:\\foo\\test",
+ // "C:\\foo\\test\\bar\\package.json",
+ // "bar\\package.json",
+ // ],
+ // ["C:\\foo\\bar\\baz-quux", "C:\\foo\\bar\\baz", "..\\baz"],
+ // ["C:\\foo\\bar\\baz", "C:\\foo\\bar\\baz-quux", "..\\baz-quux"],
+ // ["\\\\foo\\bar", "\\\\foo\\bar\\baz", "baz"],
+ // ["\\\\foo\\bar\\baz", "\\\\foo\\bar", ".."],
+ // ["\\\\foo\\bar\\baz-quux", "\\\\foo\\bar\\baz", "..\\baz"],
+ // ["\\\\foo\\bar\\baz", "\\\\foo\\bar\\baz-quux", "..\\baz-quux"],
+ // ["C:\\baz-quux", "C:\\baz", "..\\baz"],
+ // ["C:\\baz", "C:\\baz-quux", "..\\baz-quux"],
+ // ["\\\\foo\\baz-quux", "\\\\foo\\baz", "..\\baz"],
+ // ["\\\\foo\\baz", "\\\\foo\\baz-quux", "..\\baz-quux"],
+ // ["C:\\baz", "\\\\foo\\bar\\baz", "\\\\foo\\bar\\baz"],
+ // ["\\\\foo\\bar\\baz", "C:\\baz", "C:\\baz"],
+ // ],
+ // ],
+ [
+ path.posix.relative,
+ // Arguments result
+ [
+ ["/var/lib", "/var", ".."],
+ ["/var/lib", "/bin", "../../bin"],
+ ["/var/lib", "/var/lib", ""],
+ ["/var/lib", "/var/apache", "../apache"],
+ ["/var/", "/var/lib", "lib"],
+ ["/", "/var/lib", "var/lib"],
+ ["/foo/test", "/foo/test/bar/package.json", "bar/package.json"],
+ ["/Users/a/web/b/test/mails", "/Users/a/web/b", "../.."],
+ ["/foo/bar/baz-quux", "/foo/bar/baz", "../baz"],
+ ["/foo/bar/baz", "/foo/bar/baz-quux", "../baz-quux"],
+ ["/baz-quux", "/baz", "../baz"],
+ ["/baz", "/baz-quux", "../baz-quux"],
+ ["/page1/page2/foo", "/", "../../.."],
+ ],
+ ],
+ ];
+
+ relativeTests.forEach((test) => {
+ const relative = test[0];
+ test[1].forEach((test) => {
+ const actual = relative(test[0], test[1]);
+ const expected = test[2];
+ if (actual !== expected) {
+ const os = relative === path.win32.relative ? "win32" : "posix";
+ const message = `path.${os}.relative(${test
+ .slice(0, 2)
+ .map(JSON.stringify)
+ .join(",")})\n expect=${JSON.stringify(
+ expected
+ )}\n actual=${JSON.stringify(actual)}`;
+ failures.push(`\n${message}`);
+ }
+ });
+ });
+
+ strictEqual(failures.length, 0, failures.join(""));
+ expect(true).toBe(true);
+});
+
+it("path.normalize", () => {
+ // strictEqual(
+ // path.win32.normalize("./fixtures///b/../b/c.js"),
+ // "fixtures\\b\\c.js"
+ // );
+ // strictEqual(path.win32.normalize("/foo/../../../bar"), "\\bar");
+ // strictEqual(path.win32.normalize("a//b//../b"), "a\\b");
+ // strictEqual(path.win32.normalize("a//b//./c"), "a\\b\\c");
+ // strictEqual(path.win32.normalize("a//b//."), "a\\b");
+ // strictEqual(
+ // path.win32.normalize("//server/share/dir/file.ext"),
+ // "\\\\server\\share\\dir\\file.ext"
+ // );
+ // strictEqual(path.win32.normalize("/a/b/c/../../../x/y/z"), "\\x\\y\\z");
+ // strictEqual(path.win32.normalize("C:"), "C:.");
+ // strictEqual(path.win32.normalize("C:..\\abc"), "C:..\\abc");
+ // strictEqual(path.win32.normalize("C:..\\..\\abc\\..\\def"), "C:..\\..\\def");
+ // strictEqual(path.win32.normalize("C:\\."), "C:\\");
+ // strictEqual(path.win32.normalize("file:stream"), "file:stream");
+ // strictEqual(path.win32.normalize("bar\\foo..\\..\\"), "bar\\");
+ // strictEqual(path.win32.normalize("bar\\foo..\\.."), "bar");
+ // strictEqual(path.win32.normalize("bar\\foo..\\..\\baz"), "bar\\baz");
+ // strictEqual(path.win32.normalize("bar\\foo..\\"), "bar\\foo..\\");
+ // strictEqual(path.win32.normalize("bar\\foo.."), "bar\\foo..");
+ // strictEqual(path.win32.normalize("..\\foo..\\..\\..\\bar"), "..\\..\\bar");
+ // strictEqual(
+ // path.win32.normalize("..\\...\\..\\.\\...\\..\\..\\bar"),
+ // "..\\..\\bar"
+ // );
+ // strictEqual(
+ // path.win32.normalize("../../../foo/../../../bar"),
+ // "..\\..\\..\\..\\..\\bar"
+ // );
+ // strictEqual(
+ // path.win32.normalize("../../../foo/../../../bar/../../"),
+ // "..\\..\\..\\..\\..\\..\\"
+ // );
+ // strictEqual(
+ // path.win32.normalize("../foobar/barfoo/foo/../../../bar/../../"),
+ // "..\\..\\"
+ // );
+ // strictEqual(
+ // path.win32.normalize("../.../../foobar/../../../bar/../../baz"),
+ // "..\\..\\..\\..\\baz"
+ // );
+ // strictEqual(path.win32.normalize("foo/bar\\baz"), "foo\\bar\\baz");
+
+ strictEqual(
+ path.posix.normalize("./fixtures///b/../b/c.js"),
+ "fixtures/b/c.js"
+ );
+ strictEqual(path.posix.normalize("/foo/../../../bar"), "/bar");
+ strictEqual(path.posix.normalize("a//b//../b"), "a/b");
+ strictEqual(path.posix.normalize("a//b//./c"), "a/b/c");
+ strictEqual(path.posix.normalize("a//b//."), "a/b");
+ strictEqual(path.posix.normalize("/a/b/c/../../../x/y/z"), "/x/y/z");
+ strictEqual(path.posix.normalize("///..//./foo/.//bar"), "/foo/bar");
+ strictEqual(path.posix.normalize("bar/foo../../"), "bar/");
+ strictEqual(path.posix.normalize("bar/foo../.."), "bar");
+ strictEqual(path.posix.normalize("bar/foo../../baz"), "bar/baz");
+ strictEqual(path.posix.normalize("bar/foo../"), "bar/foo../");
+ strictEqual(path.posix.normalize("bar/foo.."), "bar/foo..");
+ console.log("A");
+ strictEqual(path.posix.normalize("../foo../../../bar"), "../../bar");
+ console.log("B");
+ strictEqual(path.posix.normalize("../.../.././.../../../bar"), "../../bar");
+ strictEqual(
+ path.posix.normalize("../../../foo/../../../bar"),
+ "../../../../../bar"
+ );
+ strictEqual(
+ path.posix.normalize("../../../foo/../../../bar/../../"),
+ "../../../../../../"
+ );
+ strictEqual(
+ path.posix.normalize("../foobar/barfoo/foo/../../../bar/../../"),
+ "../../"
+ );
+ strictEqual(
+ path.posix.normalize("../.../../foobar/../../../bar/../../baz"),
+ "../../../../baz"
+ );
+ strictEqual(path.posix.normalize("foo/bar\\baz"), "foo/bar\\baz");
+});
+
+it("path.resolve", () => {
+ const failures = [];
+ const slashRE = /\//g;
+ const backslashRE = /\\/g;
+
+ const resolveTests = [
+ // [
+ // path.win32.resolve,
+ // // Arguments result
+ // [
+ // [["c:/blah\\blah", "d:/games", "c:../a"], "c:\\blah\\a"],
+ // [["c:/ignore", "d:\\a/b\\c/d", "\\e.exe"], "d:\\e.exe"],
+ // [["c:/ignore", "c:/some/file"], "c:\\some\\file"],
+ // [["d:/ignore", "d:some/dir//"], "d:\\ignore\\some\\dir"],
+ // [["."], process.cwd()],
+ // [["//server/share", "..", "relative\\"], "\\\\server\\share\\relative"],
+ // [["c:/", "//"], "c:\\"],
+ // [["c:/", "//dir"], "c:\\dir"],
+ // [["c:/", "//server/share"], "\\\\server\\share\\"],
+ // [["c:/", "//server//share"], "\\\\server\\share\\"],
+ // [["c:/", "///some//dir"], "c:\\some\\dir"],
+ // [
+ // ["C:\\foo\\tmp.3\\", "..\\tmp.3\\cycles\\root.js"],
+ // "C:\\foo\\tmp.3\\cycles\\root.js",
+ // ],
+ // ],
+ // ],
+ [
+ path.posix.resolve,
+ // Arguments result
+ [
+ [["/var/lib", "../", "file/"], "/var/file"],
+ [["/var/lib", "/../", "file/"], "/file"],
+ [["a/b/c/", "../../.."], process.cwd()],
+ [["."], process.cwd()],
+ [["/some/dir", ".", "/absolute/"], "/absolute"],
+ [
+ ["/foo/tmp.3/", "../tmp.3/cycles/root.js"],
+ "/foo/tmp.3/cycles/root.js",
+ ],
+ ],
+ ],
+ ];
+ const isWindows = false;
+ resolveTests.forEach(([resolve, tests]) => {
+ tests.forEach(([test, expected]) => {
+ const actual = resolve.apply(null, test);
+ let actualAlt;
+ const os = resolve === path.win32.resolve ? "win32" : "posix";
+ if (resolve === path.win32.resolve && !isWindows)
+ actualAlt = actual.replace(backslashRE, "/");
+ else if (resolve !== path.win32.resolve && isWindows)
+ actualAlt = actual.replace(slashRE, "\\");
+
+ const message = `path.${os}.resolve(${test
+ .map(JSON.stringify)
+ .join(",")})\n expect=${JSON.stringify(
+ expected
+ )}\n actual=${JSON.stringify(actual)}`;
+ if (actual !== expected && actualAlt !== expected) failures.push(message);
+ });
+ });
+ strictEqual(failures.length, 0, failures.join("\n"));
+});
diff --git a/test/bun.js/performance.test.js b/test/bun.js/performance.test.js
new file mode 100644
index 000000000..5e8520638
--- /dev/null
+++ b/test/bun.js/performance.test.js
@@ -0,0 +1,18 @@
+import { expect, it } from "bun:test";
+
+it("performance.now() should be monotonic", () => {
+ const first = performance.now();
+ const second = performance.now();
+ const third = performance.now();
+ const fourth = performance.now();
+ const fifth = performance.now();
+ const sixth = performance.now();
+ expect(first < second).toBe(true);
+ expect(second < third).toBe(true);
+ expect(third < fourth).toBe(true);
+ expect(fourth < fifth).toBe(true);
+ expect(fifth < sixth).toBe(true);
+ expect(Bun.nanoseconds() > 0).toBe(true);
+ expect(Bun.nanoseconds() > sixth).toBe(true);
+ expect(typeof Bun.nanoseconds() === "number").toBe(true);
+});
diff --git a/test/bun.js/process-nexttick.js b/test/bun.js/process-nexttick.js
new file mode 100644
index 000000000..337977c0a
--- /dev/null
+++ b/test/bun.js/process-nexttick.js
@@ -0,0 +1,91 @@
+// You can verify this test is correct by copy pasting this into a browser's console and checking it doesn't throw an error.
+var run = 0;
+
+var queueMicrotask = process.nextTick;
+
+await new Promise((resolve, reject) => {
+ queueMicrotask(() => {
+ if (run++ != 0) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ queueMicrotask(() => {
+ if (run++ != 3) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ });
+ });
+ queueMicrotask(() => {
+ if (run++ != 1) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ queueMicrotask(() => {
+ if (run++ != 4) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+
+ queueMicrotask(() => {
+ if (run++ != 6) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ });
+ });
+ });
+ queueMicrotask(() => {
+ if (run++ != 2) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ queueMicrotask(() => {
+ if (run++ != 5) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+
+ queueMicrotask(() => {
+ if (run++ != 7) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ resolve(true);
+ });
+ });
+ });
+});
+
+{
+ var passed = false;
+ try {
+ queueMicrotask(1234);
+ } catch (exception) {
+ passed = exception instanceof TypeError;
+ }
+
+ if (!passed)
+ throw new Error(
+ "queueMicrotask should throw a TypeError if the argument is not a function"
+ );
+}
+
+{
+ var passed = false;
+ try {
+ queueMicrotask();
+ } catch (exception) {
+ passed = exception instanceof TypeError;
+ }
+
+ if (!passed)
+ throw new Error(
+ "queueMicrotask should throw a TypeError if the argument is empty"
+ );
+}
+
+await new Promise((resolve, reject) => {
+ process.nextTick(
+ (first, second) => {
+ console.log(first, second);
+ if (first !== 12345 || second !== "hello")
+ reject(new Error("process.nextTick called with wrong arguments"));
+ resolve(true);
+ },
+ 12345,
+ "hello"
+ );
+});
diff --git a/test/bun.js/process-nexttick.test.js b/test/bun.js/process-nexttick.test.js
new file mode 100644
index 000000000..ac53399c0
--- /dev/null
+++ b/test/bun.js/process-nexttick.test.js
@@ -0,0 +1,93 @@
+import { it } from "bun:test";
+
+it("process.nextTick", async () => {
+ // You can verify this test is correct by copy pasting this into a browser's console and checking it doesn't throw an error.
+ var run = 0;
+ var queueMicrotask = process.nextTick;
+
+ await new Promise((resolve, reject) => {
+ queueMicrotask(() => {
+ if (run++ != 0) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ queueMicrotask(() => {
+ if (run++ != 3) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ });
+ });
+ queueMicrotask(() => {
+ if (run++ != 1) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ queueMicrotask(() => {
+ if (run++ != 4) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+
+ queueMicrotask(() => {
+ if (run++ != 6) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ });
+ });
+ });
+ queueMicrotask(() => {
+ if (run++ != 2) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ queueMicrotask(() => {
+ if (run++ != 5) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+
+ queueMicrotask(() => {
+ if (run++ != 7) {
+ reject(new Error("Microtask execution order is wrong: " + run));
+ }
+ resolve(true);
+ });
+ });
+ });
+ });
+
+ {
+ var passed = false;
+ try {
+ queueMicrotask(1234);
+ } catch (exception) {
+ passed = exception instanceof TypeError;
+ }
+
+ if (!passed)
+ throw new Error(
+ "queueMicrotask should throw a TypeError if the argument is not a function"
+ );
+ }
+
+ {
+ var passed = false;
+ try {
+ queueMicrotask();
+ } catch (exception) {
+ passed = exception instanceof TypeError;
+ }
+
+ if (!passed)
+ throw new Error(
+ "queueMicrotask should throw a TypeError if the argument is empty"
+ );
+ }
+
+ await new Promise((resolve, reject) => {
+ process.nextTick(
+ (first, second) => {
+ if (first !== 12345 || second !== "hello")
+ reject(new Error("process.nextTick called with wrong arguments"));
+ resolve(true);
+ },
+ 12345,
+ "hello"
+ );
+ });
+});
diff --git a/test/bun.js/process.test.js b/test/bun.js/process.test.js
new file mode 100644
index 000000000..f82834a04
--- /dev/null
+++ b/test/bun.js/process.test.js
@@ -0,0 +1,54 @@
+import { describe, it } from "bun:test";
+
+it("process", () => {
+ // this property isn't implemented yet but it should at least return a string
+ const isNode = !process.isBun;
+
+ if (!isNode && process.title !== "bun")
+ throw new Error("process.title is not 'bun'");
+
+ if (typeof process.env.USER !== "string")
+ throw new Error("process.env is not an object");
+
+ if (process.env.USER.length === 0)
+ throw new Error("process.env is missing a USER property");
+
+ if (process.platform !== "darwin" && process.platform !== "linux")
+ throw new Error("process.platform is invalid");
+
+ if (isNode) throw new Error("process.isBun is invalid");
+
+ // partially to test it doesn't crash due to various strange types
+ process.env.BACON = "yummy";
+ if (process.env.BACON !== "yummy") {
+ throw new Error("process.env is not writable");
+ }
+
+ delete process.env.BACON;
+ if (typeof process.env.BACON !== "undefined") {
+ throw new Error("process.env is not deletable");
+ }
+
+ process.env.BACON = "yummy";
+ if (process.env.BACON !== "yummy") {
+ throw new Error("process.env is not re-writable");
+ }
+
+ if (JSON.parse(JSON.stringify(process.env)).BACON !== "yummy") {
+ throw new Error("process.env is not serializable");
+ }
+
+ if (typeof JSON.parse(JSON.stringify(process.env)).toJSON !== "undefined") {
+ throw new Error(
+ "process.env should call toJSON to hide its internal state"
+ );
+ }
+
+ var { env, ...proces } = process;
+ console.log(JSON.stringify(proces, null, 2));
+ console.log(proces);
+
+ console.log("CWD", process.cwd());
+ console.log("SET CWD", process.chdir("../"));
+ console.log("CWD", process.cwd());
+});
diff --git a/test/bun.js/readFileSync.txt b/test/bun.js/readFileSync.txt
new file mode 100644
index 000000000..ddc94b988
--- /dev/null
+++ b/test/bun.js/readFileSync.txt
@@ -0,0 +1 @@
+File read successfully \ No newline at end of file
diff --git a/test/bun.js/readdir.js b/test/bun.js/readdir.js
new file mode 100644
index 000000000..18c111d0a
--- /dev/null
+++ b/test/bun.js/readdir.js
@@ -0,0 +1,9 @@
+const { readdirSync } = require("fs");
+
+const count = parseInt(process.env.ITERATIONS || "1", 10) || 1;
+
+for (let i = 0; i < count; i++) {
+ readdirSync(".");
+}
+
+console.log(readdirSync("."));
diff --git a/test/bun.js/reportError.test.js b/test/bun.js/reportError.test.js
new file mode 100644
index 000000000..e51f93309
--- /dev/null
+++ b/test/bun.js/reportError.test.js
@@ -0,0 +1,25 @@
+import { it } from "bun:test";
+
+it("reportError", () => {
+ console.log("---BEGIN REPORT ERROR TEST--");
+ // make sure we don't crash when given non-sensical types
+ reportError(new Error("reportError Test!"));
+ reportError(true);
+ reportError(false);
+ reportError(null);
+ reportError(123);
+ reportError(Infinity);
+ reportError(NaN);
+ reportError(-NaN);
+ reportError("");
+ reportError(new Uint8Array(1));
+ reportError(new Uint8Array(0));
+ reportError(new ArrayBuffer(0));
+ reportError(new ArrayBuffer(1));
+ reportError("string");
+ reportError([]);
+ reportError([123, null]);
+ reportError({});
+ reportError([{}]);
+ console.log("---END REPORT ERROR TEST--");
+});
diff --git a/test/bun.js/require-json.json b/test/bun.js/require-json.json
new file mode 100644
index 000000000..6414edc0e
--- /dev/null
+++ b/test/bun.js/require-json.json
@@ -0,0 +1,3 @@
+{
+ "hello": -123
+}
diff --git a/test/bun.js/resolve-typescript-file.tsx b/test/bun.js/resolve-typescript-file.tsx
new file mode 100644
index 000000000..ff8b4c563
--- /dev/null
+++ b/test/bun.js/resolve-typescript-file.tsx
@@ -0,0 +1 @@
+export default {};
diff --git a/test/bun.js/resolve.test.js b/test/bun.js/resolve.test.js
new file mode 100644
index 000000000..56162de4f
--- /dev/null
+++ b/test/bun.js/resolve.test.js
@@ -0,0 +1,100 @@
+import { it, expect } from "bun:test";
+import { mkdirSync, writeFileSync } from "fs";
+import { join } from "path";
+
+it("import.meta.resolve", async () => {
+ expect(await import.meta.resolve("./resolve.test.js")).toBe(import.meta.path);
+
+ expect(await import.meta.resolve("./resolve.test.js", import.meta.path)).toBe(
+ import.meta.path
+ );
+
+ expect(
+ // optional second param can be any path, including a dir
+ await import.meta.resolve(
+ "./bun.js/resolve.test.js",
+ join(import.meta.path, "../")
+ )
+ ).toBe(import.meta.path);
+
+ // can be a package path
+ expect(
+ (await import.meta.resolve("react", import.meta.path)).length > 0
+ ).toBe(true);
+
+ // file extensions are optional
+ expect(await import.meta.resolve("./resolve.test")).toBe(import.meta.path);
+
+ // works with tsconfig.json "paths"
+ expect(await import.meta.resolve("foo/bar")).toBe(
+ join(import.meta.path, "../baz.js")
+ );
+
+ // works with package.json "exports"
+ writePackageJSONExportsFixture();
+ expect(await import.meta.resolve("package-json-exports/baz")).toBe(
+ join(import.meta.path, "../node_modules/package-json-exports/foo/bar.js")
+ );
+
+ // works with TypeScript compiler edgecases like:
+ // - If the file ends with .js and it doesn't exist, try again with .ts and .tsx
+ expect(await import.meta.resolve("./resolve-typescript-file.js")).toBe(
+ join(import.meta.path, "../resolve-typescript-file.tsx")
+ );
+ expect(await import.meta.resolve("./resolve-typescript-file.tsx")).toBe(
+ join(import.meta.path, "../resolve-typescript-file.tsx")
+ );
+
+ // throws a ResolveError on failure
+ try {
+ await import.meta.resolve("THIS FILE DOESNT EXIST");
+ throw new Error("Test failed");
+ } catch (exception) {
+ expect(exception instanceof ResolveError).toBe(true);
+ expect(exception.referrer).toBe(import.meta.path);
+ expect(exception.name).toBe("ResolveError");
+ }
+});
+
+// the slightly lower level API, which doesn't prefill the second param
+// and expects a directory instead of a filepath
+it("Bun.resolve", async () => {
+ expect(await Bun.resolve("./resolve.test.js", import.meta.dir)).toBe(
+ import.meta.path
+ );
+});
+
+// synchronous
+it("Bun.resolveSync", () => {
+ expect(Bun.resolveSync("./resolve.test.js", import.meta.dir)).toBe(
+ import.meta.path
+ );
+});
+
+function writePackageJSONExportsFixture() {
+ try {
+ mkdirSync(
+ join(import.meta.dir, "./node_modules/package-json-exports/foo"),
+ {
+ recursive: true,
+ }
+ );
+ } catch (exception) {}
+ writeFileSync(
+ join(import.meta.dir, "./node_modules/package-json-exports/foo/bar.js"),
+ "export const bar = 1;"
+ );
+ writeFileSync(
+ join(import.meta.dir, "./node_modules/package-json-exports/package.json"),
+ JSON.stringify(
+ {
+ name: "package-json-exports",
+ exports: {
+ "./baz": "./foo/bar.js",
+ },
+ },
+ null,
+ 2
+ )
+ );
+}
diff --git a/test/bun.js/response.file.test.js b/test/bun.js/response.file.test.js
new file mode 100644
index 000000000..2d0b6506e
--- /dev/null
+++ b/test/bun.js/response.file.test.js
@@ -0,0 +1,218 @@
+import fs from "fs";
+import { it, expect } from "bun:test";
+import path from "path";
+import { gcTick } from "./gc";
+
+it("Bun.file not found returns ENOENT", async () => {
+ try {
+ await gcTick();
+ await Bun.file("/does/not/exist.txt").text();
+ await gcTick();
+ } catch (exception) {
+ expect(exception.code).toBe("ENOENT");
+ }
+ await gcTick();
+});
+
+it("Bun.write('out.txt', 'string')", async () => {
+ for (let erase of [true, false]) {
+ if (erase) {
+ try {
+ fs.unlinkSync(path.join("/tmp", "out.txt"));
+ } catch (e) {}
+ }
+ await gcTick();
+ expect(await Bun.write("/tmp/out.txt", "string")).toBe("string".length);
+ await gcTick();
+ const out = Bun.file("/tmp/out.txt");
+ await gcTick();
+ expect(await out.text()).toBe("string");
+ await gcTick();
+ expect(await out.text()).toBe(fs.readFileSync("/tmp/out.txt", "utf8"));
+ await gcTick();
+ }
+});
+
+it("Bun.write blob", async () => {
+ await Bun.write(
+ Bun.file("/tmp/response-file.test.txt"),
+ Bun.file(path.join(import.meta.dir, "fetch.js.txt"))
+ );
+ await gcTick();
+ await Bun.write(Bun.file("/tmp/response-file.test.txt"), "blah blah blha");
+ await gcTick();
+ await Bun.write(
+ Bun.file("/tmp/response-file.test.txt"),
+ new Uint32Array(1024)
+ );
+ await gcTick();
+ await Bun.write("/tmp/response-file.test.txt", new Uint32Array(1024));
+ await gcTick();
+ expect(
+ await Bun.write(
+ new TextEncoder().encode("/tmp/response-file.test.txt"),
+ new Uint32Array(1024)
+ )
+ ).toBe(new Uint32Array(1024).byteLength);
+ await gcTick();
+});
+
+it("Bun.file -> Bun.file", async () => {
+ try {
+ fs.unlinkSync(path.join("/tmp", "fetch.js.in"));
+ } catch (e) {}
+ await gcTick();
+ try {
+ fs.unlinkSync(path.join("/tmp", "fetch.js.out"));
+ } catch (e) {}
+ await gcTick();
+ const file = path.join(import.meta.dir, "fetch.js.txt");
+ await gcTick();
+ const text = fs.readFileSync(file, "utf8");
+ fs.writeFileSync("/tmp/fetch.js.in", text);
+ await gcTick();
+ {
+ const result = await Bun.write(
+ Bun.file("/tmp/fetch.js.out"),
+ Bun.file("/tmp/fetch.js.in")
+ );
+ await gcTick();
+ expect(await Bun.file("/tmp/fetch.js.out").text()).toBe(text);
+ await gcTick();
+ }
+
+ {
+ await Bun.write(
+ Bun.file("/tmp/fetch.js.in").slice(0, (text.length / 2) | 0),
+ Bun.file("/tmp/fetch.js.out")
+ );
+ expect(await Bun.file("/tmp/fetch.js.in").text()).toBe(
+ text.substring(0, (text.length / 2) | 0)
+ );
+ }
+
+ {
+ await gcTick();
+ await Bun.write("/tmp/fetch.js.in", Bun.file("/tmp/fetch.js.out"));
+ await gcTick();
+ expect(await Bun.file("/tmp/fetch.js.in").text()).toBe(text);
+ }
+});
+
+it("Bun.file", async () => {
+ const file = path.join(import.meta.dir, "fetch.js.txt");
+ await gcTick();
+ expect(await Bun.file(file).text()).toBe(fs.readFileSync(file, "utf8"));
+ await gcTick();
+});
+
+it("Bun.file as a Blob", async () => {
+ const filePath = path.join(import.meta.path, "../fetch.js.txt");
+ const fixture = fs.readFileSync(filePath, "utf8");
+ // this is a Blob object with the same interface as the one returned by fetch
+ // internally, instead of a byte array, it stores the file path!
+ // this enables several performance optimizations
+ var blob = Bun.file(filePath);
+ await gcTick();
+
+ // no size because we haven't read it from disk yet
+ expect(blob.size).toBe(0);
+ await gcTick();
+ // now it reads "./fetch.js.txt" from the filesystem
+ // it's lazy, only loads once we ask for it
+ // if it fails, the promise will reject at this point
+ expect(await blob.text()).toBe(fixture);
+ await gcTick();
+ // now that it's loaded, the size updates
+ expect(blob.size).toBe(fixture.length);
+ await gcTick();
+ // and it only loads once for _all_ blobs pointing to that file path
+ // until all references are released
+ expect((await blob.arrayBuffer()).byteLength).toBe(fixture.length);
+ await gcTick();
+
+ const array = new Uint8Array(await blob.arrayBuffer());
+ await gcTick();
+ const text = fixture;
+ for (let i = 0; i < text.length; i++) {
+ expect(array[i]).toBe(text.charCodeAt(i));
+ }
+ await gcTick();
+ expect(blob.size).toBe(fixture.length);
+ blob = null;
+ await gcTick();
+ await new Promise((resolve) => setTimeout(resolve, 1));
+ // now we're back
+ var blob = Bun.file(filePath);
+ expect(blob.size).toBe(0);
+});
+
+it("Response -> Bun.file", async () => {
+ const file = path.join(import.meta.dir, "fetch.js.txt");
+ await gcTick();
+ const text = fs.readFileSync(file, "utf8");
+ await gcTick();
+ const response = new Response(Bun.file(file));
+ await gcTick();
+ expect(await response.text()).toBe(text);
+ await gcTick();
+});
+
+it("Bun.file -> Response", async () => {
+ // ensure the file doesn't already exist
+ try {
+ fs.unlinkSync("/tmp/fetch.js.out");
+ } catch {}
+ await gcTick();
+ const file = path.join(import.meta.dir, "fetch.js.txt");
+ await gcTick();
+ const text = fs.readFileSync(file, "utf8");
+ await gcTick();
+ const resp = await fetch("https://example.com");
+ await gcTick();
+
+ expect(await Bun.write("/tmp/fetch.js.out", resp)).toBe(text.length);
+ await gcTick();
+ expect(await Bun.file("/tmp/fetch.js.out").text()).toBe(text);
+ await gcTick();
+});
+
+it("Response -> Bun.file -> Response -> text", async () => {
+ await gcTick();
+ const file = path.join(import.meta.dir, "fetch.js.txt");
+ await gcTick();
+ const text = fs.readFileSync(file, "utf8");
+ await gcTick();
+ const response = new Response(Bun.file(file));
+ await gcTick();
+ const response2 = response.clone();
+ await gcTick();
+ expect(await response2.text()).toBe(text);
+ await gcTick();
+});
+
+// If you write nothing to a file, it shouldn't modify it
+// If you want to truncate a file, it should be more explicit
+it("Bun.write('output.html', '')", async () => {
+ await Bun.write("/tmp/output.html", "lalalala");
+ expect(await Bun.write("/tmp/output.html", "")).toBe(0);
+ expect(await Bun.file("/tmp/output.html").text()).toBe("lalalala");
+});
+
+// Since Bun.file is resolved lazily, this needs to specifically be checked
+it("Bun.write('output.html', HTMLRewriter.transform(Bun.file)))", async () => {
+ var rewriter = new HTMLRewriter();
+ rewriter.on("div", {
+ element(element) {
+ element.setInnerContent("<blink>it worked!</blink>", { html: true });
+ },
+ });
+ await Bun.write("/tmp/html-rewriter.txt.js", "<div>hello</div>");
+ var input = new Response(Bun.file("/tmp/html-rewriter.txt.js"));
+ var output = rewriter.transform(input);
+ const outpath = `/tmp/html-rewriter.${Date.now()}.html`;
+ await Bun.write(outpath, output);
+ expect(await Bun.file(outpath).text()).toBe(
+ "<div><blink>it worked!</blink></div>"
+ );
+});
diff --git a/test/bun.js/serve.test.ts b/test/bun.js/serve.test.ts
new file mode 100644
index 000000000..8b785dd25
--- /dev/null
+++ b/test/bun.js/serve.test.ts
@@ -0,0 +1,82 @@
+import { file, serve } from "bun";
+import { expect, it } from "bun:test";
+import { readFileSync } from "fs";
+import { resolve } from "path";
+
+var port = 40000;
+
+it("should work for a hello world", async () => {
+ const server = serve({
+ port: port++,
+ fetch(req) {
+ return new Response(`Hello, world!`);
+ },
+ });
+ const response = await fetch(`http://localhost:${server.port}`);
+ expect(await response.text()).toBe("Hello, world!");
+ server.stop();
+});
+
+it("should work for a file", async () => {
+ const fixture = resolve(import.meta.dir, "./fetch.js.txt");
+ const textToExpect = readFileSync(fixture, "utf-8");
+
+ const server = serve({
+ port: port++,
+ fetch(req) {
+ return new Response(file(fixture));
+ },
+ });
+ const response = await fetch(`http://localhost:${server.port}`);
+ expect(await response.text()).toBe(textToExpect);
+ server.stop();
+});
+
+it("fetch should work with headers", async () => {
+ const fixture = resolve(import.meta.dir, "./fetch.js.txt");
+
+ const server = serve({
+ port: port++,
+ fetch(req) {
+ if (req.headers.get("X-Foo") !== "bar") {
+ return new Response("X-Foo header not set", { status: 500 });
+ }
+ return new Response(file(fixture), {
+ headers: { "X-Both-Ways": "1" },
+ });
+ },
+ });
+ const response = await fetch(`http://localhost:${server.port}`, {
+ headers: {
+ "X-Foo": "bar",
+ },
+ });
+
+ expect(response.status).toBe(200);
+ expect(response.headers.get("X-Both-Ways")).toBe("1");
+ server.stop();
+});
+
+var count = 200;
+it(`should work for a file ${count} times`, async () => {
+ const fixture = resolve(import.meta.dir, "./fetch.js.txt");
+ const textToExpect = readFileSync(fixture, "utf-8");
+ var ran = 0;
+ const server = serve({
+ port: port++,
+ async fetch(req) {
+ return new Response(file(fixture));
+ },
+ });
+
+ // this gets stuck if run about 200 times awaiting all the promises
+ // when the promises are run altogether, instead of one at a time
+ // it's hard to say if this only happens here due to some weird stuff with the test runner
+ // or if it's "real" issue
+ for (let i = 0; i < count; i++) {
+ const response = await fetch(`http://localhost:${server.port}`);
+ expect(await response.text()).toBe(textToExpect);
+ }
+
+ server.stop();
+});
diff --git a/test/bun.js/setInterval.test.js b/test/bun.js/setInterval.test.js
new file mode 100644
index 000000000..f633998cd
--- /dev/null
+++ b/test/bun.js/setInterval.test.js
@@ -0,0 +1,35 @@
+import { it, expect } from "bun:test";
+
+it("setInterval", async () => {
+ var counter = 0;
+ var start;
+ const result = await new Promise((resolve, reject) => {
+ start = performance.now();
+
+ var id = setInterval(() => {
+ counter++;
+ if (counter === 10) {
+ resolve(counter);
+ clearInterval(id);
+ }
+ }, 1);
+ });
+
+ expect(result).toBe(10);
+ expect(performance.now() - start >= 10).toBe(true);
+});
+
+it("clearInterval", async () => {
+ var called = false;
+ const id = setInterval(() => {
+ called = true;
+ expect(false).toBe(true);
+ }, 1);
+ clearInterval(id);
+ await new Promise((resolve, reject) => {
+ setInterval(() => {
+ resolve();
+ }, 10);
+ });
+ expect(called).toBe(false);
+});
diff --git a/test/bun.js/setTimeout.test.js b/test/bun.js/setTimeout.test.js
new file mode 100644
index 000000000..55f71712c
--- /dev/null
+++ b/test/bun.js/setTimeout.test.js
@@ -0,0 +1,39 @@
+import { it, expect } from "bun:test";
+
+it("setTimeout", async () => {
+ var lastID = -1;
+ const result = await new Promise((resolve, reject) => {
+ var numbers = [];
+
+ for (let i = 1; i < 100; i++) {
+ const id = setTimeout(() => {
+ numbers.push(i);
+ if (i === 99) {
+ resolve(numbers);
+ }
+ }, i);
+ expect(id > lastID).toBe(true);
+ lastID = id;
+ }
+ });
+
+ for (let j = 0; j < result.length; j++) {
+ expect(result[j]).toBe(j + 1);
+ }
+ expect(result.length).toBe(99);
+});
+
+it("clearTimeout", async () => {
+ var called = false;
+ const id = setTimeout(() => {
+ called = true;
+ expect(false).toBe(true);
+ }, 1);
+ clearTimeout(id);
+ await new Promise((resolve, reject) => {
+ setTimeout(() => {
+ resolve();
+ }, 10);
+ });
+ expect(called).toBe(false);
+});
diff --git a/test/bun.js/shadow.test.js b/test/bun.js/shadow.test.js
new file mode 100644
index 000000000..3fffcac90
--- /dev/null
+++ b/test/bun.js/shadow.test.js
@@ -0,0 +1,10 @@
+import { describe, it, expect } from "bun:test";
+
+it("shadow realm works", () => {
+ const red = new ShadowRealm();
+ globalThis.someValue = 1;
+ // Affects only the ShadowRealm's global
+ const result = red.evaluate("globalThis.someValue = 2;");
+ expect(globalThis.someValue).toBe(1);
+ expect(result).toBe(2);
+});
diff --git a/test/bun.js/sleep.js b/test/bun.js/sleep.js
new file mode 100644
index 000000000..080597424
--- /dev/null
+++ b/test/bun.js/sleep.js
@@ -0,0 +1,10 @@
+const interval = 0.01;
+const now = performance.now();
+console.time("Slept");
+Bun.sleepSync(interval);
+const elapsed = performance.now() - now;
+if (elapsed < interval) {
+ throw new Error("Didn't sleep");
+}
+
+console.timeEnd("Slept");
diff --git a/test/bun.js/solid-dom-fixtures/SVG/code.js b/test/bun.js/solid-dom-fixtures/SVG/code.js
new file mode 100644
index 000000000..0ffded054
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/SVG/code.js
@@ -0,0 +1,74 @@
+const template = (
+ <svg width="400" height="180">
+ <rect
+ stroke-width="2"
+ x="50"
+ y="20"
+ rx="20"
+ ry="20"
+ width="150"
+ height="150"
+ style="fill:red;stroke:black;stroke-width:5;opacity:0.5"
+ />
+ <linearGradient gradientTransform="rotate(25)">
+ <stop offset="0%"></stop>
+ </linearGradient>
+ </svg>
+);
+
+const template2 = (
+ <svg width="400" height="180">
+ <rect
+ className={state.name}
+ stroke-width={state.width}
+ x={state.x}
+ y={state.y}
+ rx="20"
+ ry="20"
+ width="150"
+ height="150"
+ style={{
+ fill: "red",
+ stroke: "black",
+ "stroke-width": props.stroke,
+ opacity: 0.5,
+ }}
+ />
+ </svg>
+);
+
+const template3 = (
+ <svg width="400" height="180">
+ <rect {...props} />
+ </svg>
+);
+
+const template4 = <rect x="50" y="20" width="150" height="150" />;
+
+const template5 = (
+ <>
+ <rect x="50" y="20" width="150" height="150" />
+ </>
+);
+
+const template6 = (
+ <Component>
+ <rect x="50" y="20" width="150" height="150" />
+ </Component>
+);
+
+const template7 = (
+ <svg viewBox={"0 0 160 40"} xmlns="http://www.w3.org/2000/svg">
+ <a xlink:href={url}>
+ <text x="10" y="25">
+ MDN Web Docs
+ </text>
+ </a>
+ </svg>
+);
+
+const template8 = (
+ <svg viewBox={"0 0 160 40"} xmlns="http://www.w3.org/2000/svg">
+ <text x="10" y="25" textContent={text} />
+ </svg>
+);
diff --git a/test/bun.js/solid-dom-fixtures/SVG/output.bun.js b/test/bun.js/solid-dom-fixtures/SVG/output.bun.js
new file mode 100644
index 000000000..44d092f15
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/SVG/output.bun.js
@@ -0,0 +1,33 @@
+var _tmpl$1 = _template$('<svg width="400" height="180"><rect stroke-width="2" x="50" y="20" rx="20" ry="20" width="150" height="150"/><linearGradient gradientTransform="rotate(25)"><stop offset="0%"/></linearGradient></svg>', 4), _tmpl$2 = _template$('<svg width="400" height="180"><rect rx="20" ry="20" width="150" height="150"/></svg>', 2), _tmpl$3 = _template$('<svg width="400" height="180"><rect/></svg>', 2), _tmpl$4 = _template$('<rect x="50" y="20" width="150" height="150"/>', 0), _tmpl$5 = _template$('<svg viewBox="0 0 160 40" xmlns="http://www.w3.org/2000/svg"><a><text x="10" y="25">MDN Web Docs</text></a></svg>', 6), _tmpl$6 = _template$('<svg viewBox="0 0 160 40" xmlns="http://www.w3.org/2000/svg"><text x="10" y="25"/></svg>', 2);
+const template = _tmpl$1.cloneNode(true);
+const template2 = () => {
+ var _el = _tmpl$1.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "className", state.name);
+ });
+ effect(() => {
+ return setAttribute(_el, "stroke-width", state.width);
+ });
+ effect(() => {
+ return setAttribute(_el, "x", state.x);
+ });
+ effect(() => {
+ return setAttribute(_el, "y", state.y);
+ });
+ ;
+ return _el;
+};
+const template3 = _tmpl$3.cloneNode(true);
+const template4 = _tmpl$4.cloneNode(true);
+const template5 = ;
+const template6 = createComponent(Component, {});
+const template7 = () => {
+ var _el = _tmpl$4.cloneNode(true);
+ setAttribute(_el, "xlink:href", url);
+ return _el;
+};
+const template8 = () => {
+ var _el = _tmpl$5.cloneNode(true);
+ setAttribute(_el, "textContent", text);
+ return _el;
+};
diff --git a/test/bun.js/solid-dom-fixtures/SVG/output.js b/test/bun.js/solid-dom-fixtures/SVG/output.js
new file mode 100644
index 000000000..edac460af
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/SVG/output.js
@@ -0,0 +1,108 @@
+import { template as _$template } from "r-dom";
+import { setAttributeNS as _$setAttributeNS } from "r-dom";
+import { createComponent as _$createComponent } from "r-dom";
+import { spread as _$spread } from "r-dom";
+import { setAttribute as _$setAttribute } from "r-dom";
+import { effect as _$effect } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(
+ `<svg width="400" height="180"><rect stroke-width="2" x="50" y="20" rx="20" ry="20" width="150" height="150" style="fill:red;stroke:black;stroke-width:5;opacity:0.5"></rect><linearGradient gradientTransform="rotate(25)"><stop offset="0%"></stop></linearGradient></svg>`,
+ 8
+ ),
+ _tmpl$2 = /*#__PURE__*/ _$template(
+ `<svg width="400" height="180"><rect rx="20" ry="20" width="150" height="150"></rect></svg>`,
+ 4
+ ),
+ _tmpl$3 = /*#__PURE__*/ _$template(
+ `<svg width="400" height="180"><rect></rect></svg>`,
+ 4
+ ),
+ _tmpl$4 = /*#__PURE__*/ _$template(
+ `<svg><rect x="50" y="20" width="150" height="150"></rect></svg>`,
+ 4,
+ true
+ ),
+ _tmpl$5 = /*#__PURE__*/ _$template(
+ `<svg viewBox="0 0 160 40" xmlns="http://www.w3.org/2000/svg"><a><text x="10" y="25">MDN Web Docs</text></a></svg>`,
+ 6
+ ),
+ _tmpl$6 = /*#__PURE__*/ _$template(
+ `<svg viewBox="0 0 160 40" xmlns="http://www.w3.org/2000/svg"><text x="10" y="25"></text></svg>`,
+ 4
+ );
+
+const template = _tmpl$.cloneNode(true);
+
+const template2 = (() => {
+ const _el$2 = _tmpl$2.cloneNode(true),
+ _el$3 = _el$2.firstChild;
+
+ _el$3.style.setProperty("fill", "red");
+
+ _el$3.style.setProperty("stroke", "black");
+
+ _el$3.style.setProperty("opacity", "0.5");
+
+ _$effect(
+ (_p$) => {
+ const _v$ = state.name,
+ _v$2 = state.width,
+ _v$3 = state.x,
+ _v$4 = state.y,
+ _v$5 = props.stroke;
+ _v$ !== _p$._v$ && _$setAttribute(_el$3, "class", (_p$._v$ = _v$));
+ _v$2 !== _p$._v$2 &&
+ _$setAttribute(_el$3, "stroke-width", (_p$._v$2 = _v$2));
+ _v$3 !== _p$._v$3 && _$setAttribute(_el$3, "x", (_p$._v$3 = _v$3));
+ _v$4 !== _p$._v$4 && _$setAttribute(_el$3, "y", (_p$._v$4 = _v$4));
+ _v$5 !== _p$._v$5 &&
+ _el$3.style.setProperty("stroke-width", (_p$._v$5 = _v$5));
+ return _p$;
+ },
+ {
+ _v$: undefined,
+ _v$2: undefined,
+ _v$3: undefined,
+ _v$4: undefined,
+ _v$5: undefined,
+ }
+ );
+
+ return _el$2;
+})();
+
+const template3 = (() => {
+ const _el$4 = _tmpl$3.cloneNode(true),
+ _el$5 = _el$4.firstChild;
+
+ _$spread(_el$5, props, true, false);
+
+ return _el$4;
+})();
+
+const template4 = _tmpl$4.cloneNode(true);
+
+const template5 = _tmpl$4.cloneNode(true);
+
+const template6 = _$createComponent(Component, {
+ get children() {
+ return _tmpl$4.cloneNode(true);
+ },
+});
+
+const template7 = (() => {
+ const _el$9 = _tmpl$5.cloneNode(true),
+ _el$10 = _el$9.firstChild;
+
+ _$setAttributeNS(_el$10, "http://www.w3.org/1999/xlink", "xlink:href", url);
+
+ return _el$9;
+})();
+
+const template8 = (() => {
+ const _el$11 = _tmpl$6.cloneNode(true),
+ _el$12 = _el$11.firstChild;
+
+ _el$12.textContent = text;
+ return _el$11;
+})();
diff --git a/test/bun.js/solid-dom-fixtures/attributeExpressions/code.js b/test/bun.js/solid-dom-fixtures/attributeExpressions/code.js
new file mode 100644
index 000000000..b64949434
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/attributeExpressions/code.js
@@ -0,0 +1,115 @@
+const selected = true;
+let id = "my-h1";
+let link;
+const template = (
+ <div
+ id="main"
+ {...results}
+ classList={{ selected: unknown }}
+ style={{ color }}
+ >
+ <h1
+ class="base"
+ id={id}
+ {...results()}
+ disabled
+ readonly=""
+ title={welcoming()}
+ style={{ "background-color": color(), "margin-right": "40px" }}
+ classList={{ dynamic: dynamic(), selected }}
+ >
+ <a href={"/"} ref={link} classList={{ "ccc ddd": true }} readonly={value}>
+ Welcome
+ </a>
+ </h1>
+ </div>
+);
+
+const template2 = (
+ <div {...getProps("test")}>
+ <div textContent={rowId} />
+ <div textContent={row.label} />
+ <div innerHTML={"<div/>"} />
+ </div>
+);
+
+const template3 = (
+ <div
+ id={/*@once*/ state.id}
+ style={/*@once*/ { "background-color": state.color }}
+ name={state.name}
+ textContent={/*@once*/ state.content}
+ />
+);
+
+const template4 = (
+ <div class="hi" className={state.class} classList={{ "ccc:ddd": true }} />
+);
+
+const template5 = <div class="a" className="b"></div>;
+
+const template6 = <div style={someStyle()} textContent="Hi" />;
+
+const template7 = (
+ <div
+ style={{
+ "background-color": color(),
+ "margin-right": "40px",
+ ...props.style,
+ }}
+ style:padding-top={props.top}
+ class:my-class={props.active}
+ />
+);
+
+let refTarget;
+const template8 = <div ref={refTarget} />;
+
+const template9 = <div ref={(e) => console.log(e)} />;
+
+const template10 = <div ref={refFactory()} />;
+
+const template11 = <div use:something use:another={thing} use:zero={0} />;
+
+const template12 = <div prop:htmlFor={thing} />;
+
+const template13 = <input type="checkbox" checked={true} />;
+
+const template14 = <input type="checkbox" checked={state.visible} />;
+
+const template15 = <div class="`a">`$`</div>;
+
+const template16 = (
+ <button
+ class="static"
+ classList={{
+ hi: "k",
+ }}
+ type="button"
+ >
+ Write
+ </button>
+);
+
+const template17 = (
+ <button
+ classList={{
+ a: true,
+ b: true,
+ c: true,
+ }}
+ onClick={increment}
+ >
+ Hi
+ </button>
+);
+
+const template18 = (
+ <div
+ {...{
+ get [key()]() {
+ return props.value;
+ },
+ }}
+ />
+);
diff --git a/test/bun.js/solid-dom-fixtures/attributeExpressions/output.bun.js b/test/bun.js/solid-dom-fixtures/attributeExpressions/output.bun.js
new file mode 100644
index 000000000..4bb3e1b39
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/attributeExpressions/output.bun.js
@@ -0,0 +1,155 @@
+var _tmpl = _template$(
+ '<div id="main"><h1 class="base" disabled readonly><a href="/">Welcome</a></h1></div>',
+ 6
+ ),
+ _tmpl$2 = _template$(
+ '<div><div/><div/><div innerHTML="&lt;div/&gt;"/></div>',
+ 2
+ ),
+ _tmpl$2 = _template$("<div/>", 0),
+ _tmpl$3 = _template$('<div class="hi"/>', 0),
+ _tmpl$5 = _template$('<div class="a" class="b"/>', 0),
+ _tmpl$5 = _template$('<div textContent="Hi"/>', 0),
+ _tmpl$6 = _template$("<div use:something use:zero=0/>", 0),
+ _tmpl$8 = _template$('<input type="checkbox" checked/>', 0),
+ _tmpl$8 = _template$('<input type="checkbox"/>', 0),
+ _tmpl$10 = _template$('<div class="`a">`$`</div>', 2),
+ _tmpl$10 = _template$(
+ '<button class="static" type="button">Write</button>',
+ 2
+ ),
+ _tmpl$11 = _template$("<button>Hi</button>", 2);
+const selected = true;
+let id = "my-h1";
+let link;
+const template = () => {
+ var _el = _tmpl.cloneNode(true),
+ _el$1 = _el.firstChild,
+ _el$2 = _el$1.nextSibling;
+ effect(() => {
+ return setAttribute(_el, "classList", { selected: unknown });
+ });
+ setAttribute(_el$1, "id", id);
+ effect(() => {
+ return setAttribute(_el$1, "title", welcoming());
+ });
+ effect(() => {
+ return setAttribute(_el$1, "classList", { dynamic: dynamic(), selected });
+ });
+ setAttribute(_el$2, "ref", link);
+ effect(() => {
+ return setAttribute(_el$2, "classList", { "ccc ddd": true });
+ });
+ setAttribute(_el$2, "readonly", value);
+ return _el;
+};
+const template2 = () => {
+ var _el = _tmpl$1.cloneNode(true),
+ _el$1 = _el.firstChild;
+ setAttribute(_el, "textContent", rowId);
+ effect(() => {
+ return setAttribute(_el$1, "textContent", row.label);
+ });
+ return _el;
+};
+const template3 = () => {
+ var _el = _tmpl$2.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "id", state.id);
+ });
+ effect(() => {
+ return setAttribute(_el, "name", state.name);
+ });
+ effect(() => {
+ return setAttribute(_el, "textContent", state.content);
+ });
+ return _el;
+};
+const template4 = () => {
+ var _el = _tmpl$3.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "className", state.class);
+ });
+ effect(() => {
+ return setAttribute(_el, "classList", { "ccc:ddd": true });
+ });
+ return _el;
+};
+const template5 = _tmpl$5.cloneNode(true);
+const template6 = () => {
+ var _el = _tmpl$5.cloneNode(true);
+ return _el;
+};
+const template7 = () => {
+ var _el = _tmpl$2.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "style:padding-top", props.top);
+ });
+ effect(() => {
+ return setAttribute(_el, "class:my-class", props.active);
+ });
+ return _el;
+};
+let refTarget;
+const template8 = () => {
+ var _el = _tmpl$2.cloneNode(true);
+ setAttribute(_el, "ref", refTarget);
+ return _el;
+};
+const template9 = () => {
+ var _el = _tmpl$2.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "ref", (e) => console.log(e));
+ });
+ return _el;
+};
+const template10 = () => {
+ var _el = _tmpl$2.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "ref", refFactory());
+ });
+ return _el;
+};
+const template11 = () => {
+ var _el = _tmpl$6.cloneNode(true);
+ setAttribute(_el, "use:another", thing);
+ return _el;
+};
+const template12 = () => {
+ var _el = _tmpl$2.cloneNode(true);
+ setAttribute(_el, "prop:htmlFor", thing);
+ return _el;
+};
+const template13 = _tmpl$8.cloneNode(true);
+const template14 = () => {
+ var _el = _tmpl$8.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "checked", state.visible);
+ });
+ return _el;
+};
+const template15 = _tmpl$10.cloneNode(true);
+const template16 = () => {
+ var _el = _tmpl$10.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "classList", {
+ hi: "k",
+ });
+ });
+ return _el;
+};
+const template17 = () => {
+ var _el = _tmpl$11.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "classList", {
+ a: true,
+ b: true,
+ c: true,
+ });
+ });
+ effect(() => {
+ return (_el.$$click = increment);
+ });
+ return _el;
+};
+const template18 = _tmpl$2.cloneNode(true);
diff --git a/test/bun.js/solid-dom-fixtures/attributeExpressions/output.js b/test/bun.js/solid-dom-fixtures/attributeExpressions/output.js
new file mode 100644
index 000000000..14f700218
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/attributeExpressions/output.js
@@ -0,0 +1,241 @@
+const _tmpl$ = /*#__PURE__*/ _$template(
+ `<div id="main"><h1 class="base selected" id="my-h1" disabled readonly=""><a href="/">Welcome</a></h1></div>`,
+ 6
+ ),
+ _tmpl$2 = /*#__PURE__*/ _$template(
+ `<div><div></div><div> </div><div></div></div>`,
+ 8
+ ),
+ _tmpl$3 = /*#__PURE__*/ _$template(`<div></div>`, 2),
+ _tmpl$4 = /*#__PURE__*/ _$template(`<div class="a b"></div>`, 2),
+ _tmpl$5 = /*#__PURE__*/ _$template(`<input type="checkbox">`, 1),
+ _tmpl$6 = /*#__PURE__*/ _$template(`<div class="\`a">\`$\`</div>`, 2),
+ _tmpl$7 = /*#__PURE__*/ _$template(
+ `<button class="static hi" type="button">Write</button>`,
+ 2
+ ),
+ _tmpl$8 = /*#__PURE__*/ _$template(`<button class="a b c">Hi</button>`, 2);
+
+const selected = true;
+let id = "my-h1";
+let link;
+
+const template = (() => {
+ const _el$ = _tmpl$.cloneNode(true),
+ _el$2 = _el$.firstChild,
+ _el$3 = _el$2.firstChild;
+
+ _$spread(_el$, results, false, true);
+
+ _el$.classList.toggle("selected", unknown);
+
+ _el$.style.setProperty("color", color);
+
+ _$spread(_el$2, results, false, true);
+
+ _el$2.style.setProperty("margin-right", "40px");
+
+ const _ref$ = link;
+ typeof _ref$ === "function" ? _ref$(_el$3) : (link = _el$3);
+
+ _$classList(_el$3, {
+ "ccc ddd": true,
+ });
+
+ _el$3.readOnly = value;
+
+ _$effect(
+ (_p$) => {
+ const _v$ = welcoming(),
+ _v$2 = color(),
+ _v$3 = !!dynamic();
+
+ _v$ !== _p$._v$ && _$setAttribute(_el$2, "title", (_p$._v$ = _v$));
+ _v$2 !== _p$._v$2 &&
+ _el$2.style.setProperty("background-color", (_p$._v$2 = _v$2));
+ _v$3 !== _p$._v$3 && _el$2.classList.toggle("dynamic", (_p$._v$3 = _v$3));
+ return _p$;
+ },
+ {
+ _v$: undefined,
+ _v$2: undefined,
+ _v$3: undefined,
+ }
+ );
+
+ return _el$;
+})();
+
+const template2 = (() => {
+ const _el$4 = _tmpl$2.cloneNode(true),
+ _el$5 = _el$4.firstChild,
+ _el$6 = _el$5.nextSibling,
+ _el$7 = _el$6.firstChild,
+ _el$8 = _el$6.nextSibling;
+
+ _$spread(_el$4, () => getProps("test"), false, true);
+
+ _el$5.textContent = rowId;
+ _el$8.innerHTML = "<div/>";
+
+ _$effect(() => (_el$7.data = row.label));
+
+ return _el$4;
+})();
+
+const template3 = (() => {
+ const _el$9 = _tmpl$3.cloneNode(true);
+
+ _$setAttribute(_el$9, "id", state.id);
+
+ _el$9.style.setProperty("background-color", state.color);
+
+ _el$9.textContent = state.content;
+
+ _$effect(() => _$setAttribute(_el$9, "name", state.name));
+
+ return _el$9;
+})();
+
+const template4 = (() => {
+ const _el$10 = _tmpl$3.cloneNode(true);
+
+ _$classList(_el$10, {
+ "ccc:ddd": true,
+ });
+
+ _$effect(() => _$className(_el$10, `hi ${state.class || ""}`));
+
+ return _el$10;
+})();
+
+const template5 = _tmpl$4.cloneNode(true);
+
+const template6 = (() => {
+ const _el$12 = _tmpl$3.cloneNode(true);
+
+ _el$12.textContent = "Hi";
+
+ _$effect((_$p) => _$style(_el$12, someStyle(), _$p));
+
+ return _el$12;
+})();
+
+const template7 = (() => {
+ const _el$13 = _tmpl$3.cloneNode(true);
+
+ _$effect(
+ (_p$) => {
+ const _v$4 = {
+ "background-color": color(),
+ "margin-right": "40px",
+ ...props.style,
+ },
+ _v$5 = props.top,
+ _v$6 = !!props.active;
+
+ _p$._v$4 = _$style(_el$13, _v$4, _p$._v$4);
+ _v$5 !== _p$._v$5 &&
+ _el$13.style.setProperty("padding-top", (_p$._v$5 = _v$5));
+ _v$6 !== _p$._v$6 &&
+ _el$13.classList.toggle("my-class", (_p$._v$6 = _v$6));
+ return _p$;
+ },
+ {
+ _v$4: undefined,
+ _v$5: undefined,
+ _v$6: undefined,
+ }
+ );
+
+ return _el$13;
+})();
+
+let refTarget;
+
+const template8 = (() => {
+ const _el$14 = _tmpl$3.cloneNode(true);
+
+ const _ref$2 = refTarget;
+ typeof _ref$2 === "function" ? _ref$2(_el$14) : (refTarget = _el$14);
+ return _el$14;
+})();
+
+const template9 = (() => {
+ const _el$15 = _tmpl$3.cloneNode(true);
+
+ ((e) => console.log(e))(_el$15);
+
+ return _el$15;
+})();
+
+const template10 = (() => {
+ const _el$16 = _tmpl$3.cloneNode(true);
+
+ const _ref$3 = refFactory();
+
+ typeof _ref$3 === "function" && _ref$3(_el$16);
+ return _el$16;
+})();
+
+const template11 = (() => {
+ const _el$17 = _tmpl$3.cloneNode(true);
+
+ zero(_el$17, () => 0);
+ another(_el$17, () => thing);
+ something(_el$17, () => true);
+ return _el$17;
+})();
+
+const template12 = (() => {
+ const _el$18 = _tmpl$3.cloneNode(true);
+
+ _el$18.htmlFor = thing;
+ return _el$18;
+})();
+
+const template13 = (() => {
+ const _el$19 = _tmpl$5.cloneNode(true);
+
+ _el$19.checked = true;
+ return _el$19;
+})();
+
+const template14 = (() => {
+ const _el$20 = _tmpl$5.cloneNode(true);
+
+ _$effect(() => (_el$20.checked = state.visible));
+
+ return _el$20;
+})();
+
+const template15 = _tmpl$6.cloneNode(true);
+
+const template16 = _tmpl$7.cloneNode(true);
+
+const template17 = (() => {
+ const _el$23 = _tmpl$8.cloneNode(true);
+
+ _$addEventListener(_el$23, "click", increment, true);
+
+ return _el$23;
+})();
+
+const template18 = (() => {
+ const _el$24 = _tmpl$3.cloneNode(true);
+
+ _$spread(
+ _el$24,
+ () => ({
+ get [key()]() {
+ return props.value;
+ },
+ }),
+ false,
+ false
+ );
+
+ return _el$24;
+})();
+
+_$delegateEvents(["click"]);
diff --git a/test/bun.js/solid-dom-fixtures/components/code.js b/test/bun.js/solid-dom-fixtures/components/code.js
new file mode 100644
index 000000000..f3bd159d6
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/components/code.js
@@ -0,0 +1,161 @@
+import { Show } from "somewhere";
+
+const Child = (props) => {
+ const [s, set] = createSignal();
+ return (
+ <>
+ <div ref={props.ref}>Hello {props.name}</div>
+ <div ref={set}>{props.children}</div>
+ </>
+ );
+};
+
+const template = (props) => {
+ let childRef;
+ const { content } = props;
+ return (
+ <div>
+ <Child name="John" {...props} ref={childRef} booleanProperty>
+ <div>From Parent</div>
+ </Child>
+ <Child name="Jason" {...dynamicSpread()} ref={props.ref}>
+ {/* Comment Node */}
+ <div>{content}</div>
+ </Child>
+ <Context.Consumer ref={props.consumerRef()}>
+ {(context) => context}
+ </Context.Consumer>
+ </div>
+ );
+};
+
+const template2 = (
+ <Child
+ name="Jake"
+ dynamic={state.data}
+ stale={/*@once*/ state.data}
+ handleClick={clickHandler}
+ hyphen-ated={state.data}
+ ref={(el) => (e = el)}
+ />
+);
+
+const template3 = (
+ <Child>
+ <div />
+ <div />
+ <div />
+ After
+ </Child>
+);
+
+const [s, set] = createSignal();
+const template4 = <Child ref={set}>{<div />}</Child>;
+
+const template5 = <Child dynamic={state.dynamic}>{state.dynamic}</Child>;
+
+// builtIns
+const template6 = (
+ <For each={state.list} fallback={<Loading />}>
+ {(item) => <Show when={state.condition}>{item}</Show>}
+ </For>
+);
+
+const template7 = (
+ <Child>
+ <div />
+ {state.dynamic}
+ </Child>
+);
+
+const template8 = (
+ <Child>
+ {(item) => item}
+ {(item) => item}
+ </Child>
+);
+
+const template9 = <_garbage>Hi</_garbage>;
+
+const template10 = (
+ <div>
+ <Link>new</Link>
+ {" | "}
+ <Link>comments</Link>
+ {" | "}
+ <Link>show</Link>
+ {" | "}
+ <Link>ask</Link>
+ {" | "}
+ <Link>jobs</Link>
+ {" | "}
+ <Link>submit</Link>
+ </div>
+);
+
+const template11 = (
+ <div>
+ <Link>new</Link>
+ {" | "}
+ <Link>comments</Link>
+ <Link>show</Link>
+ {" | "}
+ <Link>ask</Link>
+ <Link>jobs</Link>
+ {" | "}
+ <Link>submit</Link>
+ </div>
+);
+
+const template12 = (
+ <div>
+ {" | "}
+ <Link>comments</Link>
+ {" | "}
+ {" | "}
+ {" | "}
+ <Link>show</Link>
+ {" | "}
+ </div>
+);
+
+class Template13 {
+ render() {
+ <Component prop={this.something} onClick={() => this.shouldStay}>
+ <Nested prop={this.data}>{this.content}</Nested>
+ </Component>;
+ }
+}
+
+const Template14 = <Component>{data()}</Component>;
+
+const Template15 = <Component {...props} />;
+
+const Template16 = <Component something={something} {...props} />;
+
+const Template17 = (
+ <Pre>
+ <span>1</span> <span>2</span> <span>3</span>
+ </Pre>
+);
+const Template18 = (
+ <Pre>
+ <span>1</span>
+ <span>2</span>
+ <span>3</span>
+ </Pre>
+);
+
+const Template19 = <Component {...s.dynamic()} />;
+
+const Template20 = <Component class={prop.red ? "red" : "green"} />;
+
+const template21 = (
+ <Component
+ {...{
+ get [key()]() {
+ return props.value;
+ },
+ }}
+ />
+);
diff --git a/test/bun.js/solid-dom-fixtures/components/output.bun.js b/test/bun.js/solid-dom-fixtures/components/output.bun.js
new file mode 100644
index 000000000..5ab4d5614
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/components/output.bun.js
@@ -0,0 +1,205 @@
+var _tmpl = _template$("<div><div>From Parent</div><div</div></div>", 9), _tmpl$1 = _template$("<div> | | | | | </div>", 8), _tmpl$2 = _template$("<div> | | | </div>", 8);
+import {Show} from "somewhere";
+const Child = (props) => {
+ const [s, set] = createSignal();
+ return ;
+};
+const template = (props) => {
+ let childRef;
+ const { content } = props;
+ return () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, createComponent(Child, {
+ name: "John",
+ ref: childRef,
+ booleanProperty: true
+ }), null);
+ insert(_tmpl, content, null);
+ insert(_tmpl, createComponent(Child, {
+ name: "Jason",
+ ref: props.ref
+ }), null);
+ insert(_tmpl, createComponent(Context.Consumer, {
+ ref: props.consumerRef(),
+ get children: [
+ (context) => context
+ ]
+ }), null);
+ return _tmpl;
+ };
+};
+const template2 = createComponent(Child, {
+ name: "Jake",
+ dynamic: state.data,
+ stale: state.data,
+ handleClick: clickHandler,
+ "hyphen-ated": state.data,
+ get ref: () => {
+ return (el) => e = el;
+ }
+});
+const template3 = createComponent(Child, {
+ get children: [
+ "After"
+ ]
+});
+const [s, set] = createSignal();
+const template4 = createComponent(Child, {
+ ref: set
+});
+const template5 = createComponent(Child, {
+ dynamic: state.dynamic,
+ get children: [
+ state.dynamic
+ ]
+});
+const template6 = createComponent(For, {
+ each: state.list,
+ fallback: ,
+ get children: [
+ (item) => createComponent(Show, {
+ when: state.condition,
+ get children: [
+ item
+ ]
+ })
+ ]
+});
+const template7 = createComponent(Child, {
+ get children: [
+ state.dynamic
+ ]
+});
+const template8 = createComponent(Child, {
+ get children: [
+ (item) => item,
+ (item) => item
+ ]
+});
+const template9 = createComponent(_garbage, {
+ get children: [
+ "Hi"
+ ]
+});
+const template10 = () => {
+ var _tmpl$1 = _tmpl$1.cloneNode(true);
+ insert(_tmpl$1, createComponent(Link, {
+ get children: [
+ "new"
+ ]
+ }), null);
+ insert(_tmpl$1, createComponent(Link, {
+ get children: [
+ "comments"
+ ]
+ }), null);
+ insert(_tmpl$1, createComponent(Link, {
+ get children: [
+ "show"
+ ]
+ }), null);
+ insert(_tmpl$1, createComponent(Link, {
+ get children: [
+ "ask"
+ ]
+ }), null);
+ insert(_tmpl$1, createComponent(Link, {
+ get children: [
+ "jobs"
+ ]
+ }), null);
+ insert(_tmpl$1, createComponent(Link, {
+ get children: [
+ "submit"
+ ]
+ }), null);
+ return _tmpl$1;
+};
+const template11 = () => {
+ var _tmpl$2 = _tmpl$2.cloneNode(true);
+ insert(_tmpl$2, createComponent(Link, {
+ get children: [
+ "new"
+ ]
+ }), null);
+ insert(_tmpl$2, createComponent(Link, {
+ get children: [
+ "comments"
+ ]
+ }), null);
+ insert(_tmpl$2, createComponent(Link, {
+ get children: [
+ "show"
+ ]
+ }), null);
+ insert(_tmpl$2, createComponent(Link, {
+ get children: [
+ "ask"
+ ]
+ }), null);
+ insert(_tmpl$2, createComponent(Link, {
+ get children: [
+ "jobs"
+ ]
+ }), null);
+ insert(_tmpl$2, createComponent(Link, {
+ get children: [
+ "submit"
+ ]
+ }), null);
+ return _tmpl$2;
+};
+const template12 = () => {
+ var _tmpl$1 = _tmpl$1.cloneNode(true);
+ insert(_tmpl$1, createComponent(Link, {
+ get children: [
+ "comments"
+ ]
+ }), null);
+ insert(_tmpl$1, createComponent(Link, {
+ get children: [
+ "show"
+ ]
+ }), null);
+ return _tmpl$1;
+};
+
+class Template13 {
+ render() {
+ createComponent(Component, {
+ prop: this.something,
+ get onClick: () => {
+ return () => this.shouldStay;
+ },
+ get children: [
+ createComponent(Nested, {
+ prop: this.data,
+ get children: [
+ this.content
+ ]
+ })
+ ]
+ });
+ }
+}
+const Template14 = createComponent(Component, {
+ get children: [
+ data()
+ ]
+});
+const Template15 = createComponent(Component, {});
+const Template16 = createComponent(Component, {
+ something
+});
+const Template17 = createComponent(Pre, {
+ get children: [
+ " ",
+ " "
+ ]
+});
+const Template18 = createComponent(Pre, {});
+const Template19 = createComponent(Component, {});
+const Template20 = createComponent(Component, {
+ class: prop.red ? "red" : "green"
+});
+const template21 = createComponent(Component, {});
diff --git a/test/bun.js/solid-dom-fixtures/components/output.js b/test/bun.js/solid-dom-fixtures/components/output.js
new file mode 100644
index 000000000..0c49d60a3
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/components/output.js
@@ -0,0 +1,443 @@
+import { template as _$template } from "r-dom";
+import { memo as _$memo } from "r-dom";
+import { For as _$For } from "r-dom";
+import { createComponent as _$createComponent } from "r-dom";
+import { mergeProps as _$mergeProps } from "r-dom";
+import { insert as _$insert } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(`<div>Hello </div>`, 2),
+ _tmpl$2 = /*#__PURE__*/ _$template(`<div></div>`, 2),
+ _tmpl$3 = /*#__PURE__*/ _$template(`<div>From Parent</div>`, 2),
+ _tmpl$4 = /*#__PURE__*/ _$template(
+ `<div> | <!> | <!> | <!> | <!> | </div>`,
+ 6
+ ),
+ _tmpl$5 = /*#__PURE__*/ _$template(`<div> | <!> | <!> | </div>`, 4),
+ _tmpl$6 = /*#__PURE__*/ _$template(`<div> | <!> | | | <!> | </div>`, 4),
+ _tmpl$7 = /*#__PURE__*/ _$template(`<span>1</span>`, 2),
+ _tmpl$8 = /*#__PURE__*/ _$template(`<span>2</span>`, 2),
+ _tmpl$9 = /*#__PURE__*/ _$template(`<span>3</span>`, 2);
+
+import { Show } from "somewhere";
+
+const Child = (props) => {
+ const [s, set] = createSignal();
+ return [
+ (() => {
+ const _el$ = _tmpl$.cloneNode(true),
+ _el$2 = _el$.firstChild;
+
+ const _ref$ = props.ref;
+ typeof _ref$ === "function" ? _ref$(_el$) : (props.ref = _el$);
+
+ _$insert(_el$, () => props.name, null);
+
+ return _el$;
+ })(),
+ (() => {
+ const _el$3 = _tmpl$2.cloneNode(true);
+
+ set(_el$3);
+
+ _$insert(_el$3, () => props.children);
+
+ return _el$3;
+ })(),
+ ];
+};
+
+const template = (props) => {
+ let childRef;
+ const { content } = props;
+ return (() => {
+ const _el$4 = _tmpl$2.cloneNode(true);
+
+ _$insert(
+ _el$4,
+ _$createComponent(
+ Child,
+ _$mergeProps(
+ {
+ name: "John",
+ },
+ props,
+ {
+ ref(r$) {
+ const _ref$2 = childRef;
+ typeof _ref$2 === "function" ? _ref$2(r$) : (childRef = r$);
+ },
+
+ booleanProperty: true,
+
+ get children() {
+ return _tmpl$3.cloneNode(true);
+ },
+ }
+ )
+ ),
+ null
+ );
+
+ _$insert(
+ _el$4,
+ _$createComponent(
+ Child,
+ _$mergeProps(
+ {
+ name: "Jason",
+ },
+ dynamicSpread,
+ {
+ ref(r$) {
+ const _ref$3 = props.ref;
+ typeof _ref$3 === "function" ? _ref$3(r$) : (props.ref = r$);
+ },
+
+ get children() {
+ const _el$6 = _tmpl$2.cloneNode(true);
+
+ _$insert(_el$6, content);
+
+ return _el$6;
+ },
+ }
+ )
+ ),
+ null
+ );
+
+ _$insert(
+ _el$4,
+ _$createComponent(Context.Consumer, {
+ ref(r$) {
+ const _ref$4 = props.consumerRef();
+
+ typeof _ref$4 === "function" && _ref$4(r$);
+ },
+
+ children: (context) => context,
+ }),
+ null
+ );
+
+ return _el$4;
+ })();
+};
+
+const template2 = _$createComponent(Child, {
+ name: "Jake",
+
+ get dynamic() {
+ return state.data;
+ },
+
+ stale: state.data,
+ handleClick: clickHandler,
+
+ get ["hyphen-ated"]() {
+ return state.data;
+ },
+
+ ref: (el) => (e = el),
+});
+
+const template3 = _$createComponent(Child, {
+ get children() {
+ return [
+ _tmpl$2.cloneNode(true),
+ _tmpl$2.cloneNode(true),
+ _tmpl$2.cloneNode(true),
+ "After",
+ ];
+ },
+});
+
+const [s, set] = createSignal();
+
+const template4 = _$createComponent(Child, {
+ ref: set,
+
+ get children() {
+ return _tmpl$2.cloneNode(true);
+ },
+});
+
+const template5 = _$createComponent(Child, {
+ get dynamic() {
+ return state.dynamic;
+ },
+
+ get children() {
+ return state.dynamic;
+ },
+}); // builtIns
+
+const template6 = _$createComponent(_$For, {
+ get each() {
+ return state.list;
+ },
+
+ get fallback() {
+ return _$createComponent(Loading, {});
+ },
+
+ children: (item) =>
+ _$createComponent(Show, {
+ get when() {
+ return state.condition;
+ },
+
+ children: item,
+ }),
+});
+
+const template7 = _$createComponent(Child, {
+ get children() {
+ return [_tmpl$2.cloneNode(true), _$memo(() => state.dynamic)];
+ },
+});
+
+const template8 = _$createComponent(Child, {
+ get children() {
+ return [(item) => item, (item) => item];
+ },
+});
+
+const template9 = _$createComponent(_garbage, {
+ children: "Hi",
+});
+
+const template10 = (() => {
+ const _el$12 = _tmpl$4.cloneNode(true),
+ _el$13 = _el$12.firstChild,
+ _el$18 = _el$13.nextSibling,
+ _el$14 = _el$18.nextSibling,
+ _el$19 = _el$14.nextSibling,
+ _el$15 = _el$19.nextSibling,
+ _el$20 = _el$15.nextSibling,
+ _el$16 = _el$20.nextSibling,
+ _el$21 = _el$16.nextSibling,
+ _el$17 = _el$21.nextSibling;
+
+ _$insert(
+ _el$12,
+ _$createComponent(Link, {
+ children: "new",
+ }),
+ _el$13
+ );
+
+ _$insert(
+ _el$12,
+ _$createComponent(Link, {
+ children: "comments",
+ }),
+ _el$18
+ );
+
+ _$insert(
+ _el$12,
+ _$createComponent(Link, {
+ children: "show",
+ }),
+ _el$19
+ );
+
+ _$insert(
+ _el$12,
+ _$createComponent(Link, {
+ children: "ask",
+ }),
+ _el$20
+ );
+
+ _$insert(
+ _el$12,
+ _$createComponent(Link, {
+ children: "jobs",
+ }),
+ _el$21
+ );
+
+ _$insert(
+ _el$12,
+ _$createComponent(Link, {
+ children: "submit",
+ }),
+ null
+ );
+
+ return _el$12;
+})();
+
+const template11 = (() => {
+ const _el$22 = _tmpl$5.cloneNode(true),
+ _el$23 = _el$22.firstChild,
+ _el$26 = _el$23.nextSibling,
+ _el$24 = _el$26.nextSibling,
+ _el$27 = _el$24.nextSibling,
+ _el$25 = _el$27.nextSibling;
+
+ _$insert(
+ _el$22,
+ _$createComponent(Link, {
+ children: "new",
+ }),
+ _el$23
+ );
+
+ _$insert(
+ _el$22,
+ _$createComponent(Link, {
+ children: "comments",
+ }),
+ _el$26
+ );
+
+ _$insert(
+ _el$22,
+ _$createComponent(Link, {
+ children: "show",
+ }),
+ _el$26
+ );
+
+ _$insert(
+ _el$22,
+ _$createComponent(Link, {
+ children: "ask",
+ }),
+ _el$27
+ );
+
+ _$insert(
+ _el$22,
+ _$createComponent(Link, {
+ children: "jobs",
+ }),
+ _el$27
+ );
+
+ _$insert(
+ _el$22,
+ _$createComponent(Link, {
+ children: "submit",
+ }),
+ null
+ );
+
+ return _el$22;
+})();
+
+const template12 = (() => {
+ const _el$28 = _tmpl$6.cloneNode(true),
+ _el$29 = _el$28.firstChild,
+ _el$34 = _el$29.nextSibling,
+ _el$30 = _el$34.nextSibling,
+ _el$35 = _el$30.nextSibling,
+ _el$33 = _el$35.nextSibling;
+
+ _$insert(
+ _el$28,
+ _$createComponent(Link, {
+ children: "comments",
+ }),
+ _el$34
+ );
+
+ _$insert(
+ _el$28,
+ _$createComponent(Link, {
+ children: "show",
+ }),
+ _el$35
+ );
+
+ return _el$28;
+})();
+
+class Template13 {
+ render() {
+ const _self$ = this;
+
+ _$createComponent(Component, {
+ get prop() {
+ return _self$.something;
+ },
+
+ onClick: () => _self$.shouldStay,
+
+ get children() {
+ return _$createComponent(Nested, {
+ get prop() {
+ return _self$.data;
+ },
+
+ get children() {
+ return _self$.content;
+ },
+ });
+ },
+ });
+ }
+}
+
+const Template14 = _$createComponent(Component, {
+ get children() {
+ return data();
+ },
+});
+
+const Template15 = _$createComponent(Component, props);
+
+const Template16 = _$createComponent(
+ Component,
+ _$mergeProps(
+ {
+ something: something,
+ },
+ props
+ )
+);
+
+const Template17 = _$createComponent(Pre, {
+ get children() {
+ return [
+ _tmpl$7.cloneNode(true),
+ " ",
+ _tmpl$8.cloneNode(true),
+ " ",
+ _tmpl$9.cloneNode(true),
+ ];
+ },
+});
+
+const Template18 = _$createComponent(Pre, {
+ get children() {
+ return [
+ _tmpl$7.cloneNode(true),
+ _tmpl$8.cloneNode(true),
+ _tmpl$9.cloneNode(true),
+ ];
+ },
+});
+
+const Template19 = _$createComponent(
+ Component,
+ _$mergeProps(() => s.dynamic())
+);
+
+const Template20 = _$createComponent(Component, {
+ get ["class"]() {
+ return prop.red ? "red" : "green";
+ },
+});
+
+const template21 = _$createComponent(
+ Component,
+ _$mergeProps(() => ({
+ get [key()]() {
+ return props.value;
+ },
+ }))
+);
diff --git a/test/bun.js/solid-dom-fixtures/conditionalExpressions/code.js b/test/bun.js/solid-dom-fixtures/conditionalExpressions/code.js
new file mode 100644
index 000000000..80f1a6a4f
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/conditionalExpressions/code.js
@@ -0,0 +1,71 @@
+const template1 = <div>{simple}</div>;
+
+const template2 = <div>{state.dynamic}</div>;
+
+const template3 = <div>{simple ? good : bad}</div>;
+
+const template4 = <div>{simple ? good() : bad}</div>;
+
+const template5 = <div>{state.dynamic ? good() : bad}</div>;
+
+const template6 = <div>{state.dynamic && good()}</div>;
+
+const template7 = (
+ <div>{state.count > 5 ? (state.dynamic ? best : good()) : bad}</div>
+);
+
+const template8 = <div>{state.dynamic && state.something && good()}</div>;
+
+const template9 = <div>{(state.dynamic && good()) || bad}</div>;
+
+const template10 = (
+ <div>{state.a ? "a" : state.b ? "b" : state.c ? "c" : "fallback"}</div>
+);
+
+const template11 = (
+ <div>{state.a ? a() : state.b ? b() : state.c ? "c" : "fallback"}</div>
+);
+
+const template12 = <Comp render={state.dynamic ? good() : bad} />;
+
+// no dynamic predicate
+const template13 = <Comp render={state.dynamic ? good : bad} />;
+
+const template14 = <Comp render={state.dynamic && good()} />;
+
+// no dynamic predicate
+const template15 = <Comp render={state.dynamic && good} />;
+
+const template16 = <Comp render={state.dynamic || good()} />;
+
+const template17 = <Comp render={state.dynamic ? <Comp /> : <Comp />} />;
+
+const template18 = <Comp>{state.dynamic ? <Comp /> : <Comp />}</Comp>;
+
+const template19 = <div innerHTML={state.dynamic ? <Comp /> : <Comp />} />;
+
+const template20 = <div>{state.dynamic ? <Comp /> : <Comp />}</div>;
+
+const template21 = <Comp render={state?.dynamic ? "a" : "b"} />;
+
+const template22 = <Comp>{state?.dynamic ? "a" : "b"}</Comp>;
+
+const template23 = <div innerHTML={state?.dynamic ? "a" : "b"} />;
+
+const template24 = <div>{state?.dynamic ? "a" : "b"}</div>;
+
+const template25 = <Comp render={state.dynamic ?? <Comp />} />;
+
+const template26 = <Comp>{state.dynamic ?? <Comp />}</Comp>;
+
+const template27 = <div innerHTML={state.dynamic ?? <Comp />} />;
+
+const template28 = <div>{state.dynamic ?? <Comp />}</div>;
+
+const template29 = <div>{(thing() && thing1()) ?? thing2() ?? thing3()}</div>;
+
+const template30 = <div>{thing() || thing1() || thing2()}</div>;
+
+const template31 = (
+ <Comp value={count() ? (count() ? count() : count()) : count()} />
+);
diff --git a/test/bun.js/solid-dom-fixtures/conditionalExpressions/output.bun.js b/test/bun.js/solid-dom-fixtures/conditionalExpressions/output.bun.js
new file mode 100644
index 000000000..36c3f649b
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/conditionalExpressions/output.bun.js
@@ -0,0 +1,144 @@
+var _tmpl = template("<div</div>", 2), _tmpl$1 = template("<div/>", 0);
+const template1 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, simple, null);
+ return _tmpl;
+};
+const template2 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.dynamic, null);
+ return _tmpl;
+};
+const template3 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, simple ? good : bad, null);
+ return _tmpl;
+};
+const template4 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, simple ? good() : bad, null);
+ return _tmpl;
+};
+const template5 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.dynamic ? good() : bad, null);
+ return _tmpl;
+};
+const template6 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.dynamic && good(), null);
+ return _tmpl;
+};
+const template7 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.count > 5 ? state.dynamic ? best : good() : bad, null);
+ return _tmpl;
+};
+const template8 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.dynamic && state.something && good(), null);
+ return _tmpl;
+};
+const template9 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.dynamic && good() || bad, null);
+ return _tmpl;
+};
+const template10 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.a ? "a" : state.b ? "b" : state.c ? "c" : "fallback", null);
+ return _tmpl;
+};
+const template11 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.a ? a() : state.b ? b() : state.c ? "c" : "fallback", null);
+ return _tmpl;
+};
+const template12 = createComponent(Comp, {
+ render: state.dynamic ? good() : bad
+});
+const template13 = createComponent(Comp, {
+ render: state.dynamic ? good : bad
+});
+const template14 = createComponent(Comp, {
+ render: state.dynamic && good()
+});
+const template15 = createComponent(Comp, {
+ render: state.dynamic && good
+});
+const template16 = createComponent(Comp, {
+ render: state.dynamic || good()
+});
+const template17 = createComponent(Comp, {
+ render: state.dynamic ? createComponent(Comp, {}) : createComponent(Comp, {})
+});
+const template18 = createComponent(Comp, {
+ get children: [
+ state.dynamic ? createComponent(Comp, {}) : createComponent(Comp, {})
+ ]
+});
+const template19 = () => {
+ var _el = _tmpl$1.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "innerHTML", state.dynamic ? createComponent(Comp, {}) : createComponent(Comp, {}));
+ });
+ return _el;
+};
+const template20 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.dynamic ? createComponent(Comp, {}) : createComponent(Comp, {}), null);
+ return _tmpl;
+};
+const template21 = createComponent(Comp, {
+ render: state?.dynamic ? "a" : "b"
+});
+const template22 = createComponent(Comp, {
+ get children: [
+ state?.dynamic ? "a" : "b"
+ ]
+});
+const template23 = () => {
+ var _el = _tmpl$1.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "innerHTML", state?.dynamic ? "a" : "b");
+ });
+ return _el;
+};
+const template24 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state?.dynamic ? "a" : "b", null);
+ return _tmpl;
+};
+const template25 = createComponent(Comp, {
+ render: state.dynamic ?? createComponent(Comp, {})
+});
+const template26 = createComponent(Comp, {
+ get children: [
+ state.dynamic ?? createComponent(Comp, {})
+ ]
+});
+const template27 = () => {
+ var _el = _tmpl$1.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "innerHTML", state.dynamic ?? createComponent(Comp, {}));
+ });
+ return _el;
+};
+const template28 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, state.dynamic ?? createComponent(Comp, {}), null);
+ return _tmpl;
+};
+const template29 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, (thing() && thing1()) ?? thing2() ?? thing3(), null);
+ return _tmpl;
+};
+const template30 = () => {
+ var _tmpl = _tmpl.cloneNode(true);
+ insert(_tmpl, thing() || thing1() || thing2(), null);
+ return _tmpl;
+};
+const template31 = createComponent(Comp, {
+ value: count() ? count() ? count() : count() : count()
+});
diff --git a/test/bun.js/solid-dom-fixtures/conditionalExpressions/output.js b/test/bun.js/solid-dom-fixtures/conditionalExpressions/output.js
new file mode 100644
index 000000000..1511f4222
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/conditionalExpressions/output.js
@@ -0,0 +1,319 @@
+import { template as _$template } from "r-dom";
+import { effect as _$effect } from "r-dom";
+import { createComponent as _$createComponent } from "r-dom";
+import { memo as _$memo } from "r-dom";
+import { insert as _$insert } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(`<div></div>`, 2);
+
+const template1 = (() => {
+ const _el$ = _tmpl$.cloneNode(true);
+
+ _$insert(_el$, simple);
+
+ return _el$;
+})();
+
+const template2 = (() => {
+ const _el$2 = _tmpl$.cloneNode(true);
+
+ _$insert(_el$2, () => state.dynamic);
+
+ return _el$2;
+})();
+
+const template3 = (() => {
+ const _el$3 = _tmpl$.cloneNode(true);
+
+ _$insert(_el$3, simple ? good : bad);
+
+ return _el$3;
+})();
+
+const template4 = (() => {
+ const _el$4 = _tmpl$.cloneNode(true);
+
+ _$insert(_el$4, () => (simple ? good() : bad));
+
+ return _el$4;
+})();
+
+const template5 = (() => {
+ const _el$5 = _tmpl$.cloneNode(true);
+
+ _$insert(
+ _el$5,
+ (() => {
+ const _c$ = _$memo(() => !!state.dynamic, true);
+
+ return () => (_c$() ? good() : bad);
+ })()
+ );
+
+ return _el$5;
+})();
+
+const template6 = (() => {
+ const _el$6 = _tmpl$.cloneNode(true);
+
+ _$insert(
+ _el$6,
+ (() => {
+ const _c$2 = _$memo(() => !!state.dynamic, true);
+
+ return () => _c$2() && good();
+ })()
+ );
+
+ return _el$6;
+})();
+
+const template7 = (() => {
+ const _el$7 = _tmpl$.cloneNode(true);
+
+ _$insert(
+ _el$7,
+ (() => {
+ const _c$3 = _$memo(() => state.count > 5, true);
+
+ return () =>
+ _c$3()
+ ? (() => {
+ const _c$4 = _$memo(() => !!state.dynamic, true);
+
+ return () => (_c$4() ? best : good());
+ })()
+ : bad;
+ })()
+ );
+
+ return _el$7;
+})();
+
+const template8 = (() => {
+ const _el$8 = _tmpl$.cloneNode(true);
+
+ _$insert(
+ _el$8,
+ (() => {
+ const _c$5 = _$memo(() => !!(state.dynamic && state.something), true);
+
+ return () => _c$5() && good();
+ })()
+ );
+
+ return _el$8;
+})();
+
+const template9 = (() => {
+ const _el$9 = _tmpl$.cloneNode(true);
+
+ _$insert(
+ _el$9,
+ (() => {
+ const _c$6 = _$memo(() => !!state.dynamic, true);
+
+ return () => (_c$6() && good()) || bad;
+ })()
+ );
+
+ return _el$9;
+})();
+
+const template10 = (() => {
+ const _el$10 = _tmpl$.cloneNode(true);
+
+ _$insert(_el$10, () =>
+ state.a ? "a" : state.b ? "b" : state.c ? "c" : "fallback"
+ );
+
+ return _el$10;
+})();
+
+const template11 = (() => {
+ const _el$11 = _tmpl$.cloneNode(true);
+
+ _$insert(
+ _el$11,
+ (() => {
+ const _c$7 = _$memo(() => !!state.a, true);
+
+ return () =>
+ _c$7()
+ ? a()
+ : (() => {
+ const _c$8 = _$memo(() => !!state.b, true);
+
+ return () => (_c$8() ? b() : state.c ? "c" : "fallback");
+ })();
+ })()
+ );
+
+ return _el$11;
+})();
+
+const template12 = _$createComponent(Comp, {
+ get render() {
+ return _$memo(() => !!state.dynamic, true)() ? good() : bad;
+ },
+}); // no dynamic predicate
+
+const template13 = _$createComponent(Comp, {
+ get render() {
+ return state.dynamic ? good : bad;
+ },
+});
+
+const template14 = _$createComponent(Comp, {
+ get render() {
+ return _$memo(() => !!state.dynamic, true)() && good();
+ },
+}); // no dynamic predicate
+
+const template15 = _$createComponent(Comp, {
+ get render() {
+ return state.dynamic && good;
+ },
+});
+
+const template16 = _$createComponent(Comp, {
+ get render() {
+ return state.dynamic || good();
+ },
+});
+
+const template17 = _$createComponent(Comp, {
+ get render() {
+ return _$memo(() => !!state.dynamic, true)()
+ ? _$createComponent(Comp, {})
+ : _$createComponent(Comp, {});
+ },
+});
+
+const template18 = _$createComponent(Comp, {
+ get children() {
+ return _$memo(() => !!state.dynamic, true)()
+ ? _$createComponent(Comp, {})
+ : _$createComponent(Comp, {});
+ },
+});
+
+const template19 = (() => {
+ const _el$12 = _tmpl$.cloneNode(true);
+
+ _$effect(
+ () =>
+ (_el$12.innerHTML = state.dynamic
+ ? _$createComponent(Comp, {})
+ : _$createComponent(Comp, {}))
+ );
+
+ return _el$12;
+})();
+
+const template20 = (() => {
+ const _el$13 = _tmpl$.cloneNode(true);
+
+ _$insert(
+ _el$13,
+ (() => {
+ const _c$9 = _$memo(() => !!state.dynamic, true);
+
+ return () =>
+ _c$9() ? _$createComponent(Comp, {}) : _$createComponent(Comp, {});
+ })()
+ );
+
+ return _el$13;
+})();
+
+const template21 = _$createComponent(Comp, {
+ get render() {
+ return state?.dynamic ? "a" : "b";
+ },
+});
+
+const template22 = _$createComponent(Comp, {
+ get children() {
+ return state?.dynamic ? "a" : "b";
+ },
+});
+
+const template23 = (() => {
+ const _el$14 = _tmpl$.cloneNode(true);
+
+ _$effect(() => (_el$14.innerHTML = state?.dynamic ? "a" : "b"));
+
+ return _el$14;
+})();
+
+const template24 = (() => {
+ const _el$15 = _tmpl$.cloneNode(true);
+
+ _$insert(_el$15, () => (state?.dynamic ? "a" : "b"));
+
+ return _el$15;
+})();
+
+const template25 = _$createComponent(Comp, {
+ get render() {
+ return state.dynamic ?? _$createComponent(Comp, {});
+ },
+});
+
+const template26 = _$createComponent(Comp, {
+ get children() {
+ return state.dynamic ?? _$createComponent(Comp, {});
+ },
+});
+
+const template27 = (() => {
+ const _el$16 = _tmpl$.cloneNode(true);
+
+ _$effect(
+ () => (_el$16.innerHTML = state.dynamic ?? _$createComponent(Comp, {}))
+ );
+
+ return _el$16;
+})();
+
+const template28 = (() => {
+ const _el$17 = _tmpl$.cloneNode(true);
+
+ _$insert(_el$17, () => state.dynamic ?? _$createComponent(Comp, {}));
+
+ return _el$17;
+})();
+
+const template29 = (() => {
+ const _el$18 = _tmpl$.cloneNode(true);
+
+ _$insert(
+ _el$18,
+ (() => {
+ const _c$10 = _$memo(() => !!thing(), true);
+
+ return () => (_c$10() && thing1()) ?? thing2() ?? thing3();
+ })()
+ );
+
+ return _el$18;
+})();
+
+const template30 = (() => {
+ const _el$19 = _tmpl$.cloneNode(true);
+
+ _$insert(_el$19, () => thing() || thing1() || thing2());
+
+ return _el$19;
+})();
+
+const template31 = _$createComponent(Comp, {
+ get value() {
+ return _$memo(() => !!count(), true)()
+ ? _$memo(() => !!count(), true)()
+ ? count()
+ : count()
+ : count();
+ },
+});
diff --git a/test/bun.js/solid-dom-fixtures/customElements/code.js b/test/bun.js/solid-dom-fixtures/customElements/code.js
new file mode 100644
index 000000000..f2e2bd02d
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/customElements/code.js
@@ -0,0 +1,29 @@
+const template = (
+ <my-element
+ some-attr={name}
+ notProp={data}
+ attr:my-attr={data}
+ prop:someProp={data}
+ />
+);
+
+const template2 = (
+ <my-element
+ some-attr={state.name}
+ notProp={state.data}
+ attr:my-attr={state.data}
+ prop:someProp={state.data}
+ />
+);
+
+const template3 = (
+ <my-element>
+ <header slot="head">Title</header>
+ </my-element>
+);
+
+const template4 = (
+ <>
+ <slot name="head"></slot>
+ </>
+);
diff --git a/test/bun.js/solid-dom-fixtures/customElements/output.bun.js b/test/bun.js/solid-dom-fixtures/customElements/output.bun.js
new file mode 100644
index 000000000..79c46280c
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/customElements/output.bun.js
@@ -0,0 +1,27 @@
+var _tmpl = _template$("<my-element/>", 0), _tmpl$2 = _template$('<my-element><header slot="head">Title</header></my-element>', 4);
+const template = () => {
+ var _el = _tmpl.cloneNode(true);
+ setAttribute(_el, "some-attr", name);
+ setAttribute(_el, "notProp", data);
+ setAttribute(_el, "attr:my-attr", data);
+ setAttribute(_el, "prop:someProp", data);
+ return _el;
+};
+const template2 = () => {
+ var _el = _tmpl.cloneNode(true);
+ effect(() => {
+ return setAttribute(_el, "some-attr", state.name);
+ });
+ effect(() => {
+ return setAttribute(_el, "notProp", state.data);
+ });
+ effect(() => {
+ return setAttribute(_el, "attr:my-attr", state.data);
+ });
+ effect(() => {
+ return setAttribute(_el, "prop:someProp", state.data);
+ });
+ return _el;
+};
+const template3 = _tmpl$2.cloneNode(true);
+const template4 = ;
diff --git a/test/bun.js/solid-dom-fixtures/customElements/output.js b/test/bun.js/solid-dom-fixtures/customElements/output.js
new file mode 100644
index 000000000..79274ce2c
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/customElements/output.js
@@ -0,0 +1,66 @@
+import { template as _$template } from "r-dom";
+import { effect as _$effect } from "r-dom";
+import { getOwner as _$getOwner } from "r-dom";
+import { setAttribute as _$setAttribute } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(`<my-element></my-element>`, 2),
+ _tmpl$2 = /*#__PURE__*/ _$template(
+ `<my-element><header slot="head">Title</header></my-element>`,
+ 4
+ ),
+ _tmpl$3 = /*#__PURE__*/ _$template(`<slot name="head"></slot>`, 2);
+
+const template = (() => {
+ const _el$ = document.importNode(_tmpl$, true);
+
+ _el$.someAttr = name;
+ _el$.notprop = data;
+
+ _$setAttribute(_el$, "my-attr", data);
+
+ _el$.someProp = data;
+ _el$._$owner = _$getOwner();
+ return _el$;
+})();
+
+const template2 = (() => {
+ const _el$2 = document.importNode(_tmpl$, true);
+
+ _el$2._$owner = _$getOwner();
+
+ _$effect(
+ (_p$) => {
+ const _v$ = state.name,
+ _v$2 = state.data,
+ _v$3 = state.data,
+ _v$4 = state.data;
+ _v$ !== _p$._v$ && (_el$2.someAttr = _p$._v$ = _v$);
+ _v$2 !== _p$._v$2 && (_el$2.notprop = _p$._v$2 = _v$2);
+ _v$3 !== _p$._v$3 && _$setAttribute(_el$2, "my-attr", (_p$._v$3 = _v$3));
+ _v$4 !== _p$._v$4 && (_el$2.someProp = _p$._v$4 = _v$4);
+ return _p$;
+ },
+ {
+ _v$: undefined,
+ _v$2: undefined,
+ _v$3: undefined,
+ _v$4: undefined,
+ }
+ );
+
+ return _el$2;
+})();
+
+const template3 = (() => {
+ const _el$3 = document.importNode(_tmpl$2, true);
+
+ _el$3._$owner = _$getOwner();
+ return _el$3;
+})();
+
+const template4 = (() => {
+ const _el$4 = _tmpl$3.cloneNode(true);
+
+ _el$4._$owner = _$getOwner();
+ return _el$4;
+})();
diff --git a/test/bun.js/solid-dom-fixtures/eventExpressions/code.js b/test/bun.js/solid-dom-fixtures/eventExpressions/code.js
new file mode 100644
index 000000000..78bc5e199
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/eventExpressions/code.js
@@ -0,0 +1,32 @@
+function hoisted1() {
+ console.log("hoisted");
+}
+const hoisted2 = () => console.log("hoisted delegated");
+
+const template = (
+ <div id="main">
+ <button onchange={() => console.log("bound")}>Change Bound</button>
+ <button onChange={[(id) => console.log("bound", id), id]}>
+ Change Bound
+ </button>
+ <button onchange={handler}>Change Bound</button>
+ <button onchange={[handler]}>Change Bound</button>
+ <button onchange={hoisted1}>Change Bound</button>
+ <button onclick={() => console.log("delegated")}>Click Delegated</button>
+ <button onClick={[(id) => console.log("delegated", id), rowId]}>
+ Click Delegated
+ </button>
+ <button onClick={handler}>Click Delegated</button>
+ <button onClick={[handler]}>Click Delegated</button>
+ <button onClick={hoisted2}>Click Delegated</button>
+ <button
+ on:click={() => console.log("listener")}
+ on:CAPS-ev={() => console.log("custom")}
+ >
+ Click Listener
+ </button>
+ <button oncapture:camelClick={() => console.log("listener")}>
+ Click Capture
+ </button>
+ </div>
+);
diff --git a/test/bun.js/solid-dom-fixtures/eventExpressions/output.bun.js b/test/bun.js/solid-dom-fixtures/eventExpressions/output.bun.js
new file mode 100644
index 000000000..5d90654f9
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/eventExpressions/output.bun.js
@@ -0,0 +1,57 @@
+var _tmpl$1 = _template$(
+ '<div id="main"><button>Change Bound</button><button>Change Bound</button><button>Change Bound</button><button>Change Bound</button><button>Change Bound</button><button>Click Delegated</button><button>Click Delegated</button><button>Click Delegated</button><button>Click Delegated</button><button>Click Delegated</button><button>Click Listener</button><button>Click Capture</button></div>',
+ 26
+);
+function hoisted1() {
+ console.log("hoisted");
+}
+const hoisted2 = () => console.log("hoisted delegated");
+const template = () => {
+ var _el = _tmpl.cloneNode(true),
+ _el$1 = _el.firstChild,
+ _el$2 = _el$1.nextSibling,
+ _el$3 = _el$2.nextSibling,
+ _el$4 = _el$3.nextSibling,
+ _el$5 = _el$4.nextSibling,
+ _el$6 = _el$5.nextSibling,
+ _el$7 = _el$6.nextSibling,
+ _el$8 = _el$7.nextSibling,
+ _el$9 = _el$8.nextSibling,
+ _el$10 = _el$9.nextSibling,
+ _el$11 = _el$10.nextSibling;
+ effect(() => {
+ return setAttribute(_el, "onchange", () => console.log("bound"));
+ });
+ effect(() => {
+ return setAttribute(_el$1, "onChange", [
+ (id) => console.log("bound", id),
+ id,
+ ]);
+ });
+ setAttribute(_el$2, "onchange", handler);
+ effect(() => {
+ return setAttribute(_el$3, "onchange", [handler]);
+ });
+ setAttribute(_el$4, "onchange", hoisted1);
+ _el$5.$$click = () => console.log("delegated");
+ effect(() => {
+ return (_el$6.$$click = [(id) => console.log("delegated", id), rowId]);
+ });
+ effect(() => {
+ return (_el$7.$$click = handler);
+ });
+ effect(() => {
+ return (_el$8.$$click = [handler]);
+ });
+ effect(() => {
+ return (_el$9.$$click = hoisted2);
+ });
+ _el$10.addEventListener("click", () => console.log("listener"));
+ _el$10.addEventListener("CAPS-ev", () => console.log("custom"));
+ _el$11.addEventListener(
+ "apture:camelClick",
+ () => console.log("listener"),
+ true
+ );
+ return _el;
+};
diff --git a/test/bun.js/solid-dom-fixtures/eventExpressions/output.js b/test/bun.js/solid-dom-fixtures/eventExpressions/output.js
new file mode 100644
index 000000000..c24a1f89f
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/eventExpressions/output.js
@@ -0,0 +1,63 @@
+import { template as _$template } from "r-dom";
+import { delegateEvents as _$delegateEvents } from "r-dom";
+import { addEventListener as _$addEventListener } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(
+ `<div id="main"><button>Change Bound</button><button>Change Bound</button><button>Change Bound</button><button>Change Bound</button><button>Change Bound</button><button>Click Delegated</button><button>Click Delegated</button><button>Click Delegated</button><button>Click Delegated</button><button>Click Delegated</button><button>Click Listener</button><button>Click Capture</button></div>`,
+ 26
+);
+
+function hoisted1() {
+ console.log("hoisted");
+}
+
+const hoisted2 = () => console.log("hoisted delegated");
+
+const template = (() => {
+ const _el$ = _tmpl$.cloneNode(true),
+ _el$2 = _el$.firstChild,
+ _el$3 = _el$2.nextSibling,
+ _el$4 = _el$3.nextSibling,
+ _el$5 = _el$4.nextSibling,
+ _el$6 = _el$5.nextSibling,
+ _el$7 = _el$6.nextSibling,
+ _el$8 = _el$7.nextSibling,
+ _el$9 = _el$8.nextSibling,
+ _el$10 = _el$9.nextSibling,
+ _el$11 = _el$10.nextSibling,
+ _el$12 = _el$11.nextSibling,
+ _el$13 = _el$12.nextSibling;
+
+ _el$2.addEventListener("change", () => console.log("bound"));
+
+ _el$3.addEventListener("change", (e) =>
+ ((id) => console.log("bound", id))(id, e)
+ );
+
+ _$addEventListener(_el$4, "change", handler);
+
+ _el$5.addEventListener("change", handler);
+
+ _el$6.addEventListener("change", hoisted1);
+
+ _el$7.$$click = () => console.log("delegated");
+
+ _el$8.$$click = (id) => console.log("delegated", id);
+
+ _el$8.$$clickData = rowId;
+
+ _$addEventListener(_el$9, "click", handler, true);
+
+ _el$10.$$click = handler;
+ _el$11.$$click = hoisted2;
+
+ _el$12.addEventListener("click", () => console.log("listener"));
+
+ _el$12.addEventListener("CAPS-ev", () => console.log("custom"));
+
+ _el$13.addEventListener("camelClick", () => console.log("listener"), true);
+
+ return _el$;
+})();
+
+_$delegateEvents(["click"]);
diff --git a/test/bun.js/solid-dom-fixtures/fragments/code.js b/test/bun.js/solid-dom-fixtures/fragments/code.js
new file mode 100644
index 000000000..0b6021e44
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/fragments/code.js
@@ -0,0 +1,83 @@
+const multiStatic = (
+ <>
+ <div>First</div>
+ <div>Last</div>
+ </>
+);
+
+const multiExpression = (
+ <>
+ <div>First</div>
+ {inserted}
+ <div>Last</div>
+ After
+ </>
+);
+
+const multiDynamic = (
+ <>
+ <div id={state.first}>First</div>
+ {state.inserted}
+ <div id={state.last}>Last</div>
+ After
+ </>
+);
+
+const singleExpression = <>{inserted}</>;
+
+const singleDynamic = <>{inserted()}</>;
+
+const firstStatic = (
+ <>
+ {inserted}
+ <div />
+ </>
+);
+
+const firstDynamic = (
+ <>
+ {inserted()}
+ <div />
+ </>
+);
+
+const firstComponent = (
+ <>
+ <Component />
+ <div />
+ </>
+);
+
+const lastStatic = (
+ <>
+ <div />
+ {inserted}
+ </>
+);
+
+const lastDynamic = (
+ <>
+ <div />
+ {inserted()}
+ </>
+);
+
+const lastComponent = (
+ <>
+ <div />
+ <Component />
+ </>
+);
+
+const spaces = (
+ <>
+ <span>1</span> <span>2</span> <span>3</span>
+ </>
+);
+const multiLineTrailing = (
+ <>
+ <span>1</span>
+ <span>2</span>
+ <span>3</span>
+ </>
+);
diff --git a/test/bun.js/solid-dom-fixtures/fragments/output.bun.js b/test/bun.js/solid-dom-fixtures/fragments/output.bun.js
new file mode 100644
index 000000000..54d980cee
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/fragments/output.bun.js
@@ -0,0 +1,13 @@
+const multiStatic = ;
+const multiExpression = ;
+const multiDynamic = ;
+const singleExpression = ;
+const singleDynamic = ;
+const firstStatic = ;
+const firstDynamic = ;
+const firstComponent = ;
+const lastStatic = ;
+const lastDynamic = ;
+const lastComponent = ;
+const spaces = ;
+const multiLineTrailing = ;
diff --git a/test/bun.js/solid-dom-fixtures/fragments/output.js b/test/bun.js/solid-dom-fixtures/fragments/output.js
new file mode 100644
index 000000000..5fe0c767c
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/fragments/output.js
@@ -0,0 +1,66 @@
+import { template as _$template } from "r-dom";
+import { createComponent as _$createComponent } from "r-dom";
+import { memo as _$memo } from "r-dom";
+import { setAttribute as _$setAttribute } from "r-dom";
+import { effect as _$effect } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(`<div>First</div>`, 2),
+ _tmpl$2 = /*#__PURE__*/ _$template(`<div>Last</div>`, 2),
+ _tmpl$3 = /*#__PURE__*/ _$template(`<div></div>`, 2),
+ _tmpl$4 = /*#__PURE__*/ _$template(`<span>1</span>`, 2),
+ _tmpl$5 = /*#__PURE__*/ _$template(`<span>2</span>`, 2),
+ _tmpl$6 = /*#__PURE__*/ _$template(`<span>3</span>`, 2);
+
+const multiStatic = [_tmpl$.cloneNode(true), _tmpl$2.cloneNode(true)];
+const multiExpression = [
+ _tmpl$.cloneNode(true),
+ inserted,
+ _tmpl$2.cloneNode(true),
+ "After",
+];
+const multiDynamic = [
+ (() => {
+ const _el$5 = _tmpl$.cloneNode(true);
+
+ _$effect(() => _$setAttribute(_el$5, "id", state.first));
+
+ return _el$5;
+ })(),
+ _$memo(() => state.inserted),
+ (() => {
+ const _el$6 = _tmpl$2.cloneNode(true);
+
+ _$effect(() => _$setAttribute(_el$6, "id", state.last));
+
+ return _el$6;
+ })(),
+ "After",
+];
+const singleExpression = inserted;
+
+const singleDynamic = _$memo(inserted);
+
+const firstStatic = [inserted, _tmpl$3.cloneNode(true)];
+const firstDynamic = [_$memo(inserted), _tmpl$3.cloneNode(true)];
+const firstComponent = [
+ _$createComponent(Component, {}),
+ _tmpl$3.cloneNode(true),
+];
+const lastStatic = [_tmpl$3.cloneNode(true), inserted];
+const lastDynamic = [_tmpl$3.cloneNode(true), _$memo(inserted)];
+const lastComponent = [
+ _tmpl$3.cloneNode(true),
+ _$createComponent(Component, {}),
+];
+const spaces = [
+ _tmpl$4.cloneNode(true),
+ " ",
+ _tmpl$5.cloneNode(true),
+ " ",
+ _tmpl$6.cloneNode(true),
+];
+const multiLineTrailing = [
+ _tmpl$4.cloneNode(true),
+ _tmpl$5.cloneNode(true),
+ _tmpl$6.cloneNode(true),
+];
diff --git a/test/bun.js/solid-dom-fixtures/insertChildren/code.js b/test/bun.js/solid-dom-fixtures/insertChildren/code.js
new file mode 100644
index 000000000..41d3d017e
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/insertChildren/code.js
@@ -0,0 +1,36 @@
+const children = <div />;
+const dynamic = {
+ children,
+};
+const template = <Module children={children} />;
+const template2 = <module children={children} />;
+const template3 = <module children={children}>Hello</module>;
+const template4 = (
+ <module children={children}>
+ <Hello />
+ </module>
+);
+const template5 = <module children={dynamic.children} />;
+const template6 = <Module children={dynamic.children} />;
+const template7 = <module {...dynamic} />;
+const template8 = <module {...dynamic}>Hello</module>;
+const template9 = <module {...dynamic}>{dynamic.children}</module>;
+const template10 = <Module {...dynamic}>Hello</Module>;
+const template11 = <module children={/*@once*/ state.children} />;
+const template12 = <Module children={/*@once*/ state.children} />;
+const template13 = <module>{...children}</module>;
+const template14 = <Module>{...children}</Module>;
+const template15 = <module>{...dynamic.children}</module>;
+const template16 = <Module>{...dynamic.children}</Module>;
+const template18 = <module>Hi {...children}</module>;
+const template19 = <Module>Hi {...children}</Module>;
+const template20 = <module>{children()}</module>;
+const template21 = <Module>{children()}</Module>;
+const template22 = <module>{state.children()}</module>;
+const template23 = <Module>{state.children()}</Module>;
+
+const tiles = [];
+tiles.push(<div>Test 1</div>);
+const template24 = <div>{tiles}</div>;
+
+const comma = <div>{(expression(), "static")}</div>;
diff --git a/test/bun.js/solid-dom-fixtures/insertChildren/output.js b/test/bun.js/solid-dom-fixtures/insertChildren/output.js
new file mode 100644
index 000000000..9ad937742
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/insertChildren/output.js
@@ -0,0 +1,185 @@
+import { template as _$template } from "r-dom";
+import { mergeProps as _$mergeProps } from "r-dom";
+import { spread as _$spread } from "r-dom";
+import { insert as _$insert } from "r-dom";
+import { createComponent as _$createComponent } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(`<div></div>`, 2),
+ _tmpl$2 = /*#__PURE__*/ _$template(`<module></module>`, 2),
+ _tmpl$3 = /*#__PURE__*/ _$template(`<module>Hello</module>`, 2),
+ _tmpl$4 = /*#__PURE__*/ _$template(`<module>Hi </module>`, 2),
+ _tmpl$5 = /*#__PURE__*/ _$template(`<div>Test 1</div>`, 2);
+
+const children = _tmpl$.cloneNode(true);
+
+const dynamic = {
+ children,
+};
+
+const template = _$createComponent(Module, {
+ children: children,
+});
+
+const template2 = (() => {
+ const _el$2 = _tmpl$2.cloneNode(true);
+
+ _$insert(_el$2, children);
+
+ return _el$2;
+})();
+
+const template3 = _tmpl$3.cloneNode(true);
+
+const template4 = (() => {
+ const _el$4 = _tmpl$2.cloneNode(true);
+
+ _$insert(_el$4, _$createComponent(Hello, {}));
+
+ return _el$4;
+})();
+
+const template5 = (() => {
+ const _el$5 = _tmpl$2.cloneNode(true);
+
+ _$insert(_el$5, () => dynamic.children);
+
+ return _el$5;
+})();
+
+const template6 = _$createComponent(Module, {
+ get children() {
+ return dynamic.children;
+ },
+});
+
+const template7 = (() => {
+ const _el$6 = _tmpl$2.cloneNode(true);
+
+ _$spread(_el$6, dynamic, false, false);
+
+ return _el$6;
+})();
+
+const template8 = (() => {
+ const _el$7 = _tmpl$3.cloneNode(true);
+
+ _$spread(_el$7, dynamic, false, true);
+
+ return _el$7;
+})();
+
+const template9 = (() => {
+ const _el$8 = _tmpl$2.cloneNode(true);
+
+ _$spread(_el$8, dynamic, false, true);
+
+ _$insert(_el$8, () => dynamic.children);
+
+ return _el$8;
+})();
+
+const template10 = _$createComponent(
+ Module,
+ _$mergeProps(dynamic, {
+ children: "Hello",
+ })
+);
+
+const template11 = (() => {
+ const _el$9 = _tmpl$2.cloneNode(true);
+
+ _$insert(_el$9, state.children);
+
+ return _el$9;
+})();
+
+const template12 = _$createComponent(Module, {
+ children: state.children,
+});
+
+const template13 = (() => {
+ const _el$10 = _tmpl$2.cloneNode(true);
+
+ _$insert(_el$10, children);
+
+ return _el$10;
+})();
+
+const template14 = _$createComponent(Module, {
+ children: children,
+});
+
+const template15 = (() => {
+ const _el$11 = _tmpl$2.cloneNode(true);
+
+ _$insert(_el$11, () => dynamic.children);
+
+ return _el$11;
+})();
+
+const template16 = _$createComponent(Module, {
+ get children() {
+ return dynamic.children;
+ },
+});
+
+const template18 = (() => {
+ const _el$12 = _tmpl$4.cloneNode(true);
+
+ _$insert(_el$12, children, null);
+
+ return _el$12;
+})();
+
+const template19 = _$createComponent(Module, {
+ get children() {
+ return ["Hi ", children];
+ },
+});
+
+const template20 = (() => {
+ const _el$13 = _tmpl$2.cloneNode(true);
+
+ _$insert(_el$13, children);
+
+ return _el$13;
+})();
+
+const template21 = _$createComponent(Module, {
+ get children() {
+ return children();
+ },
+});
+
+const template22 = (() => {
+ const _el$14 = _tmpl$2.cloneNode(true);
+
+ _$insert(_el$14, () => state.children());
+
+ return _el$14;
+})();
+
+const template23 = _$createComponent(Module, {
+ get children() {
+ return state.children();
+ },
+});
+
+const tiles = [];
+tiles.push(_tmpl$5.cloneNode(true));
+
+const template24 = (() => {
+ const _el$16 = _tmpl$.cloneNode(true);
+
+ _$insert(_el$16, tiles);
+
+ return _el$16;
+})();
+
+const comma = (() => {
+ const _el$17 = _tmpl$.cloneNode(true);
+
+ _$insert(_el$17, () => (expression(), "static"));
+
+ return _el$17;
+})();
diff --git a/test/bun.js/solid-dom-fixtures/namespaceElements/code.js b/test/bun.js/solid-dom-fixtures/namespaceElements/code.js
new file mode 100644
index 000000000..7ad410329
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/namespaceElements/code.js
@@ -0,0 +1,6 @@
+const template = <module.A />;
+const template2 = <module.a.B />;
+const template3 = <module.A.B />;
+const template4 = <module.a-b />;
+const template5 = <module.a-b.c-d />;
+const template6 = <namespace:tag />;
diff --git a/test/bun.js/solid-dom-fixtures/namespaceElements/output.js b/test/bun.js/solid-dom-fixtures/namespaceElements/output.js
new file mode 100644
index 000000000..162ffb140
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/namespaceElements/output.js
@@ -0,0 +1,16 @@
+import { template as _$template } from "r-dom";
+import { createComponent as _$createComponent } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(`<namespace:tag></namespace:tag>`, 2);
+
+const template = _$createComponent(module.A, {});
+
+const template2 = _$createComponent(module.a.B, {});
+
+const template3 = _$createComponent(module.A.B, {});
+
+const template4 = _$createComponent(module["a-b"], {});
+
+const template5 = _$createComponent(module["a-b"]["c-d"], {});
+
+const template6 = _tmpl$.cloneNode(true);
diff --git a/test/bun.js/solid-dom-fixtures/simpleElements/code.js b/test/bun.js/solid-dom-fixtures/simpleElements/code.js
new file mode 100644
index 000000000..c3537ee7d
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/simpleElements/code.js
@@ -0,0 +1,9 @@
+const template = (
+ <div id="main">
+ <style>{"div { color: red; }"}</style>
+ <h1>Welcome</h1>
+ <label for={"entry"}>Edit:</label>
+ <input id="entry" type="text" />
+ {/* Comment Node */}
+ </div>
+);
diff --git a/test/bun.js/solid-dom-fixtures/simpleElements/output.bun.js b/test/bun.js/solid-dom-fixtures/simpleElements/output.bun.js
new file mode 100644
index 000000000..72d61c1e3
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/simpleElements/output.bun.js
@@ -0,0 +1,5 @@
+var _tmpl$1 = _template$(
+ '<div id="main"><style>div { color: red; }</style><h1>Welcome</h1><label for="entry">Edit:</label><input id="entry" type="text"/></div>',
+ 8
+);
+const template = _tmpl$1.cloneNode(true);
diff --git a/test/bun.js/solid-dom-fixtures/simpleElements/output.js b/test/bun.js/solid-dom-fixtures/simpleElements/output.js
new file mode 100644
index 000000000..5d16f6767
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/simpleElements/output.js
@@ -0,0 +1,8 @@
+import { template as _$template } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(
+ `<div id="main"><style>div { color: red; }</style><h1>Welcome</h1><label for="entry">Edit:</label><input id="entry" type="text"></div>`,
+ 9
+);
+
+const template = _tmpl$.cloneNode(true);
diff --git a/test/bun.js/solid-dom-fixtures/textInterpolation/code.js b/test/bun.js/solid-dom-fixtures/textInterpolation/code.js
new file mode 100644
index 000000000..21698ea89
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/textInterpolation/code.js
@@ -0,0 +1,72 @@
+const trailing = <span>Hello </span>;
+const leading = <span> John</span>;
+
+/* prettier-ignore */
+const extraSpaces = <span>Hello John</span>;
+
+const trailingExpr = <span>Hello {name}</span>;
+const leadingExpr = <span>{greeting} John</span>;
+
+/* prettier-ignore */
+const multiExpr = <span>{greeting} {name}</span>;
+
+/* prettier-ignore */
+const multiExprSpaced = <span> {greeting} {name} </span>;
+
+/* prettier-ignore */
+const multiExprTogether = <span> {greeting}{name} </span>;
+
+/* prettier-ignore */
+const multiLine = <span>
+
+ Hello
+
+</span>
+
+/* prettier-ignore */
+const multiLineTrailingSpace = <span>
+ Hello
+ John
+</span>
+
+/* prettier-ignore */
+const multiLineNoTrailingSpace = <span>
+ Hello
+ John
+</span>
+
+/* prettier-ignore */
+const escape = <span>
+ &nbsp;&lt;Hi&gt;&nbsp;
+</span>
+
+/* prettier-ignore */
+const escape2 = <Comp>
+ &nbsp;&lt;Hi&gt;&nbsp;
+</Comp>
+
+/* prettier-ignore */
+const escape3 = <>
+ &nbsp;&lt;Hi&gt;&nbsp;
+</>
+
+const injection = <span>Hi{"<script>alert();</script>"}</span>;
+
+let value = "World";
+const evaluated = <span>Hello {value + "!"}</span>;
+
+let number = 4 + 5;
+const evaluatedNonString = <span>4 + 5 = {number}</span>;
+
+const newLineLiteral = (
+ <div>
+ {s}
+ {"\n"}d
+ </div>
+);
+
+const trailingSpace = <div>{expr}</div>;
+
+const trailingSpaceComp = <Comp>{expr}</Comp>;
+
+const trailingSpaceFrag = <>{expr}</>;
diff --git a/test/bun.js/solid-dom-fixtures/textInterpolation/output.bun.js b/test/bun.js/solid-dom-fixtures/textInterpolation/output.bun.js
new file mode 100644
index 000000000..eb4c5347a
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/textInterpolation/output.bun.js
@@ -0,0 +1,71 @@
+var _tmpl$1 = template("<span>Hello </span>", 2), _tmpl$2 = template("<span> John</span>", 2), _tmpl$3 = template("<span>Hello John</span>", 2), _tmpl$3 = template("<span> </span>", 4), _tmpl$4 = template("<span> </span>", 4), _tmpl$5 = template("<span> </span>", 4), _tmpl$7 = template("<span>Hello</span>", 2), _tmpl$8 = template("<span>Hello John</span>", 2), _tmpl$9 = template("<span>Β &lt;Hi&gt;Β </span>", 2), _tmpl$10 = template("<span>Hi&lt;script&gt;alert();&lt;/script&gt;</span>", 2), _tmpl$10 = template("<span>4 + 5 = </span>", 3), _tmpl$11 = template("<div>\nd</div>", 3), _tmpl$12 = template("<div</div>", 2);
+const trailing = _tmpl$1.cloneNode(true);
+const leading = _tmpl$2.cloneNode(true);
+const extraSpaces = _tmpl$3.cloneNode(true);
+const trailingExpr = () => {
+ var _tmpl$1 = _tmpl$1.cloneNode(true);
+ insert(_tmpl$1, name, null);
+ return _tmpl$1;
+};
+const leadingExpr = () => {
+ var _tmpl$2 = _tmpl$2.cloneNode(true);
+ insert(_tmpl$2, greeting, null);
+ return _tmpl$2;
+};
+const multiExpr = () => {
+ var _tmpl$3 = _tmpl$3.cloneNode(true);
+ insert(_tmpl$3, greeting, null);
+ insert(_tmpl$3, name, null);
+ return _tmpl$3;
+};
+const multiExprSpaced = () => {
+ var _tmpl$4 = _tmpl$4.cloneNode(true);
+ insert(_tmpl$4, greeting, null);
+ insert(_tmpl$4, name, null);
+ return _tmpl$4;
+};
+const multiExprTogether = () => {
+ var _tmpl$5 = _tmpl$5.cloneNode(true);
+ insert(_tmpl$5, greeting, null);
+ insert(_tmpl$5, name, null);
+ return _tmpl$5;
+};
+const multiLine = _tmpl$7.cloneNode(true);
+const multiLineTrailingSpace = _tmpl$8.cloneNode(true);
+const multiLineNoTrailingSpace = _tmpl$8.cloneNode(true);
+const escape = _tmpl$9.cloneNode(true);
+const escape2 = createComponent(Comp, {
+ get children: [
+ "\xA0<Hi>\xA0"
+ ]
+});
+const escape3 = ;
+const injection = _tmpl$10.cloneNode(true);
+let value = "World";
+const evaluated = () => {
+ var _tmpl$1 = _tmpl$1.cloneNode(true);
+ insert(_tmpl$1, value + "!", null);
+ return _tmpl$1;
+};
+let number = 4 + 5;
+const evaluatedNonString = () => {
+ var _tmpl$10 = _tmpl$10.cloneNode(true);
+ insert(_tmpl$10, number, null);
+ return _tmpl$10;
+};
+const newLineLiteral = () => {
+ var _tmpl$11 = _tmpl$11.cloneNode(true);
+ insert(_tmpl$11, s, null);
+ return _tmpl$11;
+};
+const trailingSpace = () => {
+ var _tmpl$12 = _tmpl$12.cloneNode(true);
+ insert(_tmpl$12, expr, null);
+ return _tmpl$12;
+};
+const trailingSpaceComp = createComponent(Comp, {
+ get children: [
+ expr
+ ]
+});
+const trailingSpaceFrag = ;
diff --git a/test/bun.js/solid-dom-fixtures/textInterpolation/output.js b/test/bun.js/solid-dom-fixtures/textInterpolation/output.js
new file mode 100644
index 000000000..b86a631fb
--- /dev/null
+++ b/test/bun.js/solid-dom-fixtures/textInterpolation/output.js
@@ -0,0 +1,144 @@
+import { template as _$template } from "r-dom";
+import { createComponent as _$createComponent } from "r-dom";
+import { insert as _$insert } from "r-dom";
+
+const _tmpl$ = /*#__PURE__*/ _$template(`<span>Hello </span>`, 2),
+ _tmpl$2 = /*#__PURE__*/ _$template(`<span> John</span>`, 2),
+ _tmpl$3 = /*#__PURE__*/ _$template(`<span>Hello John</span>`, 2),
+ _tmpl$4 = /*#__PURE__*/ _$template(`<span> </span>`, 2),
+ _tmpl$5 = /*#__PURE__*/ _$template(`<span> <!> <!> </span>`, 4),
+ _tmpl$6 = /*#__PURE__*/ _$template(`<span> <!> </span>`, 3),
+ _tmpl$7 = /*#__PURE__*/ _$template(`<span>Hello</span>`, 2),
+ _tmpl$8 = /*#__PURE__*/ _$template(`<span>&nbsp;&lt;Hi&gt;&nbsp;</span>`, 2),
+ _tmpl$9 = /*#__PURE__*/ _$template(
+ `<span>Hi&lt;script>alert();&lt;/script></span>`,
+ 2
+ ),
+ _tmpl$10 = /*#__PURE__*/ _$template(`<span>Hello World!</span>`, 2),
+ _tmpl$11 = /*#__PURE__*/ _$template(`<span>4 + 5 = 9</span>`, 2),
+ _tmpl$12 = /*#__PURE__*/ _$template(
+ `<div>
+d</div>`,
+ 2
+ ),
+ _tmpl$13 = /*#__PURE__*/ _$template(`<div></div>`, 2);
+
+const trailing = _tmpl$.cloneNode(true);
+
+const leading = _tmpl$2.cloneNode(true);
+/* prettier-ignore */
+
+const extraSpaces = _tmpl$3.cloneNode(true);
+
+const trailingExpr = (() => {
+ const _el$4 = _tmpl$.cloneNode(true),
+ _el$5 = _el$4.firstChild;
+
+ _$insert(_el$4, name, null);
+
+ return _el$4;
+})();
+
+const leadingExpr = (() => {
+ const _el$6 = _tmpl$2.cloneNode(true),
+ _el$7 = _el$6.firstChild;
+
+ _$insert(_el$6, greeting, _el$7);
+
+ return _el$6;
+})();
+/* prettier-ignore */
+
+const multiExpr = (() => {
+ const _el$8 = _tmpl$4.cloneNode(true),
+ _el$9 = _el$8.firstChild;
+
+ _$insert(_el$8, greeting, _el$9);
+
+ _$insert(_el$8, name, null);
+
+ return _el$8;
+})();
+/* prettier-ignore */
+
+const multiExprSpaced = (() => {
+ const _el$10 = _tmpl$5.cloneNode(true),
+ _el$11 = _el$10.firstChild,
+ _el$14 = _el$11.nextSibling,
+ _el$12 = _el$14.nextSibling,
+ _el$15 = _el$12.nextSibling,
+ _el$13 = _el$15.nextSibling;
+
+ _$insert(_el$10, greeting, _el$14);
+
+ _$insert(_el$10, name, _el$15);
+
+ return _el$10;
+})();
+/* prettier-ignore */
+
+const multiExprTogether = (() => {
+ const _el$16 = _tmpl$6.cloneNode(true),
+ _el$17 = _el$16.firstChild,
+ _el$19 = _el$17.nextSibling,
+ _el$18 = _el$19.nextSibling;
+
+ _$insert(_el$16, greeting, _el$19);
+
+ _$insert(_el$16, name, _el$19);
+
+ return _el$16;
+})();
+/* prettier-ignore */
+
+const multiLine = _tmpl$7.cloneNode(true);
+/* prettier-ignore */
+
+const multiLineTrailingSpace = _tmpl$3.cloneNode(true);
+/* prettier-ignore */
+
+const multiLineNoTrailingSpace = _tmpl$3.cloneNode(true);
+/* prettier-ignore */
+
+const escape = _tmpl$8.cloneNode(true);
+/* prettier-ignore */
+
+const escape2 = _$createComponent(Comp, {
+ children: "\xA0<Hi>\xA0"
+});
+/* prettier-ignore */
+
+const escape3 = "\xA0<Hi>\xA0";
+
+const injection = _tmpl$9.cloneNode(true);
+
+let value = "World";
+
+const evaluated = _tmpl$10.cloneNode(true);
+
+let number = 4 + 5;
+
+const evaluatedNonString = _tmpl$11.cloneNode(true);
+
+const newLineLiteral = (() => {
+ const _el$27 = _tmpl$12.cloneNode(true),
+ _el$28 = _el$27.firstChild;
+
+ _$insert(_el$27, s, _el$28);
+
+ return _el$27;
+})();
+
+const trailingSpace = (() => {
+ const _el$29 = _tmpl$13.cloneNode(true);
+
+ _$insert(_el$29, expr);
+
+ return _el$29;
+})();
+
+const trailingSpaceComp = _$createComponent(Comp, {
+ children: expr,
+});
+
+const trailingSpaceFrag = expr;
diff --git a/test/bun.js/some-fs.js b/test/bun.js/some-fs.js
new file mode 100644
index 000000000..e6b31f162
--- /dev/null
+++ b/test/bun.js/some-fs.js
@@ -0,0 +1,51 @@
+const { mkdirSync, existsSync } = require("fs");
+
+var performance = globalThis.performance;
+if (!performance) {
+ try {
+ performance = require("perf_hooks").performance;
+ } catch (e) {}
+}
+
+const count = parseInt(process.env.ITERATIONS || "1", 10) || 1;
+var tempdir = `/tmp/some-fs-test/dir/${Date.now()}/hi`;
+
+for (let i = 0; i < count; i++) {
+ tempdir += `/${i.toString(36)}`;
+}
+
+if (existsSync(tempdir)) {
+ throw new Error(
+ `existsSync reports ${tempdir} exists, but it probably does not`
+ );
+}
+
+var origTempDir = tempdir;
+var iterations = new Array(count * count).fill("");
+var total = 0;
+for (let i = 0; i < count; i++) {
+ for (let j = 0; j < count; j++) {
+ iterations[total++] = `${origTempDir}/${j.toString(36)}-${i.toString(36)}`;
+ }
+}
+tempdir = origTempDir;
+mkdirSync(origTempDir, { recursive: true });
+const recurse = { recursive: false };
+const start = performance.now();
+for (let i = 0; i < total; i++) {
+ mkdirSync(iterations[i], recurse);
+}
+
+console.log("MKDIR " + total + " depth took:", performance.now() - start, "ms");
+
+if (!existsSync(tempdir)) {
+ throw new Error(
+ "Expected directory to exist after mkdirSync, but it doesn't"
+ );
+}
+
+if (mkdirSync(tempdir, { recursive: true })) {
+ throw new Error(
+ "mkdirSync shouldn't return directory name on existing directories"
+ );
+}
diff --git a/test/bun.js/sql-raw.test.js b/test/bun.js/sql-raw.test.js
new file mode 100644
index 000000000..ea7f72bd6
--- /dev/null
+++ b/test/bun.js/sql-raw.test.js
@@ -0,0 +1,71 @@
+import { expect, it } from "bun:test";
+
+var SQL = globalThis[Symbol.for("Bun.lazy")]("sqlite");
+
+it("works", () => {
+ const handle = SQL.open("/tmp/northwind.sqlite");
+
+ const stmt = SQL.prepare(
+ handle,
+ 'SELECT * FROM "Order" WHERE OrderDate > date($date)'
+ );
+ expect(stmt.toString()).toBe(
+ `SELECT * FROM "Order" WHERE OrderDate > date(NULL)`
+ );
+
+ expect(
+ Array.isArray(
+ stmt.all({
+ // do the conversion this way so that this test runs in multiple timezones
+ $date: new Date(
+ new Date(1996, 8, 1, 0, 0, 0, 0).toUTCString()
+ ).toISOString(),
+ })
+ )
+ ).toBe(true);
+ expect(stmt.toString()).toBe(
+ `SELECT * FROM "Order" WHERE OrderDate > date('1996-09-01T07:00:00.000Z')`
+ );
+
+ var ran = stmt.run({
+ $date: new Date(
+ new Date(1997, 8, 1, 0, 0, 0, 0).toUTCString()
+ ).toISOString(),
+ });
+ expect(Array.isArray(ran)).toBe(false);
+ expect(ran === undefined).toBe(true);
+ expect(stmt.toString()).toBe(
+ `SELECT * FROM "Order" WHERE OrderDate > date('1997-09-01T07:00:00.000Z')`
+ );
+
+ expect(
+ Array.isArray(
+ stmt.get({
+ $date: new Date(
+ new Date(1998, 8, 1, 0, 0, 0, 0).toUTCString()
+ ).toISOString(),
+ })
+ )
+ ).toBe(false);
+ expect(stmt.toString()).toBe(
+ `SELECT * FROM "Order" WHERE OrderDate > date('1998-09-01T07:00:00.000Z')`
+ );
+ expect(stmt.paramsCount).toBe(1);
+ expect(stmt.columnsCount).toBe(14);
+ expect(stmt.columns.length).toBe(14);
+ stmt.finalize();
+ SQL.close(handle);
+});
+
+it("SQL.run works", () => {
+ const handle = SQL.open("/tmp/northwind.sqlite");
+ expect(typeof handle).toBe("number");
+
+ expect(
+ SQL.run(handle, 'SELECT * FROM "Order" WHERE OrderDate > date($date)', {
+ $date: new Date(1996, 8, 1).toISOString(),
+ })
+ ).toBe(undefined);
+
+ SQL.close(handle);
+});
diff --git a/test/bun.js/sqlite.test.js b/test/bun.js/sqlite.test.js
new file mode 100644
index 000000000..2250f97f0
--- /dev/null
+++ b/test/bun.js/sqlite.test.js
@@ -0,0 +1,430 @@
+import { expect, it } from "bun:test";
+import { Database, constants } from "bun:sqlite";
+
+var encode = (text) => Buffer.from(text);
+
+it("Database.open", () => {
+ // in a folder which doesn't exist
+ try {
+ Database.open(
+ "/this/database/does/not/exist.sqlite",
+ constants.SQLITE_OPEN_READWRITE
+ );
+ throw new Error("Expected an error to be thrown");
+ } catch (error) {
+ expect(error.message).toBe("unable to open database file");
+ }
+
+ // in a file which doesn't exist
+ try {
+ Database.open(
+ `/tmp/database-${Math.random()}.sqlite`,
+ constants.SQLITE_OPEN_READWRITE
+ );
+ throw new Error("Expected an error to be thrown");
+ } catch (error) {
+ expect(error.message).toBe("unable to open database file");
+ }
+
+ // in a file which doesn't exist
+ try {
+ Database.open(`/tmp/database-${Math.random()}.sqlite`, { readonly: true });
+ throw new Error("Expected an error to be thrown");
+ } catch (error) {
+ expect(error.message).toBe("unable to open database file");
+ }
+
+ // in a file which doesn't exist
+ try {
+ Database.open(`/tmp/database-${Math.random()}.sqlite`, { readwrite: true });
+ throw new Error("Expected an error to be thrown");
+ } catch (error) {
+ expect(error.message).toBe("unable to open database file");
+ }
+
+ // create works
+ {
+ var db = Database.open(`/tmp/database-${Math.random()}.sqlite`, {
+ create: true,
+ });
+ db.close();
+ }
+
+ // this should not throw
+ // it creates an in-memory db
+ new Database().close();
+});
+
+it("creates", () => {
+ const db = Database.open(":memory:");
+ db.exec(
+ "CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, created TEXT, deci FLOAT, blobby BLOB)"
+ );
+ const stmt = db.prepare(
+ "INSERT INTO test (name, value, deci, created, blobby) VALUES (?, ?, ?, ?, ?)"
+ );
+
+ stmt.run([
+ "foo",
+ 1,
+ Math.fround(1.111),
+ new Date(1995, 12, 19).toISOString(),
+ encode("Hello World"),
+ ]);
+ stmt.run([
+ "bar",
+ 2,
+ Math.fround(2.222),
+ new Date(1995, 12, 19).toISOString(),
+ encode("Hello World"),
+ ]);
+ stmt.run([
+ "baz",
+ 3,
+ Math.fround(3.333),
+ new Date(1995, 12, 19).toISOString(),
+ encode("Hello World"),
+ ]);
+
+ stmt.finalize();
+
+ const stmt2 = db.prepare("SELECT * FROM test");
+ expect(JSON.stringify(stmt2.get())).toBe(
+ JSON.stringify({
+ id: 1,
+ name: "foo",
+ value: 1,
+ created: new Date(1995, 12, 19).toISOString(),
+ deci: Math.fround(1.111),
+ blobby: encode("Hello World"),
+ })
+ );
+
+ expect(JSON.stringify(stmt2.all())).toBe(
+ JSON.stringify([
+ {
+ id: 1,
+ name: "foo",
+ value: 1,
+ created: new Date(1995, 12, 19).toISOString(),
+ deci: Math.fround(1.111),
+ blobby: encode("Hello World"),
+ },
+ {
+ id: 2,
+ name: "bar",
+ value: 2,
+ created: new Date(1995, 12, 19).toISOString(),
+ deci: Math.fround(2.222),
+ blobby: encode("Hello World"),
+ },
+ {
+ id: 3,
+ name: "baz",
+ value: 3,
+ created: new Date(1995, 12, 19).toISOString(),
+ deci: Math.fround(3.333),
+ blobby: encode("Hello World"),
+ },
+ ])
+ );
+ expect(stmt2.run()).toBe(undefined);
+
+ // not necessary to run but it's a good practice
+ stmt2.finalize();
+});
+
+it("typechecks", () => {
+ const db = Database.open(":memory:");
+ db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)");
+ db.exec('INSERT INTO test (name) VALUES ("Hello")');
+ db.exec('INSERT INTO test (name) VALUES ("World")');
+
+ const q = db.prepare("SELECT * FROM test WHERE (name = ?)");
+
+ var expectfail = (val) => {
+ try {
+ q.run([val]);
+ throw new Error("Expected error");
+ } catch (e) {
+ expect(e.message !== "Expected error").toBe(true);
+ expect(e.name).toBe("TypeError");
+ }
+
+ try {
+ q.all([val]);
+ throw new Error("Expected error");
+ } catch (e) {
+ expect(e.message !== "Expected error").toBe(true);
+ expect(e.name).toBe("TypeError");
+ }
+
+ try {
+ q.get([val]);
+ throw new Error("Expected error");
+ } catch (e) {
+ expect(e.message !== "Expected error").toBe(true);
+ expect(e.name).toBe("TypeError");
+ }
+ };
+
+ expectfail(Symbol("oh hai"));
+ expectfail(new Date());
+ expectfail(class Foo {});
+ expectfail(() => class Foo {});
+ expectfail(new RangeError("what"));
+ expectfail(new Map());
+ expectfail(new Map([["foo", "bar"]]));
+ expectfail(new Set());
+ expectfail(new Set([1, 2, 3]));
+});
+
+it("db.query supports TypedArray", () => {
+ const db = Database.open(":memory:");
+
+ db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY, blobby BLOB)");
+
+ const stmt = db.prepare("INSERT INTO test (blobby) VALUES (?)");
+ stmt.run([encode("Hello World")]);
+ stmt.finalize();
+
+ const stmt2 = db.prepare("SELECT * FROM test");
+ expect(JSON.stringify(stmt2.get())).toBe(
+ JSON.stringify({
+ id: 1,
+ blobby: encode("Hello World"),
+ })
+ );
+
+ const stmt3 = db.prepare("SELECT * FROM test WHERE (blobby = ?)");
+
+ expect(JSON.stringify(stmt3.get([encode("Hello World")]))).toBe(
+ JSON.stringify({
+ id: 1,
+ blobby: encode("Hello World"),
+ })
+ );
+
+ expect(
+ JSON.stringify(
+ db
+ .query("SELECT * FROM test WHERE (blobby = ?)")
+ .get([encode("Hello World")])
+ )
+ ).toBe(
+ JSON.stringify({
+ id: 1,
+ blobby: encode("Hello World"),
+ })
+ );
+
+ expect(stmt3.get([encode("Hello World NOT")])).toBe(null);
+});
+
+it("supports serialize/deserialize", () => {
+ const db = Database.open(":memory:");
+ db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)");
+ db.exec('INSERT INTO test (name) VALUES ("Hello")');
+ db.exec('INSERT INTO test (name) VALUES ("World")');
+
+ const input = db.serialize();
+ const db2 = new Database(input);
+
+ const stmt = db2.prepare("SELECT * FROM test");
+ expect(JSON.stringify(stmt.get())).toBe(
+ JSON.stringify({
+ id: 1,
+ name: "Hello",
+ })
+ );
+
+ expect(JSON.stringify(stmt.all())).toBe(
+ JSON.stringify([
+ {
+ id: 1,
+ name: "Hello",
+ },
+ {
+ id: 2,
+ name: "World",
+ },
+ ])
+ );
+ db2.exec("insert into test (name) values ('foo')");
+ expect(JSON.stringify(stmt.all())).toBe(
+ JSON.stringify([
+ {
+ id: 1,
+ name: "Hello",
+ },
+ {
+ id: 2,
+ name: "World",
+ },
+ {
+ id: 3,
+ name: "foo",
+ },
+ ])
+ );
+
+ const db3 = new Database(input, { readonly: true });
+ try {
+ db3.exec("insert into test (name) values ('foo')");
+ throw new Error("Expected error");
+ } catch (e) {
+ expect(e.message).toBe("attempt to write a readonly database");
+ }
+});
+
+it("db.query()", () => {
+ const db = Database.open(":memory:");
+ db.exec("CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)");
+
+ expect(db[Symbol.for("Bun.Database.cache.count")]).toBe(0);
+
+ var q = db.query("SELECT * FROM test WHERE name = ?");
+ expect(q.get("Hello") === null).toBe(true);
+
+ db.exec('INSERT INTO test (name) VALUES ("Hello")');
+ db.exec('INSERT INTO test (name) VALUES ("World")');
+
+ var rows = db.query("SELECT * FROM test WHERE name = ?").all(["Hello"]);
+
+ expect(JSON.stringify(rows)).toBe(JSON.stringify([{ id: 1, name: "Hello" }]));
+
+ rows = db.query("SELECT * FROM test WHERE name = ?").all(["World"]);
+
+ // if this fails, it means the query caching failed to update
+ expect(JSON.stringify(rows)).toBe(JSON.stringify([{ id: 2, name: "World" }]));
+
+ rows = db.query("SELECT * FROM test WHERE name = ?").all(["Hello"]);
+ expect(JSON.stringify(rows)).toBe(JSON.stringify([{ id: 1, name: "Hello" }]));
+
+ // check that the query is cached
+ expect(db[Symbol.for("Bun.Database.cache.count")]).toBe(1);
+
+ db.clearQueryCache();
+
+ // check clearing the cache decremented the counter
+ expect(db[Symbol.for("Bun.Database.cache.count")]).toBe(0);
+
+ q.finalize();
+ try {
+ // check clearing the cache decremented the counter
+
+ q.all(["Hello"]);
+ throw new Error("Should have thrown");
+ } catch (e) {
+ expect(e.message !== "Should have thrown").toBe(true);
+ }
+
+ // check that invalid queries are not cached
+ // and invalid queries throw
+ try {
+ db.query("SELECT * FROM BACON", ["Hello"]).all();
+ throw new Error("Should have thrown");
+ } catch (e) {
+ expect(e.message !== "Should have thrown").toBe(true);
+ expect(db[Symbol.for("Bun.Database.cache.count")]).toBe(0);
+ }
+
+ // check that it supports multiple arguments
+ expect(
+ JSON.stringify(
+ db
+ .query("SELECT * FROM test where (name = ? OR name = ?)")
+ .all(["Hello", "Fooooo"])
+ )
+ ).toBe(JSON.stringify([{ id: 1, name: "Hello" }]));
+ expect(
+ JSON.stringify(
+ db
+ .query("SELECT * FROM test where (name = ? OR name = ?)")
+ .all("Hello", "Fooooo")
+ )
+ ).toBe(JSON.stringify([{ id: 1, name: "Hello" }]));
+
+ // throws if insufficeint arguments
+ try {
+ db.query("SELECT * FROM test where (name = ? OR name = ?)").all("Hello");
+ } catch (e) {
+ expect(e.message).toBe("Expected 2 values, got 1");
+ }
+
+ // named parameters
+ expect(
+ JSON.stringify(
+ db
+ .query("SELECT * FROM test where (name = $hello OR name = $goodbye)")
+ .all({
+ $hello: "Hello",
+ $goodbye: "Fooooo",
+ })
+ )
+ ).toBe(JSON.stringify([{ id: 1, name: "Hello" }]));
+
+ db.close();
+
+ // Check that a closed database doesn't crash
+ // and does throw an error when trying to run a query
+ try {
+ db.query("SELECT * FROM test WHERE name = ?").all(["Hello"]);
+ throw new Error("Should have thrown");
+ } catch (e) {
+ expect(e.message !== "Should have thrown").toBe(true);
+ }
+
+ // check that we can call close multiple times
+ // it should not throw so that your code doesn't break
+ db.close();
+ db.close();
+ db.close();
+});
+
+it("db.transaction()", () => {
+ const db = Database.open(":memory:");
+
+ db.exec(
+ "CREATE TABLE cats (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE, age INTEGER)"
+ );
+
+ const insert = db.prepare(
+ "INSERT INTO cats (name, age) VALUES (@name, @age)"
+ );
+
+ expect(db.inTransaction).toBe(false);
+ const insertMany = db.transaction((cats) => {
+ expect(db.inTransaction).toBe(true);
+ try {
+ for (const cat of cats) insert.run(cat);
+ } catch (exception) {
+ throw exception;
+ }
+ });
+
+ try {
+ insertMany([
+ { "@name": "Joey", "@age": 2 },
+ { "@name": "Sally", "@age": 4 },
+ { "@name": "Junior", "@age": 1 },
+ { "@name": "Sally", "@age": 4 },
+ ]);
+ throw new Error("Should have thrown");
+ } catch (exception) {
+ expect(exception.message).toBe("constraint failed");
+ }
+
+ expect(db.inTransaction).toBe(false);
+ expect(db.query("SELECT * FROM cats").all().length).toBe(0);
+
+ expect(db.inTransaction).toBe(false);
+ insertMany([
+ { "@name": "Joey", "@age": 2 },
+ { "@name": "Sally", "@age": 4 },
+ { "@name": "Junior", "@age": 1 },
+ ]);
+ expect(db.inTransaction).toBe(false);
+ expect(db.query("SELECT * FROM cats").all().length).toBe(3);
+ expect(db.inTransaction).toBe(false);
+});
diff --git a/test/bun.js/streams.test.js b/test/bun.js/streams.test.js
new file mode 100644
index 000000000..ccbea1d09
--- /dev/null
+++ b/test/bun.js/streams.test.js
@@ -0,0 +1,317 @@
+import { file, readableStreamToArrayBuffer, readableStreamToArray } from "bun";
+import { expect, it, beforeEach, afterEach } from "bun:test";
+import { writeFileSync } from "node:fs";
+import { gc } from "./gc";
+new Uint8Array();
+
+beforeEach(() => gc());
+afterEach(() => gc());
+
+it("exists globally", () => {
+ expect(typeof ReadableStream).toBe("function");
+ expect(typeof ReadableStreamBYOBReader).toBe("function");
+ expect(typeof ReadableStreamBYOBRequest).toBe("function");
+ expect(typeof ReadableStreamDefaultController).toBe("function");
+ expect(typeof ReadableStreamDefaultReader).toBe("function");
+ expect(typeof TransformStream).toBe("function");
+ expect(typeof TransformStreamDefaultController).toBe("function");
+ expect(typeof WritableStream).toBe("function");
+ expect(typeof WritableStreamDefaultController).toBe("function");
+ expect(typeof WritableStreamDefaultWriter).toBe("function");
+ expect(typeof ByteLengthQueuingStrategy).toBe("function");
+ expect(typeof CountQueuingStrategy).toBe("function");
+});
+
+it("ReadableStream (direct)", async () => {
+ var stream = new ReadableStream({
+ pull(controller) {
+ controller.write("hello");
+ controller.write("world");
+ controller.close();
+ },
+ cancel() {},
+ type: "direct",
+ });
+ var reader = stream.getReader();
+ const chunk = await reader.read();
+ expect(chunk.value.join("")).toBe(Buffer.from("helloworld").join(""));
+ expect((await reader.read()).done).toBe(true);
+ expect((await reader.read()).done).toBe(true);
+});
+
+it("ReadableStream (bytes)", async () => {
+ var stream = new ReadableStream({
+ start(controller) {
+ controller.enqueue(Buffer.from("abdefgh"));
+ },
+ pull(controller) {},
+ cancel() {},
+ type: "bytes",
+ });
+ const chunks = [];
+ const chunk = await stream.getReader().read();
+ chunks.push(chunk.value);
+ expect(chunks[0].join("")).toBe(Buffer.from("abdefgh").join(""));
+});
+
+it("ReadableStream (default)", async () => {
+ var stream = new ReadableStream({
+ start(controller) {
+ controller.enqueue(Buffer.from("abdefgh"));
+ controller.close();
+ },
+ pull(controller) {},
+ cancel() {},
+ });
+ const chunks = [];
+ const chunk = await stream.getReader().read();
+ chunks.push(chunk.value);
+ expect(chunks[0].join("")).toBe(Buffer.from("abdefgh").join(""));
+});
+
+it("readableStreamToArray", async () => {
+ var queue = [Buffer.from("abdefgh")];
+ var stream = new ReadableStream({
+ pull(controller) {
+ var chunk = queue.shift();
+ if (chunk) {
+ controller.enqueue(chunk);
+ } else {
+ controller.close();
+ }
+ },
+ cancel() {},
+ type: "bytes",
+ });
+
+ const chunks = await readableStreamToArray(stream);
+
+ expect(chunks[0].join("")).toBe(Buffer.from("abdefgh").join(""));
+});
+
+it("readableStreamToArrayBuffer (bytes)", async () => {
+ var queue = [Buffer.from("abdefgh")];
+ var stream = new ReadableStream({
+ pull(controller) {
+ var chunk = queue.shift();
+ if (chunk) {
+ controller.enqueue(chunk);
+ } else {
+ controller.close();
+ }
+ },
+ cancel() {},
+ type: "bytes",
+ });
+ const buffer = await readableStreamToArrayBuffer(stream);
+ expect(new TextDecoder().decode(new Uint8Array(buffer))).toBe("abdefgh");
+});
+
+it("readableStreamToArrayBuffer (default)", async () => {
+ var queue = [Buffer.from("abdefgh")];
+ var stream = new ReadableStream({
+ pull(controller) {
+ var chunk = queue.shift();
+ if (chunk) {
+ controller.enqueue(chunk);
+ } else {
+ controller.close();
+ }
+ },
+ cancel() {},
+ });
+
+ const buffer = await readableStreamToArrayBuffer(stream);
+ expect(new TextDecoder().decode(new Uint8Array(buffer))).toBe("abdefgh");
+});
+
+it("ReadableStream for Blob", async () => {
+ var blob = new Blob(["abdefgh", "ijklmnop"]);
+ expect(await blob.text()).toBe("abdefghijklmnop");
+ var stream;
+ try {
+ stream = blob.stream();
+ stream = blob.stream();
+ } catch (e) {
+ console.error(e);
+ console.error(e.stack);
+ }
+ const chunks = [];
+ var reader;
+ reader = stream.getReader();
+
+ while (true) {
+ var chunk;
+ try {
+ chunk = await reader.read();
+ } catch (e) {
+ console.error(e);
+ console.error(e.stack);
+ }
+
+ if (chunk.done) break;
+ chunks.push(new TextDecoder().decode(chunk.value));
+ }
+ expect(chunks.join("")).toBe(
+ new TextDecoder().decode(Buffer.from("abdefghijklmnop"))
+ );
+});
+
+it("ReadableStream for File", async () => {
+ var blob = file(import.meta.dir + "/fetch.js.txt");
+ var stream = blob.stream(24);
+ const chunks = [];
+ var reader = stream.getReader();
+ stream = undefined;
+ while (true) {
+ const chunk = await reader.read();
+ gc(true);
+ if (chunk.done) break;
+ chunks.push(chunk.value);
+ expect(chunk.value.byteLength <= 24).toBe(true);
+ gc(true);
+ }
+ reader = undefined;
+ const output = new Uint8Array(await blob.arrayBuffer()).join("");
+ const input = chunks.map((a) => a.join("")).join("");
+ expect(output).toBe(input);
+ gc(true);
+});
+
+it("ReadableStream for File errors", async () => {
+ try {
+ var blob = file(import.meta.dir + "/fetch.js.txt.notfound");
+ blob.stream().getReader();
+ throw new Error("should not reach here");
+ } catch (e) {
+ expect(e.code).toBe("ENOENT");
+ expect(e.syscall).toBe("open");
+ }
+});
+
+it("ReadableStream for empty blob closes immediately", async () => {
+ var blob = new Blob([]);
+ var stream = blob.stream();
+ const chunks = [];
+ var reader = stream.getReader();
+ while (true) {
+ const chunk = await reader.read();
+ if (chunk.done) break;
+ chunks.push(chunk.value);
+ }
+
+ expect(chunks.length).toBe(0);
+});
+
+it("ReadableStream for empty file closes immediately", async () => {
+ writeFileSync("/tmp/bun-empty-file-123456", "");
+ var blob = file("/tmp/bun-empty-file-123456");
+ var stream;
+ try {
+ stream = blob.stream();
+ } catch (e) {
+ console.error(e.stack);
+ }
+ const chunks = [];
+ var reader = stream.getReader();
+ while (true) {
+ const chunk = await reader.read();
+ if (chunk.done) break;
+ chunks.push(chunk.value);
+ }
+
+ expect(chunks.length).toBe(0);
+});
+
+it("new Response(stream).arrayBuffer() (bytes)", async () => {
+ var queue = [Buffer.from("abdefgh")];
+ var stream = new ReadableStream({
+ pull(controller) {
+ var chunk = queue.shift();
+ if (chunk) {
+ controller.enqueue(chunk);
+ } else {
+ controller.close();
+ }
+ },
+ cancel() {},
+ type: "bytes",
+ });
+ const buffer = await new Response(stream).arrayBuffer();
+ expect(new TextDecoder().decode(new Uint8Array(buffer))).toBe("abdefgh");
+});
+
+it("new Response(stream).arrayBuffer() (default)", async () => {
+ var queue = [Buffer.from("abdefgh")];
+ var stream = new ReadableStream({
+ pull(controller) {
+ var chunk = queue.shift();
+ if (chunk) {
+ controller.enqueue(chunk);
+ } else {
+ controller.close();
+ }
+ },
+ cancel() {},
+ });
+ const buffer = await new Response(stream).arrayBuffer();
+ expect(new TextDecoder().decode(new Uint8Array(buffer))).toBe("abdefgh");
+});
+
+it("new Response(stream).text() (default)", async () => {
+ var queue = [Buffer.from("abdefgh")];
+ var stream = new ReadableStream({
+ pull(controller) {
+ var chunk = queue.shift();
+ if (chunk) {
+ controller.enqueue(chunk);
+ } else {
+ controller.close();
+ }
+ },
+ cancel() {},
+ });
+ const text = await new Response(stream).text();
+ expect(text).toBe("abdefgh");
+});
+
+it("new Response(stream).json() (default)", async () => {
+ var queue = [Buffer.from(JSON.stringify({ hello: true }))];
+ var stream = new ReadableStream({
+ pull(controller) {
+ var chunk = queue.shift();
+ if (chunk) {
+ controller.enqueue(chunk);
+ } else {
+ controller.close();
+ }
+ },
+ cancel() {},
+ });
+ const json = await new Response(stream).json();
+ expect(json.hello).toBe(true);
+});
+
+it("new Response(stream).blob() (default)", async () => {
+ var queue = [Buffer.from(JSON.stringify({ hello: true }))];
+ var stream = new ReadableStream({
+ pull(controller) {
+ var chunk = queue.shift();
+ if (chunk) {
+ controller.enqueue(chunk);
+ } else {
+ controller.close();
+ }
+ },
+ cancel() {},
+ });
+ const blob = await new Response(stream).blob();
+ expect(await blob.text()).toBe('{"hello":true}');
+});
+
+it("Blob.stream() -> new Response(stream).text()", async () => {
+ var blob = new Blob(["abdefgh"]);
+ var stream = blob.stream();
+ const text = await new Response(stream).text();
+ expect(text).toBe("abdefgh");
+});
diff --git a/test/bun.js/text-encoder.test.js b/test/bun.js/text-encoder.test.js
new file mode 100644
index 000000000..5687e0222
--- /dev/null
+++ b/test/bun.js/text-encoder.test.js
@@ -0,0 +1,212 @@
+import { expect, it, describe } from "bun:test";
+import { gc as gcTrace } from "./gc";
+
+const getByteLength = (str) => {
+ // returns the byte length of an utf8 string
+ var s = str.length;
+ for (var i = str.length - 1; i >= 0; i--) {
+ var code = str.charCodeAt(i);
+ if (code > 0x7f && code <= 0x7ff) s++;
+ else if (code > 0x7ff && code <= 0xffff) s += 2;
+ if (code >= 0xdc00 && code <= 0xdfff) i--; //trail surrogate
+ }
+ return s;
+};
+
+describe("TextDecoder", () => {
+ it("should decode ascii text", () => {
+ const decoder = new TextDecoder("latin1");
+ gcTrace(true);
+ expect(decoder.encoding).toBe("windows-1252");
+ gcTrace(true);
+ expect(decoder.decode(new Uint8Array([0x41, 0x42, 0x43]))).toBe("ABC");
+ gcTrace(true);
+ const result = [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33];
+ gcTrace(true);
+ expect(decoder.decode(Uint8Array.from(result))).toBe(
+ String.fromCharCode(...result)
+ );
+ gcTrace(true);
+ });
+
+ it("should decode unicode text", () => {
+ const decoder = new TextDecoder();
+ gcTrace(true);
+ var text = `❀️ Red Heart`;
+
+ const bytes = [
+ 226, 157, 164, 239, 184, 143, 32, 82, 101, 100, 32, 72, 101, 97, 114, 116,
+ ];
+ const decoded = decoder.decode(Uint8Array.from(bytes));
+ expect(decoder.encoding).toBe("utf-8");
+
+ gcTrace(true);
+
+ for (let i = 0; i < text.length; i++) {
+ expect(decoded.charCodeAt(i)).toBe(text.charCodeAt(i));
+ }
+ expect(decoded).toHaveLength(text.length);
+ gcTrace(true);
+ });
+
+ it("should decode unicode text with multiple consecutive emoji", () => {
+ const decoder = new TextDecoder();
+ const encoder = new TextEncoder();
+ gcTrace(true);
+ var text = `❀️❀️❀️❀️❀️❀️ Red Heart`;
+
+ text += ` ✨ Sparkles πŸ”₯ Fire πŸ˜€ πŸ˜ƒ πŸ˜„ 😁 πŸ˜† πŸ˜… πŸ˜‚ 🀣 πŸ₯² ☺️ 😊 πŸ˜‡ πŸ™‚ πŸ™ƒ πŸ˜‰ 😌 😍 πŸ₯° 😘 πŸ˜— πŸ˜™ 😚 πŸ˜‹ πŸ˜› 😝 😜 πŸ€ͺ 🀨 🧐 πŸ€“ 😎 πŸ₯Έ 🀩 πŸ₯³ 😏 πŸ˜’ 😞 πŸ˜” 😟 πŸ˜• πŸ™ ☹️ 😣 πŸ˜– 😫 😩 πŸ₯Ί 😒 😭 😀 😠 😑 🀬 🀯 😳 πŸ₯΅ πŸ₯Ά 😱 😨 😰`;
+ gcTrace(true);
+ expect(decoder.decode(encoder.encode(text))).toBe(text);
+ gcTrace(true);
+ const bytes = new Uint8Array(getByteLength(text) * 8);
+ gcTrace(true);
+ const amount = encoder.encodeInto(text, bytes);
+ gcTrace(true);
+ expect(decoder.decode(bytes.subarray(0, amount.written))).toBe(text);
+ gcTrace(true);
+ });
+});
+
+describe("TextEncoder", () => {
+ it("should encode latin1 text", () => {
+ gcTrace(true);
+ const text = "Hello World!";
+ const encoder = new TextEncoder();
+ gcTrace(true);
+ const encoded = encoder.encode(text);
+ gcTrace(true);
+ expect(encoded instanceof Uint8Array).toBe(true);
+ expect(encoded.length).toBe(text.length);
+ gcTrace(true);
+ const result = [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33];
+ for (let i = 0; i < result.length; i++) {
+ expect(encoded[i]).toBe(result[i]);
+ }
+ });
+
+ it("should encode long latin1 text", async () => {
+ const text = "Hello World!".repeat(1000);
+ const encoder = new TextEncoder();
+ gcTrace(true);
+ const encoded = encoder.encode(text);
+ gcTrace(true);
+ expect(encoded instanceof Uint8Array).toBe(true);
+ expect(encoded.length).toBe(text.length);
+ gcTrace(true);
+ const decoded = new TextDecoder().decode(encoded);
+ expect(decoded).toBe(text);
+ gcTrace();
+ await new Promise((resolve) => setTimeout(resolve, 1));
+ gcTrace();
+ expect(decoded).toBe(text);
+ });
+
+ it("should encode latin1 rope text", () => {
+ var text = "Hello";
+ text += " ";
+ text += "World!";
+
+ gcTrace(true);
+ const encoder = new TextEncoder();
+ const encoded = encoder.encode(text);
+ gcTrace(true);
+ const into = new Uint8Array(100);
+ const out = encoder.encodeInto(text, into);
+ gcTrace(true);
+ expect(out.read).toBe(text.length);
+ expect(out.written).toBe(encoded.length);
+
+ expect(encoded instanceof Uint8Array).toBe(true);
+ const result = [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33];
+ for (let i = 0; i < result.length; i++) {
+ expect(encoded[i]).toBe(result[i]);
+ expect(encoded[i]).toBe(into[i]);
+ }
+ expect(encoded.length).toBe(getByteLength(text));
+ });
+
+ it("should encode utf-16 text", () => {
+ var text = `❀️ Red Heart
+ ✨ Sparkles
+ πŸ”₯ Fire
+ `;
+ var encoder = new TextEncoder();
+ var decoder = new TextDecoder();
+ gcTrace(true);
+ expect(decoder.decode(encoder.encode(text))).toBe(text);
+ gcTrace(true);
+ });
+
+ // this test is from a web platform test in WebKit
+ describe("should use a unicode replacement character for invalid surrogate pairs", () => {
+ var bad = [
+ {
+ encoding: "utf-16le",
+ input: [0x00, 0xd8],
+ expected: "\uFFFD",
+ name: "lone surrogate lead",
+ },
+ {
+ encoding: "utf-16le",
+ input: [0x00, 0xdc],
+ expected: "\uFFFD",
+ name: "lone surrogate trail",
+ },
+ {
+ encoding: "utf-16le",
+ input: [0x00, 0xd8, 0x00, 0x00],
+ expected: "\uFFFD\u0000",
+ name: "unmatched surrogate lead",
+ },
+ {
+ encoding: "utf-16le",
+ input: [0x00, 0xdc, 0x00, 0x00],
+ expected: "\uFFFD\u0000",
+ name: "unmatched surrogate trail",
+ },
+ {
+ encoding: "utf-16le",
+ input: [0x00, 0xdc, 0x00, 0xd8],
+ expected: "\uFFFD\uFFFD",
+ name: "swapped surrogate pair",
+ },
+ ];
+
+ bad.forEach(function (t) {
+ it(t.encoding + " - " + t.name, () => {
+ gcTrace(true);
+ expect(
+ new TextDecoder(t.encoding).decode(new Uint8Array(t.input))
+ ).toBe(t.expected);
+ expect(
+ new TextDecoder(t.encoding).decode(
+ new Uint16Array(new Uint8Array(t.input).buffer)
+ )
+ ).toBe(t.expected);
+ gcTrace(true);
+ });
+ // test(function () {
+ // assert_throws_js(TypeError, function () {
+ // new TextDecoder(t.encoding, { fatal: true }).decode(
+ // new Uint8Array(t.input)
+ // );
+ // });
+ // }, t.encoding + " - " + t.name + " (fatal flag set)");
+ });
+ });
+
+ it("should encode utf-16 rope text", () => {
+ gcTrace(true);
+ var textReal = `❀️ Red Heart ✨ Sparkles πŸ”₯ Fire`;
+
+ var a = textReal.split("");
+ var text = "";
+ for (let j of a) {
+ text += j;
+ }
+
+ var encoder = new TextEncoder();
+ expect(new TextDecoder().decode(encoder.encode(text))).toBe(textReal);
+ });
+});
diff --git a/test/bun.js/toml-fixture.toml b/test/bun.js/toml-fixture.toml
new file mode 100644
index 000000000..090563ef7
--- /dev/null
+++ b/test/bun.js/toml-fixture.toml
@@ -0,0 +1,39 @@
+
+framework = "next"
+origin = "http://localhost:5000"
+inline.array = [1234, 4, 5, 6]
+
+
+[macros]
+react-relay = { "graphql" = "node_modules/bun-macro-relay/bun-macro-relay.tsx" }
+
+[install.scopes]
+"@mybigcompany2" = { "token" = "123456", "url" = "https://registry.mybigcompany.com" }
+"@mybigcompany3" = { "token" = "123456", "url" = "https://registry.mybigcompany.com", "three" = 4 }
+
+
+[install.scopes."@mybigcompany"]
+token = "123456"
+url = "https://registry.mybigcompany.com"
+
+[bundle.packages]
+"@emotion/react" = true
+
+
+[dev]
+foo = 123
+"foo.bar" = "baz"
+"abba.baba" = "baba"
+dabba = -123
+doo = 123.456
+one.two.three = 4
+
+[[array]]
+entry_one = "one"
+entry_two = "two"
+
+[[array]]
+entry_one = "three"
+
+[[array.nested]]
+entry_one = "four"
diff --git a/test/bun.js/toml.test.js b/test/bun.js/toml.test.js
new file mode 100644
index 000000000..44141b2d4
--- /dev/null
+++ b/test/bun.js/toml.test.js
@@ -0,0 +1,30 @@
+import { describe, it, expect } from "bun:test";
+import { gc } from "./gc";
+
+it("syntax", async () => {
+ gc();
+
+ const toml = (await import("./toml-fixture.toml")).default;
+ gc();
+
+ expect(toml.framework).toBe("next");
+ expect(toml.bundle.packages["@emotion/react"]).toBe(true);
+ expect(toml.array[0].entry_one).toBe("one");
+ expect(toml.array[0].entry_two).toBe("two");
+ expect(toml.array[1].entry_one).toBe("three");
+ expect(toml.array[1].entry_two).toBe(undefined);
+ expect(toml.array[1].nested[0].entry_one).toBe("four");
+ expect(toml.dev.one.two.three).toBe(4);
+ expect(toml.dev.foo).toBe(123);
+ expect(toml.inline.array[0]).toBe(1234);
+ expect(toml.inline.array[1]).toBe(4);
+ expect(toml.dev["foo.bar"]).toBe("baz");
+ expect(toml.install.scopes["@mybigcompany"].url).toBe(
+ "https://registry.mybigcompany.com"
+ );
+ expect(toml.install.scopes["@mybigcompany2"].url).toBe(
+ "https://registry.mybigcompany.com"
+ );
+ expect(toml.install.scopes["@mybigcompany3"].three).toBe(4);
+ gc();
+});
diff --git a/test/bun.js/transpiler.test.js b/test/bun.js/transpiler.test.js
new file mode 100644
index 000000000..f8da4c18c
--- /dev/null
+++ b/test/bun.js/transpiler.test.js
@@ -0,0 +1,1675 @@
+import { expect, it, describe } from "bun:test";
+
+describe("Bun.Transpiler", () => {
+ describe("exports.replace", () => {
+ const transpiler = new Bun.Transpiler({
+ exports: {
+ replace: {
+ // export var foo = function() { }
+ // =>
+ // export var foo = "bar";
+ foo: "bar",
+
+ // export const getStaticProps = /* code */
+ // =>
+ // export var __N_SSG = true;
+ getStaticProps: ["__N_SSG", true],
+ getStaticPaths: ["__N_SSG", true],
+ // export function getStaticProps(ctx) { /* code */ }
+ // =>
+ // export var __N_SSP = true;
+ getServerSideProps: ["__N_SSP", true],
+ },
+
+ // Explicitly remove the top-level export, even if it is in use by
+ // another part of the file
+ eliminate: ["loader", "localVarToRemove"],
+ },
+ /* only per-file for now, so this isn't good yet */
+ treeShaking: true,
+
+ // remove non-bare unused exports, even if they may have side effects
+ // Consistent with tsc & esbuild, this is enabled by default for TypeScript files
+ // this flag lets you enable it for JavaScript files
+ // this already existed, just wasn't exposed in the API
+ trimUnusedImports: true,
+ });
+
+ it("a deletes dead exports and any imports only referenced in dead regions", () => {
+ const out = transpiler.transformSync(`
+ import {getUserById} from './my-database';
+
+ export async function getStaticProps(ctx){
+ return { props: { user: await getUserById(ctx.params.id) } };
+ }
+
+ export default function MyComponent({user}) {
+ getStaticProps();
+ return <div id='user'>{user.name}</div>;
+ }
+ `);
+ });
+
+ it("deletes dead exports and any imports only referenced in dead regions", () => {
+ const output = transpiler.transformSync(`
+ import deadFS from 'fs';
+ import liveFS from 'fs';
+
+ export var deleteMe = 100;
+
+ export function loader() {
+ deadFS.readFileSync("/etc/passwd");
+ liveFS.readFileSync("/etc/passwd");
+ }
+
+ export function action() {
+ require("foo");
+ liveFS.readFileSync("/etc/passwd")
+ deleteMe = 101;
+ }
+
+ export function baz() {
+ require("bar");
+ }
+ `);
+ expect(output.includes("loader")).toBe(false);
+ expect(output.includes("react")).toBe(false);
+ expect(output.includes("action")).toBe(true);
+ expect(output.includes("deadFS")).toBe(false);
+ expect(output.includes("liveFS")).toBe(true);
+ });
+
+ it("supports replacing exports", () => {
+ const output = transpiler.transformSync(`
+ import deadFS from 'fs';
+ import anotherDeadFS from 'fs';
+ import liveFS from 'fs';
+
+ export var localVarToRemove = deadFS.readFileSync("/etc/passwd");
+ export var localVarToReplace = 1;
+
+ var getStaticProps = function () {
+ deadFS.readFileSync("/etc/passwd")
+ };
+
+ export {getStaticProps}
+
+ export function baz() {
+ liveFS.readFileSync("/etc/passwd");
+ require("bar");
+ }
+ `);
+ expect(output.includes("loader")).toBe(false);
+ expect(output.includes("react")).toBe(false);
+ expect(output.includes("deadFS")).toBe(false);
+ expect(output.includes("default")).toBe(false);
+ expect(output.includes("anotherDeadFS")).toBe(false);
+ expect(output.includes("liveFS")).toBe(true);
+ expect(output.includes("__N_SSG")).toBe(true);
+ expect(output.includes("localVarToReplace")).toBe(true);
+ expect(output.includes("localVarToRemove")).toBe(false);
+ });
+ });
+
+ const transpiler = new Bun.Transpiler({
+ loader: "tsx",
+ define: {
+ "process.env.NODE_ENV": JSON.stringify("development"),
+ user_undefined: "undefined",
+ },
+ macro: {
+ react: {
+ bacon: `${import.meta.dir}/macro-check.js`,
+ },
+ },
+ platform: "browser",
+ });
+ const bunTranspiler = new Bun.Transpiler({
+ loader: "tsx",
+ define: {
+ "process.env.NODE_ENV": JSON.stringify("development"),
+ user_undefined: "undefined",
+ },
+ platform: "bun",
+ macro: {
+ inline: {
+ whatDidIPass: `${import.meta.dir}/inline.macro.js`,
+ },
+ react: {
+ bacon: `${import.meta.dir}/macro-check.js`,
+ },
+ },
+ });
+
+ const code = `import { useParams } from "remix";
+ import type { LoaderFunction, ActionFunction } from "remix";
+ import { type xx } from 'mod';
+ import { type xx as yy } from 'mod';
+ import { type 'xx' as yy } from 'mod';
+ import { type if as yy } from 'mod';
+ import React, { type ReactNode, Component as Romponent, Component } from 'react';
+
+
+ export const loader: LoaderFunction = async ({
+ params
+ }) => {
+ console.log(params.postId);
+ };
+
+ export const action: ActionFunction = async ({
+ params
+ }) => {
+ console.log(params.postId);
+ };
+
+ export default function PostRoute() {
+ const params = useParams();
+ console.log(params.postId);
+ }
+
+
+
+
+
+ `;
+
+ it("JSX", () => {
+ var bun = new Bun.Transpiler({
+ loader: "jsx",
+ define: {
+ "process.env.NODE_ENV": JSON.stringify("development"),
+ },
+ });
+ expect(bun.transformSync("export var foo = <div foo />")).toBe(
+ `export var foo = jsx("div", {
+ foo: true
+}, undefined, false, undefined, this);
+`
+ );
+ expect(bun.transformSync("export var foo = <div foo={foo} />")).toBe(
+ `export var foo = jsx("div", {
+ foo
+}, undefined, false, undefined, this);
+`
+ );
+ expect(bun.transformSync("export var foo = <div {...foo} />")).toBe(
+ `export var foo = jsx("div", {
+ ...foo
+}, undefined, false, undefined, this);
+`
+ );
+
+ expect(bun.transformSync("export var hi = <div {foo} />")).toBe(
+ `export var hi = jsx("div", {
+ foo
+}, undefined, false, undefined, this);
+`
+ );
+ expect(bun.transformSync("export var hi = <div {foo.bar.baz} />")).toBe(
+ `export var hi = jsx("div", {
+ baz: foo.bar.baz
+}, undefined, false, undefined, this);
+`
+ );
+ expect(bun.transformSync("export var hi = <div {foo?.bar?.baz} />")).toBe(
+ `export var hi = jsx("div", {
+ baz: foo?.bar?.baz
+}, undefined, false, undefined, this);
+`
+ );
+ expect(
+ bun.transformSync("export var hi = <div {foo['baz'].bar?.baz} />")
+ ).toBe(
+ `export var hi = jsx("div", {
+ baz: foo["baz"].bar?.baz
+}, undefined, false, undefined, this);
+`
+ );
+
+ // cursed
+ expect(
+ bun.transformSync(
+ "export var hi = <div {foo[{name: () => true}.name].hi} />"
+ )
+ ).toBe(
+ `export var hi = jsx("div", {
+ hi: foo[{ name: () => true }.name].hi
+}, undefined, false, undefined, this);
+`
+ );
+ expect(
+ bun.transformSync("export var hi = <Foo {process.env.NODE_ENV} />")
+ ).toBe(
+ `export var hi = jsx(Foo, {
+ NODE_ENV: "development"
+}, undefined, false, undefined, this);
+`
+ );
+
+ expect(
+ bun.transformSync("export var hi = <div {foo['baz'].bar?.baz} />")
+ ).toBe(
+ `export var hi = jsx("div", {
+ baz: foo["baz"].bar?.baz
+}, undefined, false, undefined, this);
+`
+ );
+ try {
+ bun.transformSync("export var hi = <div {foo}={foo}= />");
+ throw new Error("Expected error");
+ } catch (e) {
+ expect(e.errors[0].message.includes('Expected ">"')).toBe(true);
+ }
+
+ expect(
+ bun.transformSync("export var hi = <div {Foo}><Foo></Foo></div>")
+ ).toBe(
+ `export var hi = jsx("div", {
+ Foo,
+ children: jsx(Foo, {}, undefined, false, undefined, this)
+}, undefined, false, undefined, this);
+`
+ );
+ expect(
+ bun.transformSync("export var hi = <div {Foo}><Foo></Foo></div>")
+ ).toBe(
+ `export var hi = jsx("div", {
+ Foo,
+ children: jsx(Foo, {}, undefined, false, undefined, this)
+}, undefined, false, undefined, this);
+`
+ );
+
+ expect(bun.transformSync("export var hi = <div>{123}}</div>").trim()).toBe(
+ `export var hi = jsx("div", {
+ children: [
+ 123,
+ "}"
+ ]
+}, undefined, true, undefined, this);
+ `.trim()
+ );
+ });
+
+ describe("inline JSX", () => {
+ const inliner = new Bun.Transpiler({
+ loader: "tsx",
+ define: {
+ "process.env.NODE_ENV": JSON.stringify("production"),
+ user_undefined: "undefined",
+ },
+ platform: "bun",
+ jsxOptimizationInline: true,
+ treeShaking: false,
+ });
+
+ it("inlines static JSX into object literals", () => {
+ expect(
+ inliner
+ .transformSync(
+ `
+export var hi = <div>{123}</div>
+export var hiWithKey = <div key="hey">{123}</div>
+export var hiWithRef = <div ref={foo}>{123}</div>
+
+export var ComponentThatChecksDefaultProps = <Hello></Hello>
+export var ComponentThatChecksDefaultPropsAndHasChildren = <Hello>my child</Hello>
+export var ComponentThatHasSpreadCausesDeopt = <Hello {...spread} />
+
+`.trim()
+ )
+ .trim()
+ ).toBe(
+ `var $$typeof = Symbol.for("react.element");
+export var hi = {
+ $$typeof,
+ type: "div",
+ key: null,
+ ref: null,
+ props: {
+ children: 123
+ },
+ _owner: null
+};
+export var hiWithKey = {
+ $$typeof,
+ type: "div",
+ key: "hey",
+ ref: null,
+ props: {
+ children: 123
+ },
+ _owner: null
+};
+export var hiWithRef = jsx("div", {
+ ref: foo,
+ children: 123
+});
+export var ComponentThatChecksDefaultProps = {
+ $$typeof,
+ type: Hello,
+ key: null,
+ ref: null,
+ props: Hello.defaultProps || {},
+ _owner: null
+};
+export var ComponentThatChecksDefaultPropsAndHasChildren = {
+ $$typeof,
+ type: Hello,
+ key: null,
+ ref: null,
+ props: __merge({
+ children: "my child"
+ }, Hello.defaultProps),
+ _owner: null
+};
+export var ComponentThatHasSpreadCausesDeopt = jsx(Hello, {
+ ...spread
+});
+`.trim()
+ );
+ });
+ });
+
+ it("require with a dynamic non-string expression", () => {
+ var nodeTranspiler = new Bun.Transpiler({ platform: "node" });
+ expect(nodeTranspiler.transformSync("require('hi' + bar)")).toBe(
+ 'require("hi" + bar);\n'
+ );
+ });
+
+ it("CommonJS", () => {
+ var nodeTranspiler = new Bun.Transpiler({ platform: "node" });
+ expect(nodeTranspiler.transformSync("module.require('hi' + 123)")).toBe(
+ 'require("hi" + 123);\n'
+ );
+
+ expect(
+ nodeTranspiler.transformSync("module.require(1 ? 'foo' : 'bar')")
+ ).toBe('require("foo");\n');
+ expect(nodeTranspiler.transformSync("require(1 ? 'foo' : 'bar')")).toBe(
+ 'require("foo");\n'
+ );
+
+ expect(
+ nodeTranspiler.transformSync("module.require(unknown ? 'foo' : 'bar')")
+ ).toBe('unknown ? require("foo") : require("bar");\n');
+ });
+
+ describe("regressions", () => {
+ it("unexpected super", () => {
+ const input = `
+ 'use strict';
+
+ const ErrorReportingMixinBase = require('./mixin-base');
+ const PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');
+ const Mixin = require('../../utils/mixin');
+
+ class ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase {
+ constructor(preprocessor, opts) {
+ super(preprocessor, opts);
+
+ this.posTracker = Mixin.install(preprocessor, PositionTrackingPreprocessorMixin);
+ this.lastErrOffset = -1;
+ }
+
+ _reportError(code) {
+ //NOTE: avoid reporting error twice on advance/retreat
+ if (this.lastErrOffset !== this.posTracker.offset) {
+ this.lastErrOffset = this.posTracker.offset;
+ super._reportError(code);
+ }
+ }
+ }
+
+ module.exports = ErrorReportingPreprocessorMixin;
+
+
+`;
+ expect(transpiler.transformSync(input, "js").length > 0).toBe(true);
+ });
+ });
+
+ describe("scanImports", () => {
+ it("reports import paths, excluding types", () => {
+ const imports = transpiler.scanImports(code, "tsx");
+ expect(imports.filter(({ path }) => path === "remix")).toHaveLength(1);
+ expect(imports.filter(({ path }) => path === "mod")).toHaveLength(0);
+ expect(imports.filter(({ path }) => path === "react")).toHaveLength(1);
+ expect(imports).toHaveLength(2);
+ });
+ });
+
+ const parsed = (
+ code,
+ trim = true,
+ autoExport = false,
+ transpiler_ = transpiler
+ ) => {
+ if (autoExport) {
+ code = "export default (" + code + ")";
+ }
+
+ var out = transpiler_.transformSync(code, "js");
+ if (autoExport && out.startsWith("export default ")) {
+ out = out.substring("export default ".length);
+ }
+
+ if (trim) {
+ out = out.trim();
+
+ if (out.endsWith(";")) {
+ out = out.substring(0, out.length - 1);
+ }
+
+ return out.trim();
+ }
+
+ return out;
+ };
+
+ const expectPrinted = (code, out) => {
+ expect(parsed(code, true, true)).toBe(out);
+ };
+
+ const expectPrinted_ = (code, out) => {
+ expect(parsed(code, !out.endsWith(";\n"), false)).toBe(out);
+ };
+
+ const expectBunPrinted_ = (code, out) => {
+ expect(parsed(code, !out.endsWith(";\n"), false, bunTranspiler)).toBe(out);
+ };
+
+ const expectParseError = (code, message) => {
+ try {
+ parsed(code, false, false);
+ } catch (er) {
+ var err = er;
+ if (er instanceof AggregateError) {
+ err = err.errors[0];
+ }
+
+ expect(er.message).toBe(message);
+
+ return;
+ }
+
+ throw new Error("Expected parse error for code\n\t" + code);
+ };
+ const ts = {
+ parsed: (code, trim = true, autoExport = false) => {
+ if (autoExport) {
+ code = "export default (" + code + ")";
+ }
+
+ var out = transpiler.transformSync(code, "ts");
+ if (autoExport && out.startsWith("export default ")) {
+ out = out.substring("export default ".length);
+ }
+
+ if (trim) {
+ out = out.trim();
+
+ if (out.endsWith(";")) {
+ out = out.substring(0, out.length - 1);
+ }
+
+ return out.trim();
+ }
+
+ return out;
+ },
+
+ expectPrinted: (code, out) => {
+ expect(ts.parsed(code, true, true)).toBe(out);
+ },
+
+ expectPrinted_: (code, out) => {
+ expect(ts.parsed(code, !out.endsWith(";\n"), false)).toBe(out);
+ },
+
+ expectParseError: (code, message) => {
+ try {
+ ts.parsed(code, false, false);
+ } catch (er) {
+ var err = er;
+ if (er instanceof AggregateError) {
+ err = err.errors[0];
+ }
+
+ expect(er.message).toBe(message);
+
+ return;
+ }
+
+ throw new Error("Expected parse error for code\n\t" + code);
+ },
+ };
+
+ describe("parser", () => {
+ it("arrays", () => {
+ expectPrinted("[]", "[]");
+ expectPrinted("[,]", "[,]");
+ expectPrinted("[1]", "[1]");
+ expectPrinted("[1,]", "[1]");
+ expectPrinted("[,1]", "[, 1]");
+ expectPrinted("[1,2]", "[1, 2]");
+ expectPrinted("[,1,2]", "[, 1, 2]");
+ expectPrinted("[1,,2]", "[1, , 2]");
+ expectPrinted("[1,2,]", "[1, 2]");
+ expectPrinted("[1,2,,]", "[1, 2, ,]");
+ });
+
+ it("exponentiation", () => {
+ expectPrinted("(delete x) ** 0", "(delete x) ** 0");
+ expectPrinted("(delete x.prop) ** 0", "(delete x.prop) ** 0");
+ expectPrinted("(delete x[0]) ** 0", "(delete x[0]) ** 0");
+
+ expectPrinted("(delete x?.prop) ** 0", "(delete x?.prop) ** 0");
+
+ expectPrinted("(void x) ** 0", "(void x) ** 0");
+ expectPrinted("(typeof x) ** 0", "(typeof x) ** 0");
+ expectPrinted("(+x) ** 0", "(+x) ** 0");
+ expectPrinted("(-x) ** 0", "(-x) ** 0");
+ expectPrinted("(~x) ** 0", "(~x) ** 0");
+ expectPrinted("(!x) ** 0", "(!x) ** 0");
+ expectPrinted("(await x) ** 0", "(await x) ** 0");
+ expectPrinted("(await -x) ** 0", "(await -x) ** 0");
+
+ expectPrinted("--x ** 2", "--x ** 2");
+ expectPrinted("++x ** 2", "++x ** 2");
+ expectPrinted("x-- ** 2", "x-- ** 2");
+ expectPrinted("x++ ** 2", "x++ ** 2");
+
+ expectPrinted("(-x) ** 2", "(-x) ** 2");
+ expectPrinted("(+x) ** 2", "(+x) ** 2");
+ expectPrinted("(~x) ** 2", "(~x) ** 2");
+ expectPrinted("(!x) ** 2", "(!x) ** 2");
+ expectPrinted("(-1) ** 2", "(-1) ** 2");
+ expectPrinted("(+1) ** 2", "1 ** 2");
+ expectPrinted("(~1) ** 2", "(~1) ** 2");
+ expectPrinted("(!1) ** 2", "false ** 2");
+ expectPrinted("(void x) ** 2", "(void x) ** 2");
+ expectPrinted("(delete x) ** 2", "(delete x) ** 2");
+ expectPrinted("(typeof x) ** 2", "(typeof x) ** 2");
+ expectPrinted("undefined ** 2", "undefined ** 2");
+
+ expectParseError("-x ** 2", "Unexpected **");
+ expectParseError("+x ** 2", "Unexpected **");
+ expectParseError("~x ** 2", "Unexpected **");
+ expectParseError("!x ** 2", "Unexpected **");
+ expectParseError("void x ** 2", "Unexpected **");
+ expectParseError("delete x ** 2", "Unexpected **");
+ expectParseError("typeof x ** 2", "Unexpected **");
+
+ expectParseError("-x.y() ** 2", "Unexpected **");
+ expectParseError("+x.y() ** 2", "Unexpected **");
+ expectParseError("~x.y() ** 2", "Unexpected **");
+ expectParseError("!x.y() ** 2", "Unexpected **");
+ expectParseError("void x.y() ** 2", "Unexpected **");
+ expectParseError("delete x.y() ** 2", "Unexpected **");
+ expectParseError("typeof x.y() ** 2", "Unexpected **");
+
+ expectParseError("delete x ** 0", "Unexpected **");
+ expectParseError("delete x.prop ** 0", "Unexpected **");
+ expectParseError("delete x[0] ** 0", "Unexpected **");
+ expectParseError("delete x?.prop ** 0", "Unexpected **");
+ expectParseError("void x ** 0", "Unexpected **");
+ expectParseError("typeof x ** 0", "Unexpected **");
+ expectParseError("+x ** 0", "Unexpected **");
+ expectParseError("-x ** 0", "Unexpected **");
+ expectParseError("~x ** 0", "Unexpected **");
+ expectParseError("!x ** 0", "Unexpected **");
+ expectParseError("await x ** 0", "Unexpected **");
+ expectParseError("await -x ** 0", "Unexpected **");
+ });
+
+ it("await", () => {
+ expectPrinted("await x", "await x");
+ expectPrinted("await +x", "await +x");
+ expectPrinted("await -x", "await -x");
+ expectPrinted("await ~x", "await ~x");
+ expectPrinted("await !x", "await !x");
+ expectPrinted("await --x", "await --x");
+ expectPrinted("await ++x", "await ++x");
+ expectPrinted("await x--", "await x--");
+ expectPrinted("await x++", "await x++");
+ expectPrinted("await void x", "await void x");
+ expectPrinted("await typeof x", "await typeof x");
+ expectPrinted("await (x * y)", "await (x * y)");
+ expectPrinted("await (x ** y)", "await (x ** y)");
+
+ expectPrinted_(
+ "async function f() { await delete x }",
+ "async function f() {\n await delete x;\n}"
+ );
+
+ // expectParseError(
+ // "await delete x",
+ // "Delete of a bare identifier cannot be used in an ECMAScript module"
+ // );
+ });
+
+ it("import assert", () => {
+ expectPrinted_(
+ `import json from "./foo.json" assert { type: "json" };`,
+ `import json from "./foo.json"`
+ );
+ expectPrinted_(
+ `import json from "./foo.json";`,
+ `import json from "./foo.json"`
+ );
+ expectPrinted_(
+ `import("./foo.json", { type: "json" });`,
+ `import("./foo.json")`
+ );
+ });
+
+ it("import with unicode escape", () => {
+ expectPrinted_(
+ `import { name } from 'mod\\u1011';`,
+ `import {name} from "mod\\u1011"`
+ );
+ });
+
+ it("fold string addition", () => {
+ expectPrinted_(
+ `export const foo = "a" + "b";`,
+ `export const foo = "ab"`
+ );
+ expectPrinted_(
+ `export const foo = "F" + "0" + "F" + "0123456789" + "ABCDEF" + "0123456789ABCDEFF0123456789ABCDEF00" + "b";`,
+ `export const foo = "F0F0123456789ABCDEF0123456789ABCDEFF0123456789ABCDEF00b"`
+ );
+ expectPrinted_(
+ `export const foo = "a" + 1 + "b";`,
+ `export const foo = "a" + 1 + "b"`
+ );
+ expectPrinted_(
+ `export const foo = "a" + "b" + 1 + "b";`,
+ `export const foo = "ab" + 1 + "b"`
+ );
+ expectPrinted_(
+ `export const foo = "a" + "b" + 1 + "b" + "c";`,
+ `export const foo = "ab" + 1 + "bc"`
+ );
+ });
+
+ it("numeric constants", () => {
+ expectBunPrinted_("export const foo = 1 + 2", "export const foo = 3");
+ expectBunPrinted_("export const foo = 1 - 2", "export const foo = -1");
+ expectBunPrinted_("export const foo = 1 * 2", "export const foo = 2");
+ });
+
+ it("pass objects to macros", () => {
+ var object = {
+ helloooooooo: {
+ message: [12345],
+ },
+ };
+
+ const output = bunTranspiler.transformSync(
+ `
+ import {whatDidIPass} from 'inline';
+
+ export function foo() {
+ return whatDidIPass();
+ }
+ `,
+ object
+ );
+ expect(output).toBe(`export function foo() {
+ return {
+ helloooooooo: {
+ message: [
+ 12345
+ ]
+ }
+ };
+}
+`);
+ });
+
+ it("rewrite string to length", () => {
+ expectPrinted_(
+ `export const foo = "a".length + "b".length;`,
+ `export const foo = 1 + 1`
+ );
+ expectBunPrinted_(
+ `export const foo = "a".length + "b".length;`,
+ `export const foo = 2`
+ );
+ });
+
+ describe("Bun.js", () => {
+ it("require -> import.meta.require", () => {
+ expectBunPrinted_(
+ `export const foo = require('bar.node')`,
+ `export const foo = import.meta.require("bar.node")`
+ );
+ });
+
+ it("require.resolve -> import.meta.resolveSync", () => {
+ expectBunPrinted_(
+ `export const foo = require.resolve('bar.node')`,
+ `export const foo = import.meta.resolveSync("bar.node")`
+ );
+ });
+
+ it('require.resolve(path, {paths: ["blah"]}) -> import.meta.resolveSync', () => {
+ expectBunPrinted_(
+ `export const foo = require.resolve('bar.node', {paths: ["blah"]})`,
+ `export const foo = import.meta.resolveSync("bar.node", { paths: ["blah"] })`
+ );
+ });
+ });
+
+ describe("Browsers", () => {
+ it('require.resolve("my-module") -> "/resolved/my-module"', () => {
+ // the module resolver & linker doesn't run with Bun.Transpiler
+ // so in this test, it becomes the same path string
+ expectPrinted_(
+ `export const foo = require.resolve('my-module')`,
+ `export const foo = "my-module"`
+ );
+ });
+ });
+
+ it("define", () => {
+ expectPrinted_(
+ `export default typeof user_undefined === 'undefined';`,
+ `export default true`
+ );
+ expectPrinted_(
+ `export default typeof user_undefined !== 'undefined';`,
+ `export default false`
+ );
+
+ expectPrinted_(
+ `export default typeof user_undefined !== 'undefined';`,
+ `export default false`
+ );
+ expectPrinted_(`export default !user_undefined;`, `export default true`);
+ });
+
+ it("decls", () => {
+ // expectParseError("var x = 0", "");
+ // expectParseError("let x = 0", "");
+ // expectParseError("const x = 0", "");
+ // expectParseError("for (var x = 0;;) ;", "");
+ // expectParseError("for (let x = 0;;) ;", "");
+ // expectParseError("for (const x = 0;;) ;", "");
+
+ // expectParseError("for (var x in y) ;", "");
+ // expectParseError("for (let x in y) ;", "");
+ // expectParseError("for (const x in y) ;", "");
+ // expectParseError("for (var x of y) ;", "");
+ // expectParseError("for (let x of y) ;", "");
+ // expectParseError("for (const x of y) ;", "");
+
+ // expectParseError("var x", "");
+ // expectParseError("let x", "");
+ expectParseError("const x", 'The constant "x" must be initialized');
+ expectParseError("const {}", "This constant must be initialized");
+ expectParseError("const []", "This constant must be initialized");
+ // expectParseError("for (var x;;) ;", "");
+ // expectParseError("for (let x;;) ;", "");
+ expectParseError(
+ "for (const x;;) ;",
+ 'The constant "x" must be initialized'
+ );
+ expectParseError(
+ "for (const {};;) ;",
+ "This constant must be initialized"
+ );
+ expectParseError(
+ "for (const [];;) ;",
+ "This constant must be initialized"
+ );
+
+ // Make sure bindings are visited during parsing
+ expectPrinted_("var {[x]: y} = {}", "var { [x]: y } = {}");
+ expectPrinted_("var {...x} = {}", "var { ...x } = {}");
+
+ // Test destructuring patterns
+ expectPrinted_("var [...x] = []", "var [...x] = []");
+ expectPrinted_("var {...x} = {}", "var { ...x } = {}");
+
+ expectPrinted_(
+ "export var foo = ([...x] = []) => {}",
+ "export var foo = ([...x] = []) => {\n}"
+ );
+
+ expectPrinted_(
+ "export var foo = ({...x} = {}) => {}",
+ "export var foo = ({ ...x } = {}) => {\n}"
+ );
+
+ expectParseError("var [...x,] = []", 'Unexpected "," after rest pattern');
+ expectParseError("var {...x,} = {}", 'Unexpected "," after rest pattern');
+ expectParseError(
+ "export default function() { return ([...x,] = []) => {} }",
+ "Unexpected trailing comma after rest element"
+ );
+ expectParseError(
+ "({...x,} = {}) => {}",
+ "Unexpected trailing comma after rest element"
+ );
+
+ expectPrinted_("[b, ...c] = d", "[b, ...c] = d");
+ expectPrinted_("([b, ...c] = d)", "[b, ...c] = d");
+ expectPrinted_("({b, ...c} = d)", "({ b, ...c } = d)");
+ expectPrinted_("({a = b} = c)", "({ a = b } = c)");
+ expectPrinted_("({a: b = c} = d)", "({ a: b = c } = d)");
+ expectPrinted_("({a: b.c} = d)", "({ a: b.c } = d)");
+ expectPrinted_("[a = {}] = b", "[a = {}] = b");
+ expectPrinted_("[[...a, b].x] = c", "[[...a, b].x] = c");
+ expectPrinted_("[{...a, b}.x] = c", "[{ ...a, b }.x] = c");
+ expectPrinted_("({x: [...a, b].x} = c)", "({ x: [...a, b].x } = c)");
+ expectPrinted_("({x: {...a, b}.x} = c)", "({ x: { ...a, b }.x } = c)");
+ expectPrinted_("[x = [...a, b]] = c", "[x = [...a, b]] = c");
+ expectPrinted_("[x = {...a, b}] = c", "[x = { ...a, b }] = c");
+ expectPrinted_("({x = [...a, b]} = c)", "({ x = [...a, b] } = c)");
+ expectPrinted_("({x = {...a, b}} = c)", "({ x = { ...a, b } } = c)");
+
+ expectPrinted_("(x = y)", "x = y");
+ expectPrinted_("([] = [])", "[] = []");
+ expectPrinted_("({} = {})", "({} = {})");
+ expectPrinted_("([[]] = [[]])", "[[]] = [[]]");
+ expectPrinted_("({x: {}} = {x: {}})", "({ x: {} } = { x: {} })");
+ expectPrinted_("(x) = y", "x = y");
+ expectParseError("([]) = []", "Invalid assignment target");
+ expectParseError("({}) = {}", "Invalid assignment target");
+ expectParseError("[([])] = [[]]", "Invalid assignment target");
+ expectParseError("({x: ({})} = {x: {}})", "Invalid assignment target");
+ expectParseError(
+ "(([]) = []) => {}",
+ "Unexpected parentheses in binding pattern"
+ );
+ expectParseError(
+ "(({}) = {}) => {}",
+ "Unexpected parentheses in binding pattern"
+ );
+ expectParseError("function f(([]) = []) {}", "Parse error");
+ expectParseError(
+ "function f(({}) = {}) {}",
+ "Parse error"
+ // 'Expected identifier but found "("\n'
+ );
+
+ expectPrinted_("for (x in y) ;", "for (x in y) {\n}");
+ expectPrinted_("for ([] in y) ;", "for ([] in y) {\n}");
+ expectPrinted_("for ({} in y) ;", "for ({} in y) {\n}");
+ expectPrinted_("for ((x) in y) ;", "for (x in y) {\n}");
+ expectParseError("for (([]) in y) ;", "Invalid assignment target");
+ expectParseError("for (({}) in y) ;", "Invalid assignment target");
+
+ expectPrinted_("for (x of y) ;", "for (x of y) {\n}");
+ expectPrinted_("for ([] of y) ;", "for ([] of y) {\n}");
+ expectPrinted_("for ({} of y) ;", "for ({} of y) {\n}");
+ expectPrinted_("for ((x) of y) ;", "for (x of y) {\n}");
+ expectParseError("for (([]) of y) ;", "Invalid assignment target");
+ expectParseError("for (({}) of y) ;", "Invalid assignment target");
+
+ expectParseError("[[...a, b]] = c", 'Unexpected "," after rest pattern');
+ expectParseError("[{...a, b}] = c", 'Unexpected "," after rest pattern');
+ expectParseError(
+ "({x: [...a, b]} = c)",
+ 'Unexpected "," after rest pattern'
+ );
+ expectParseError(
+ "({x: {...a, b}} = c)",
+ 'Unexpected "," after rest pattern'
+ );
+ expectParseError("[b, ...c,] = d", 'Unexpected "," after rest pattern');
+ expectParseError("([b, ...c,] = d)", 'Unexpected "," after rest pattern');
+ expectParseError("({b, ...c,} = d)", 'Unexpected "," after rest pattern');
+ expectParseError("({a = b})", 'Unexpected "="');
+ expectParseError("({x = {a = b}} = c)", 'Unexpected "="');
+ expectParseError("[a = {b = c}] = d", 'Unexpected "="');
+
+ expectPrinted_(
+ "for ([{a = {}}] in b) {}",
+ "for ([{ a = {} }] in b) {\n}"
+ );
+ expectPrinted_(
+ "for ([{a = {}}] of b) {}",
+ "for ([{ a = {} }] of b) {\n}"
+ );
+ expectPrinted_("for ({a = {}} in b) {}", "for ({ a = {} } in b) {\n}");
+ expectPrinted_("for ({a = {}} of b) {}", "for ({ a = {} } of b) {\n}");
+
+ expectParseError("({a = {}} in b)", 'Unexpected "="');
+ expectParseError("[{a = {}}]\nof()", 'Unexpected "="');
+ expectParseError(
+ "for ([...a, b] in c) {}",
+ 'Unexpected "," after rest pattern'
+ );
+ expectParseError(
+ "for ([...a, b] of c) {}",
+ 'Unexpected "," after rest pattern'
+ );
+ });
+
+ it("regexp", () => {
+ expectPrinted("/x/g", "/x/g");
+ expectPrinted("/x/i", "/x/i");
+ expectPrinted("/x/m", "/x/m");
+ expectPrinted("/x/s", "/x/s");
+ expectPrinted("/x/u", "/x/u");
+ expectPrinted("/x/y", "/x/y");
+ expectPrinted("/gimme/g", "/gimme/g");
+ expectPrinted("/gimgim/g", "/gimgim/g");
+
+ expectParseError(
+ "/x/msuygig",
+ 'Duplicate flag "g" in regular expression'
+ );
+ });
+
+ it("identifier escapes", () => {
+ expectPrinted_("var _\u0076\u0061\u0072", "var _var");
+ expectParseError(
+ "var \u0076\u0061\u0072",
+ 'Expected identifier but found "\u0076\u0061\u0072"'
+ );
+ expectParseError(
+ "\\u0076\\u0061\\u0072 foo",
+ "Unexpected \\u0076\\u0061\\u0072"
+ );
+
+ expectPrinted_("foo._\u0076\u0061\u0072", "foo._var");
+ expectPrinted_("foo.\u0076\u0061\u0072", "foo.var");
+
+ // expectParseError("\u200Ca", 'Unexpected "\\u200c"');
+ // expectParseError("\u200Da", 'Unexpected "\\u200d"');
+ });
+ });
+
+ it("private identifiers", () => {
+ expectParseError("#foo", "Unexpected #foo");
+ expectParseError("#foo in this", "Unexpected #foo");
+ expectParseError("this.#foo", 'Expected identifier but found "#foo"');
+ expectParseError("this?.#foo", 'Expected identifier but found "#foo"');
+ expectParseError("({ #foo: 1 })", 'Expected identifier but found "#foo"');
+ expectParseError(
+ "class Foo { x = { #foo: 1 } }",
+ 'Expected identifier but found "#foo"'
+ );
+ expectParseError("class Foo { x = #foo }", 'Expected "in" but found "}"');
+ expectParseError(
+ "class Foo { #foo; foo() { delete this.#foo } }",
+ 'Deleting the private name "#foo" is forbidden'
+ );
+ expectParseError(
+ "class Foo { #foo; foo() { delete this?.#foo } }",
+ 'Deleting the private name "#foo" is forbidden'
+ );
+ expectParseError(
+ "class Foo extends Bar { #foo; foo() { super.#foo } }",
+ 'Expected identifier but found "#foo"'
+ );
+ expectParseError(
+ "class Foo { #foo = () => { for (#foo in this) ; } }",
+ "Unexpected #foo"
+ );
+ expectParseError(
+ "class Foo { #foo = () => { for (x = #foo in this) ; } }",
+ "Unexpected #foo"
+ );
+ expectPrinted_("class Foo { #foo }", "class Foo {\n #foo;\n}");
+ expectPrinted_("class Foo { #foo = 1 }", "class Foo {\n #foo = 1;\n}");
+ expectPrinted_(
+ "class Foo { #foo = #foo in this }",
+ "class Foo {\n #foo = #foo in this;\n}"
+ );
+ expectPrinted_(
+ "class Foo { #foo = #foo in (#bar in this); #bar }",
+ "class Foo {\n #foo = #foo in (#bar in this);\n #bar;\n}"
+ );
+ expectPrinted_(
+ "class Foo { #foo() {} }",
+ "class Foo {\n #foo() {\n }\n}"
+ );
+ expectPrinted_(
+ "class Foo { get #foo() {} }",
+ "class Foo {\n get #foo() {\n }\n}"
+ );
+ expectPrinted_(
+ "class Foo { set #foo(x) {} }",
+ "class Foo {\n set #foo(x) {\n }\n}"
+ );
+ expectPrinted_(
+ "class Foo { static #foo }",
+ "class Foo {\n static #foo;\n}"
+ );
+ expectPrinted_(
+ "class Foo { static #foo = 1 }",
+ "class Foo {\n static #foo = 1;\n}"
+ );
+ expectPrinted_(
+ "class Foo { static #foo() {} }",
+ "class Foo {\n static #foo() {\n }\n}"
+ );
+ expectPrinted_(
+ "class Foo { static get #foo() {} }",
+ "class Foo {\n static get #foo() {\n }\n}"
+ );
+ expectPrinted_(
+ "class Foo { static set #foo(x) {} }",
+ "class Foo {\n static set #foo(x) {\n }\n}"
+ );
+
+ expectParseError(
+ "class Foo { #foo = #foo in #bar in this; #bar }",
+ "Unexpected #bar"
+ );
+
+ expectParseError(
+ "class Foo { #constructor }",
+ 'Invalid field name "#constructor"'
+ );
+ expectParseError(
+ "class Foo { #constructor() {} }",
+ 'Invalid method name "#constructor"'
+ );
+ expectParseError(
+ "class Foo { static #constructor }",
+ 'Invalid field name "#constructor"'
+ );
+ expectParseError(
+ "class Foo { static #constructor() {} }",
+ 'Invalid method name "#constructor"'
+ );
+ expectParseError(
+ "class Foo { #\\u0063onstructor }",
+ 'Invalid field name "#constructor"'
+ );
+ expectParseError(
+ "class Foo { #\\u0063onstructor() {} }",
+ 'Invalid method name "#constructor"'
+ );
+ expectParseError(
+ "class Foo { static #\\u0063onstructor }",
+ 'Invalid field name "#constructor"'
+ );
+ expectParseError(
+ "class Foo { static #\\u0063onstructor() {} }",
+ 'Invalid method name "#constructor"'
+ );
+ const errorText = '"#foo" has already been declared';
+ expectParseError("class Foo { #foo; #foo }", errorText);
+ expectParseError("class Foo { #foo; static #foo }", errorText);
+ expectParseError("class Foo { static #foo; #foo }", errorText);
+ expectParseError("class Foo { #foo; #foo() {} }", errorText);
+ expectParseError("class Foo { #foo; get #foo() {} }", errorText);
+ expectParseError("class Foo { #foo; set #foo(x) {} }", errorText);
+ expectParseError("class Foo { #foo() {} #foo }", errorText);
+ expectParseError("class Foo { get #foo() {} #foo }", errorText);
+ expectParseError("class Foo { set #foo(x) {} #foo }", errorText);
+ expectParseError("class Foo { get #foo() {} get #foo() {} }", errorText);
+ expectParseError("class Foo { set #foo(x) {} set #foo(x) {} }", errorText);
+ expectParseError(
+ "class Foo { get #foo() {} set #foo(x) {} #foo }",
+ errorText
+ );
+ expectParseError(
+ "class Foo { set #foo(x) {} get #foo() {} #foo }",
+ errorText
+ );
+
+ expectPrinted_(
+ "class Foo { get #foo() {} set #foo(x) { this.#foo } }",
+ "class Foo {\n get #foo() {\n }\n set #foo(x) {\n this.#foo;\n }\n}"
+ );
+ expectPrinted_(
+ "class Foo { set #foo(x) { this.#foo } get #foo() {} }",
+ "class Foo {\n set #foo(x) {\n this.#foo;\n }\n get #foo() {\n }\n}"
+ );
+ expectPrinted_(
+ "class Foo { #foo } class Bar { #foo }",
+ "class Foo {\n #foo;\n}\n\nclass Bar {\n #foo;\n}"
+ );
+ expectPrinted_(
+ "class Foo { foo = this.#foo; #foo }",
+ "class Foo {\n foo = this.#foo;\n #foo;\n}"
+ );
+ expectPrinted_(
+ "class Foo { foo = this?.#foo; #foo }",
+ "class Foo {\n foo = this?.#foo;\n #foo;\n}"
+ );
+ expectParseError(
+ "class Foo { #foo } class Bar { foo = this.#foo }",
+ 'Private name "#foo" must be declared in an enclosing class'
+ );
+ expectParseError(
+ "class Foo { #foo } class Bar { foo = this?.#foo }",
+ 'Private name "#foo" must be declared in an enclosing class'
+ );
+ expectParseError(
+ "class Foo { #foo } class Bar { foo = #foo in this }",
+ 'Private name "#foo" must be declared in an enclosing class'
+ );
+
+ expectPrinted_(
+ `class Foo {
+ #if
+ #im() { return this.#im(this.#if) }
+ static #sf
+ static #sm() { return this.#sm(this.#sf) }
+ foo() {
+ return class {
+ #inner() {
+ return [this.#im, this?.#inner, this?.x.#if]
+ }
+ }
+ }
+}
+`,
+ `class Foo {
+ #if;
+ #im() {
+ return this.#im(this.#if);
+ }
+ static #sf;
+ static #sm() {
+ return this.#sm(this.#sf);
+ }
+ foo() {
+ return class {
+ #inner() {
+ return [this.#im, this?.#inner, this?.x.#if];
+ }
+ };
+ }
+}`
+ );
+ });
+
+ it("type only exports", () => {
+ let { expectPrinted_, expectParseError } = ts;
+ expectPrinted_("export type {foo, bar as baz} from 'bar'", "");
+ expectPrinted_("export type {foo, bar as baz}", "");
+ expectPrinted_("export type {foo} from 'bar'; x", "x");
+ expectPrinted_("export type {foo} from 'bar'\nx", "x");
+ expectPrinted_("export type {default} from 'bar'", "");
+ expectPrinted_(
+ "export { type } from 'mod'; type",
+ 'export { type } from "mod";\ntype'
+ );
+ expectPrinted_(
+ "export { type, as } from 'mod'",
+ 'export { type, as } from "mod"'
+ );
+ expectPrinted_(
+ "export { x, type foo } from 'mod'; x",
+ 'export { x } from "mod";\nx'
+ );
+ expectPrinted_(
+ "export { x, type as } from 'mod'; x",
+ 'export { x } from "mod";\nx'
+ );
+ expectPrinted_(
+ "export { x, type foo as bar } from 'mod'; x",
+ 'export { x } from "mod";\nx'
+ );
+ expectPrinted_(
+ "export { x, type foo as as } from 'mod'; x",
+ 'export { x } from "mod";\nx'
+ );
+ expectPrinted_(
+ "export { type as as } from 'mod'; as",
+ 'export { type as as } from "mod";\nas'
+ );
+ expectPrinted_(
+ "export { type as foo } from 'mod'; foo",
+ 'export { type as foo } from "mod";\nfoo'
+ );
+ expectPrinted_(
+ "export { type as type } from 'mod'; type",
+ 'export { type } from "mod";\ntype'
+ );
+ expectPrinted_(
+ "export { x, type as as foo } from 'mod'; x",
+ 'export { x } from "mod";\nx'
+ );
+ expectPrinted_(
+ "export { x, type as as as } from 'mod'; x",
+ 'export { x } from "mod";\nx'
+ );
+ expectPrinted_(
+ "export { x, type type as as } from 'mod'; x",
+ 'export { x } from "mod";\nx'
+ );
+ expectPrinted_(
+ "export { x, \\u0074ype y }; let x, y",
+ "export { x };\nlet x, y"
+ );
+ expectPrinted_(
+ "export { x, \\u0074ype y } from 'mod'",
+ 'export { x } from "mod"'
+ );
+ expectPrinted_(
+ "export { x, type if } from 'mod'",
+ 'export { x } from "mod"'
+ );
+ expectPrinted_("export { x, type y as if }; let x", "export { x };\nlet x");
+ expectPrinted_("export { type x };", "");
+ });
+
+ it("delete + optional chain", () => {
+ expectPrinted_("delete foo.bar.baz", "delete foo.bar.baz");
+ expectPrinted_("delete foo?.bar.baz", "delete foo?.bar.baz");
+ expectPrinted_("delete foo?.bar?.baz", "delete foo?.bar?.baz");
+ });
+
+ it("useDefineForConst TypeScript class initialization", () => {
+ var { expectPrinted_ } = ts;
+ expectPrinted_(
+ `
+class Foo {
+ constructor(public x: string = "hey") {}
+ bar: number;
+}
+`.trim(),
+ `
+class Foo {
+ x;
+ constructor(x = "hey") {
+ this.x = x;
+ }
+ bar;
+}
+`.trim()
+ );
+ });
+
+ it("class static blocks", () => {
+ expectPrinted_(
+ "class Foo { static {} }",
+ "class Foo {\n static {\n }\n}"
+ );
+ expectPrinted_(
+ "class Foo { static {} x = 1 }",
+ "class Foo {\n static {\n }\n x = 1;\n}"
+ );
+ expectPrinted_(
+ "class Foo { static { this.foo() } }",
+ "class Foo {\n static {\n this.foo();\n }\n}"
+ );
+
+ expectParseError(
+ "class Foo { static { yield } }",
+ '"yield" is a reserved word and cannot be used in strict mode'
+ );
+ expectParseError(
+ "class Foo { static { await } }",
+ 'The keyword "await" cannot be used here'
+ );
+ expectParseError(
+ "class Foo { static { return } }",
+ "A return statement cannot be used here"
+ );
+ expectParseError(
+ "class Foo { static { break } }",
+ 'Cannot use "break" here'
+ );
+ expectParseError(
+ "class Foo { static { continue } }",
+ 'Cannot use "continue" here'
+ );
+ expectParseError(
+ "x: { class Foo { static { break x } } }",
+ 'There is no containing label named "x"'
+ );
+ expectParseError(
+ "x: { class Foo { static { continue x } } }",
+ 'There is no containing label named "x"'
+ );
+
+ expectParseError(
+ "class Foo { get #x() { this.#x = 1 } }",
+ 'Writing to getter-only property "#x" will throw'
+ );
+ expectParseError(
+ "class Foo { get #x() { this.#x += 1 } }",
+ 'Writing to getter-only property "#x" will throw'
+ );
+ expectParseError(
+ "class Foo { set #x(x) { this.#x } }",
+ 'Reading from setter-only property "#x" will throw'
+ );
+ expectParseError(
+ "class Foo { set #x(x) { this.#x += 1 } }",
+ 'Reading from setter-only property "#x" will throw'
+ );
+
+ // Writing to method warnings
+ expectParseError(
+ "class Foo { #x() { this.#x = 1 } }",
+ 'Writing to read-only method "#x" will throw'
+ );
+ expectParseError(
+ "class Foo { #x() { this.#x += 1 } }",
+ 'Writing to read-only method "#x" will throw'
+ );
+ });
+
+ describe("simplification", () => {
+ it("unary operator", () => {
+ expectPrinted("a = !(b, c)", "a = (b , !c)");
+ });
+
+ it("constant folding", () => {
+ expectPrinted("1 && 2", "2");
+ expectPrinted("1 || 2", "1");
+ expectPrinted("0 && 1", "0");
+ expectPrinted("0 || 1", "1");
+
+ expectPrinted("null ?? 1", "1");
+ expectPrinted("undefined ?? 1", "1");
+ expectPrinted("0 ?? 1", "0");
+ expectPrinted("false ?? 1", "false");
+ expectPrinted('"" ?? 1', '""');
+
+ expectPrinted("typeof undefined", '"undefined"');
+ expectPrinted("typeof null", '"object"');
+ expectPrinted("typeof false", '"boolean"');
+ expectPrinted("typeof true", '"boolean"');
+ expectPrinted("typeof 123", '"number"');
+ expectPrinted("typeof 123n", '"bigint"');
+ expectPrinted("typeof 'abc'", '"string"');
+ expectPrinted("typeof function() {}", '"function"');
+ expectPrinted("typeof (() => {})", '"function"');
+ expectPrinted("typeof {}", "typeof {}");
+ expectPrinted("typeof []", "typeof []");
+
+ expectPrinted("undefined === undefined", "true");
+ expectPrinted("undefined !== undefined", "false");
+ expectPrinted("undefined == undefined", "true");
+ expectPrinted("undefined != undefined", "false");
+
+ expectPrinted("null === null", "true");
+ expectPrinted("null !== null", "false");
+ expectPrinted("null == null", "true");
+ expectPrinted("null != null", "false");
+
+ expectPrinted("undefined === null", "undefined === null");
+ expectPrinted("undefined !== null", "undefined !== null");
+ expectPrinted("undefined == null", "undefined == null");
+ expectPrinted("undefined != null", "undefined != null");
+
+ expectPrinted("true === true", "true");
+ expectPrinted("true === false", "false");
+ expectPrinted("true !== true", "false");
+ expectPrinted("true !== false", "true");
+ expectPrinted("true == true", "true");
+ expectPrinted("true == false", "false");
+ expectPrinted("true != true", "false");
+ expectPrinted("true != false", "true");
+
+ expectPrinted("1 === 1", "true");
+ expectPrinted("1 === 2", "false");
+ expectPrinted("1 === '1'", '1 === "1"');
+ expectPrinted("1 == 1", "true");
+ expectPrinted("1 == 2", "false");
+ expectPrinted("1 == '1'", '1 == "1"');
+
+ expectPrinted("1 !== 1", "false");
+ expectPrinted("1 !== 2", "true");
+ expectPrinted("1 !== '1'", '1 !== "1"');
+ expectPrinted("1 != 1", "false");
+ expectPrinted("1 != 2", "true");
+ expectPrinted("1 != '1'", '1 != "1"');
+
+ expectPrinted("'a' === '\\x61'", "true");
+ expectPrinted("'a' === '\\x62'", "false");
+ expectPrinted("'a' === 'abc'", "false");
+ expectPrinted("'a' !== '\\x61'", "false");
+ expectPrinted("'a' !== '\\x62'", "true");
+ expectPrinted("'a' !== 'abc'", "true");
+ expectPrinted("'a' == '\\x61'", "true");
+ expectPrinted("'a' == '\\x62'", "false");
+ expectPrinted("'a' == 'abc'", "false");
+ expectPrinted("'a' != '\\x61'", "false");
+ expectPrinted("'a' != '\\x62'", "true");
+ expectPrinted("'a' != 'abc'", "true");
+
+ expectPrinted("'a' + 'b'", '"ab"');
+ expectPrinted("'a' + 'bc'", '"abc"');
+ expectPrinted("'ab' + 'c'", '"abc"');
+ expectPrinted("x + 'a' + 'b'", 'x + "ab"');
+ expectPrinted("x + 'a' + 'bc'", 'x + "abc"');
+ expectPrinted("x + 'ab' + 'c'", 'x + "abc"');
+ expectPrinted("'a' + 1", '"a" + 1');
+ expectPrinted("x * 'a' + 'b'", 'x * "a" + "b"');
+
+ expectPrinted("'string' + `template`", `"stringtemplate"`);
+
+ expectPrinted("`template` + 'string'", "`templatestring`");
+
+ // TODO: string template simplification
+ // expectPrinted("'string' + `a${foo}b`", "`stringa${foo}b`");
+ // expectPrinted("'string' + tag`template`", '"string" + tag`template`;');
+ // expectPrinted("`a${foo}b` + 'string'", "`a${foo}bstring`");
+ // expectPrinted("tag`template` + 'string'", 'tag`template` + "string"');
+ // expectPrinted("`template` + `a${foo}b`", "`templatea${foo}b`");
+ // expectPrinted("`a${foo}b` + `template`", "`a${foo}btemplate`");
+ // expectPrinted("`a${foo}b` + `x${bar}y`", "`a${foo}bx${bar}y`");
+ // expectPrinted(
+ // "`a${i}${j}bb` + `xxx${bar}yyyy`",
+ // "`a${i}${j}bbxxx${bar}yyyy`"
+ // );
+ // expectPrinted(
+ // "`a${foo}bb` + `xxx${i}${j}yyyy`",
+ // "`a${foo}bbxxx${i}${j}yyyy`"
+ // );
+ // expectPrinted(
+ // "`template` + tag`template2`",
+ // "`template` + tag`template2`"
+ // );
+ // expectPrinted(
+ // "tag`template` + `template2`",
+ // "tag`template` + `template2`"
+ // );
+
+ expectPrinted("123", "123");
+ expectPrinted("123 .toString()", "123 .toString()");
+ expectPrinted("-123", "-123");
+ expectPrinted("(-123).toString()", "(-123).toString()");
+ expectPrinted("-0", "-0");
+ expectPrinted("(-0).toString()", "(-0).toString()");
+ expectPrinted("-0 === 0", "true");
+
+ expectPrinted("NaN", "NaN");
+ expectPrinted("NaN.toString()", "NaN.toString()");
+ expectPrinted("NaN === NaN", "false");
+
+ expectPrinted("Infinity", "Infinity");
+ expectPrinted("Infinity.toString()", "Infinity.toString()");
+ expectPrinted("(-Infinity).toString()", "(-Infinity).toString()");
+ expectPrinted("Infinity === Infinity", "true");
+ expectPrinted("Infinity === -Infinity", "false");
+
+ expectPrinted("123n === 1_2_3n", "true");
+ });
+ describe("type coercions", () => {
+ const dead = `
+ if ("") {
+ TEST_FAIL
+ }
+
+ if (false) {
+ TEST_FAIL
+ }
+
+ if (0) {
+ TEST_FAIL
+ }
+
+ if (void 0) {
+ TEST_FAIL
+ }
+
+ if (null) {
+ TEST_FAIL
+ }
+
+ var should_be_true = typeof "" === "string" || false
+ var should_be_false = typeof "" !== "string" && TEST_FAIL;
+ var should_be_false_2 = typeof true === "string" && TEST_FAIL;
+ var should_be_false_3 = typeof false === "string" && TEST_FAIL;
+ var should_be_false_4 = typeof 123n === "string" && TEST_FAIL;
+ var should_be_false_5 = typeof function(){} === "string" && TEST_FAIL;
+ var should_be_kept = typeof globalThis.BACON === "string" && TEST_OK;
+ var should_be_kept_1 = typeof TEST_OK === "string";
+
+ var should_be_kept_2 = TEST_OK ?? true;
+ var should_be_kept_4 = { "TEST_OK": true } ?? TEST_FAIL;
+ var should_be_false_6 = false ?? TEST_FAIL;
+ var should_be_true_7 = true ?? TEST_FAIL;
+ `;
+ const out = transpiler.transformSync(dead);
+
+ for (let line of out.split("\n")) {
+ it(line, () => {
+ if (line.includes("should_be_kept")) {
+ expect(line.includes("TEST_OK")).toBe(true);
+ }
+
+ if (line.includes("should_be_false")) {
+ if (!line.includes("= false"))
+ throw new Error(`Expected false in "${line}"`);
+ expect(line.includes("= false")).toBe(true);
+ }
+
+ if (line.includes("TEST_FAIL")) {
+ throw new Error(`"${line}"\n\tshould not contain TEST_FAIL`);
+ }
+ });
+ }
+ });
+ });
+
+ describe("scan", () => {
+ it("reports all export names", () => {
+ const { imports, exports } = transpiler.scan(code);
+
+ expect(exports[0]).toBe("action");
+ expect(exports[2]).toBe("loader");
+ expect(exports[1]).toBe("default");
+ expect(exports).toHaveLength(3);
+
+ expect(imports.filter(({ path }) => path === "remix")).toHaveLength(1);
+ expect(imports.filter(({ path }) => path === "mod")).toHaveLength(0);
+ expect(imports.filter(({ path }) => path === "react")).toHaveLength(1);
+ expect(imports).toHaveLength(2);
+ });
+ });
+
+ describe("transform", () => {
+ it("supports macros", async () => {
+ const out = await transpiler.transform(`
+ import {keepSecondArgument} from 'macro:${
+ import.meta.dir
+ }/macro-check.js';
+
+ export default keepSecondArgument("Test failed", "Test passed");
+ export function otherNamesStillWork() {}
+ `);
+ expect(out.includes("Test failed")).toBe(false);
+ expect(out.includes("Test passed")).toBe(true);
+
+ // ensure both the import and the macro function call are removed
+ expect(out.includes("keepSecondArgument")).toBe(false);
+ expect(out.includes("otherNamesStillWork")).toBe(true);
+ });
+
+ it("sync supports macros", () => {
+ const out = transpiler.transformSync(`
+ import {keepSecondArgument} from 'macro:${
+ import.meta.dir
+ }/macro-check.js';
+
+ export default keepSecondArgument("Test failed", "Test passed");
+ export function otherNamesStillWork() {
+
+ }
+ `);
+ expect(out.includes("Test failed")).toBe(false);
+ expect(out.includes("Test passed")).toBe(true);
+
+ expect(out.includes("keepSecondArgument")).toBe(false);
+ expect(out.includes("otherNamesStillWork")).toBe(true);
+ });
+
+ const importLines = [
+ "import {createElement, bacon} from 'react';",
+ "import {bacon, createElement} from 'react';",
+ ];
+ describe("sync supports macros remap", () => {
+ for (let importLine of importLines) {
+ it(importLine, () => {
+ var thisCode = `
+ ${importLine}
+
+ export default bacon("Test failed", "Test passed");
+ export function otherNamesStillWork() {
+ return createElement("div");
+ }
+
+ `;
+ var out = transpiler.transformSync(thisCode);
+ try {
+ expect(out.includes("Test failed")).toBe(false);
+ expect(out.includes("Test passed")).toBe(true);
+
+ expect(out.includes("bacon")).toBe(false);
+ expect(out.includes("createElement")).toBe(true);
+ } catch (e) {
+ console.log("Failing code:\n\n" + out + "\n");
+ throw e;
+ }
+ });
+ }
+ });
+
+ it("macro remap removes import statement if its the only used one", () => {
+ const out = transpiler.transformSync(`
+ import {bacon} from 'react';
+
+ export default bacon("Test failed", "Test passed");
+ `);
+
+ expect(out.includes("Test failed")).toBe(false);
+ expect(out.includes("Test passed")).toBe(true);
+
+ expect(out.includes("bacon")).toBe(false);
+ expect(out.includes("import")).toBe(false);
+ });
+
+ it("removes types", () => {
+ expect(code.includes("mod")).toBe(true);
+ expect(code.includes("xx")).toBe(true);
+ expect(code.includes("ActionFunction")).toBe(true);
+ expect(code.includes("LoaderFunction")).toBe(true);
+ expect(code.includes("ReactNode")).toBe(true);
+ expect(code.includes("React")).toBe(true);
+ expect(code.includes("Component")).toBe(true);
+ const out = transpiler.transformSync(code);
+
+ expect(out.includes("ActionFunction")).toBe(false);
+ expect(out.includes("LoaderFunction")).toBe(false);
+ expect(out.includes("mod")).toBe(false);
+ expect(out.includes("xx")).toBe(false);
+ expect(out.includes("ReactNode")).toBe(false);
+ const { exports } = transpiler.scan(out);
+ exports.sort();
+
+ expect(exports[0]).toBe("action");
+ expect(exports[2]).toBe("loader");
+ expect(exports[1]).toBe("default");
+ expect(exports).toHaveLength(3);
+ });
+ });
+});
diff --git a/test/bun.js/tsconfig.json b/test/bun.js/tsconfig.json
new file mode 100644
index 000000000..9a6c36e06
--- /dev/null
+++ b/test/bun.js/tsconfig.json
@@ -0,0 +1,16 @@
+{
+ "compilerOptions": {
+ "lib": ["ESNext"],
+ "module": "esnext",
+ "target": "esnext",
+ "noEmit": true,
+ "allowJs": true,
+ "typeRoots": ["../../types"],
+ "types": ["bun"],
+ "allowSyntheticDefaultImports": true,
+ "baseUrl": ".",
+ "paths": {
+ "foo/bar": ["baz.js"]
+ }
+ }
+}
diff --git a/test/bun.js/unsafe.test.js b/test/bun.js/unsafe.test.js
new file mode 100644
index 000000000..741dc0241
--- /dev/null
+++ b/test/bun.js/unsafe.test.js
@@ -0,0 +1,51 @@
+import { test, expect, it, describe } from "bun:test";
+import { gc } from "./gc";
+
+it("arrayBufferToString u8", async () => {
+ var encoder = new TextEncoder();
+ const bytes = encoder.encode("hello world");
+ gc(true);
+ expect(Bun.unsafe.arrayBufferToString(bytes)).toBe("hello world");
+ gc(true);
+ await new Promise((resolve) => setTimeout(resolve, 0));
+ gc(true);
+});
+
+it("arrayBufferToString ArrayBuffer", async () => {
+ var encoder = new TextEncoder();
+ var bytes = encoder.encode("hello world");
+ gc(true);
+ const out = Bun.unsafe.arrayBufferToString(bytes.buffer);
+ expect(out).toBe("hello world");
+ gc(true);
+ await new Promise((resolve) => setTimeout(resolve, 0));
+ globalThis.bytes = bytes;
+ gc(true);
+ expect(out).toBe("hello world");
+});
+
+it("arrayBufferToString u16", () => {
+ var encoder = new TextEncoder();
+ const bytes = encoder.encode("hello world");
+ var uint16 = new Uint16Array(bytes.byteLength);
+ uint16.set(bytes);
+ const charCodes = Bun.unsafe
+ .arrayBufferToString(uint16)
+ .split("")
+ .map((a) => a.charCodeAt(0));
+ gc(true);
+ for (let i = 0; i < charCodes.length; i++) {
+ expect("hello world"[i]).toBe(String.fromCharCode(charCodes[i]));
+ }
+ gc(true);
+ expect(charCodes.length).toBe("hello world".length);
+ gc(true);
+});
+
+it("Bun.allocUnsafe", () => {
+ var buffer = Bun.allocUnsafe(1024);
+ expect(buffer instanceof Uint8Array).toBe(true);
+ expect(buffer.length).toBe(1024);
+ buffer[0] = 0;
+ expect(buffer[0]).toBe(0);
+});
diff --git a/test/bun.js/url.test.ts b/test/bun.js/url.test.ts
new file mode 100644
index 000000000..37ea2008b
--- /dev/null
+++ b/test/bun.js/url.test.ts
@@ -0,0 +1,102 @@
+import { describe, it, expect } from "bun:test";
+
+describe("url", () => {
+ it("prints", () => {
+ expect(Bun.inspect(new URL("https://example.com"))).toBe(
+ "https://example.com/"
+ );
+
+ expect(
+ Bun.inspect(
+ new URL(
+ "https://github.com/Jarred-Sumner/bun/issues/135?hello%20i%20have%20spaces%20thank%20you%20good%20night"
+ )
+ )
+ ).toBe(
+ "https://github.com/Jarred-Sumner/bun/issues/135?hello%20i%20have%20spaces%20thank%20you%20good%20night"
+ );
+ });
+ it("works", () => {
+ const inputs: [
+ [
+ string,
+ {
+ hash: string;
+ host: string;
+ hostname: string;
+ href: string;
+ origin: string;
+ password: string;
+ pathname: string;
+ port: string;
+ protocol: string;
+ search: string;
+ username: string;
+ }
+ ]
+ ] = [
+ [
+ "https://username:password@api.foo.bar.com:9999/baz/okay/i/123?ran=out&of=things#to-use-as-a-placeholder",
+ {
+ hash: "#to-use-as-a-placeholder",
+ host: "api.foo.bar.com:9999",
+ hostname: "api.foo.bar.com",
+ href: "https://username:password@api.foo.bar.com:9999/baz/okay/i/123?ran=out&of=things#to-use-as-a-placeholder",
+ origin: "https://api.foo.bar.com:9999",
+ password: "password",
+ pathname: "/baz/okay/i/123",
+ port: "9999",
+ protocol: "https:",
+ search: "?ran=out&of=things",
+ username: "username",
+ },
+ ],
+ [
+ "https://url.spec.whatwg.org/#url-serializing",
+ {
+ hash: "#url-serializing",
+ host: "url.spec.whatwg.org",
+ hostname: "url.spec.whatwg.org",
+ href: "https://url.spec.whatwg.org/#url-serializing",
+ origin: "https://url.spec.whatwg.org",
+ password: "",
+ pathname: "/",
+ port: "",
+ protocol: "https:",
+ search: "",
+ username: "",
+ },
+ ],
+ [
+ "https://url.spec.whatwg.org#url-serializing",
+ {
+ hash: "#url-serializing",
+ host: "url.spec.whatwg.org",
+ hostname: "url.spec.whatwg.org",
+ href: "https://url.spec.whatwg.org/#url-serializing",
+ origin: "https://url.spec.whatwg.org",
+ password: "",
+ pathname: "/",
+ port: "",
+ protocol: "https:",
+ search: "",
+ username: "",
+ },
+ ],
+ ];
+
+ for (let [url, values] of inputs) {
+ const result = new URL(url);
+ expect(result.hash).toBe(values.hash);
+ expect(result.host).toBe(values.host);
+ expect(result.hostname).toBe(values.hostname);
+ expect(result.href).toBe(values.href);
+ expect(result.password).toBe(values.password);
+ expect(result.pathname).toBe(values.pathname);
+ expect(result.port).toBe(values.port);
+ expect(result.protocol).toBe(values.protocol);
+ expect(result.search).toBe(values.search);
+ expect(result.username).toBe(values.username);
+ }
+ });
+});
diff --git a/test/bun.js/wasm-return-1-test.zig b/test/bun.js/wasm-return-1-test.zig
new file mode 100644
index 000000000..d46bdae92
--- /dev/null
+++ b/test/bun.js/wasm-return-1-test.zig
@@ -0,0 +1,5 @@
+export fn hello() i32 {
+ return 1;
+}
+
+pub fn main() void {}
diff --git a/test/bun.js/wasm.js b/test/bun.js/wasm.js
new file mode 100644
index 000000000..a4daaaffe
--- /dev/null
+++ b/test/bun.js/wasm.js
@@ -0,0 +1 @@
+import * as wasm from "./wasm-return-1-test.wasm";
diff --git a/test/bun.js/wasm.test.js b/test/bun.js/wasm.test.js
new file mode 100644
index 000000000..ab88d5beb
--- /dev/null
+++ b/test/bun.js/wasm.test.js
@@ -0,0 +1,20 @@
+import { it } from "bun:test";
+// import * as wasm from "./wasm-return-1-test.wasm";
+
+// import { readFileSync } from "fs";
+
+// it("wasm readFileSync", async () => {
+// console.log("here");
+// console.log(wasm.hello());
+// });
+
+// it("wasm import", async () => {
+// console.log("heyt");
+// try {
+// console.log("hi");
+// expect(wasm.hello()).toBe(1);
+// } catch (err) {
+// console.error(err);
+// throw err;
+// }
+// });
diff --git a/test/bun.js/web-globals.test.js b/test/bun.js/web-globals.test.js
new file mode 100644
index 000000000..ac7c22e84
--- /dev/null
+++ b/test/bun.js/web-globals.test.js
@@ -0,0 +1,46 @@
+import { expect, test } from "bun:test";
+
+test("exists", () => {
+ expect(typeof URL !== "undefined").toBe(true);
+ expect(typeof URLSearchParams !== "undefined").toBe(true);
+ expect(typeof DOMException !== "undefined").toBe(true);
+ expect(typeof Event !== "undefined").toBe(true);
+ expect(typeof EventTarget !== "undefined").toBe(true);
+ expect(typeof AbortController !== "undefined").toBe(true);
+ expect(typeof AbortSignal !== "undefined").toBe(true);
+ expect(typeof CustomEvent !== "undefined").toBe(true);
+ expect(typeof Headers !== "undefined").toBe(true);
+ expect(typeof ErrorEvent !== "undefined").toBe(true);
+ expect(typeof CloseEvent !== "undefined").toBe(true);
+ expect(typeof MessageEvent !== "undefined").toBe(true);
+ expect(typeof TextEncoder !== "undefined").toBe(true);
+ expect(typeof WebSocket !== "undefined").toBe(true);
+});
+
+test("CloseEvent", () => {
+ var event = new CloseEvent("close", { reason: "world" });
+ expect(event.type).toBe("close");
+ const target = new EventTarget();
+ var called = false;
+ target.addEventListener("close", ({ type, reason }) => {
+ expect(type).toBe("close");
+ expect(reason).toBe("world");
+ called = true;
+ });
+ target.dispatchEvent(event);
+ expect(called).toBe(true);
+});
+
+test("MessageEvent", () => {
+ var event = new MessageEvent("message", { data: "world" });
+ expect(event.type).toBe("message");
+ const target = new EventTarget();
+ var called = false;
+ target.addEventListener("message", ({ type, data }) => {
+ expect(type).toBe("message");
+ expect(data).toBe("world");
+ called = true;
+ });
+ target.dispatchEvent(event);
+ expect(called).toBe(true);
+});
diff --git a/test/bun.js/websocket.test.js b/test/bun.js/websocket.test.js
new file mode 100644
index 000000000..ab825fa63
--- /dev/null
+++ b/test/bun.js/websocket.test.js
@@ -0,0 +1,79 @@
+import { describe, it, expect } from "bun:test";
+import { unsafe } from "bun";
+import { gc } from "./gc";
+
+const TEST_WEBSOCKET_HOST =
+ process.env.TEST_WEBSOCKET_HOST || "wss://ws.postman-echo.com/raw";
+
+describe("WebSocket", () => {
+ it("should connect", async () => {
+ const ws = new WebSocket(TEST_WEBSOCKET_HOST);
+ await new Promise((resolve, reject) => {
+ ws.onopen = resolve;
+ ws.onerror = reject;
+ });
+ var closed = new Promise((resolve, reject) => {
+ ws.onclose = resolve;
+ });
+ ws.close();
+ await closed;
+ });
+
+ it("should send and receive messages", async () => {
+ const ws = new WebSocket(TEST_WEBSOCKET_HOST);
+ await new Promise((resolve, reject) => {
+ ws.onopen = resolve;
+ ws.onerror = reject;
+ ws.onclose = () => {
+ reject("WebSocket closed");
+ };
+ });
+ const count = 10;
+
+ // 10 messages in burst
+ var promise = new Promise((resolve, reject) => {
+ var remain = count;
+ ws.onmessage = (event) => {
+ gc(true);
+ expect(event.data).toBe("Hello World!");
+ remain--;
+
+ if (remain <= 0) {
+ ws.onmessage = () => {};
+ resolve();
+ }
+ };
+ ws.onerror = reject;
+ });
+
+ for (let i = 0; i < count; i++) {
+ ws.send("Hello World!");
+ gc(true);
+ }
+
+ await promise;
+ var echo = 0;
+
+ // 10 messages one at a time
+ function waitForEcho() {
+ return new Promise((resolve, reject) => {
+ gc(true);
+ const msg = `Hello World! ${echo++}`;
+ ws.onmessage = (event) => {
+ expect(event.data).toBe(msg);
+ resolve();
+ };
+ ws.onerror = reject;
+ ws.onclose = reject;
+ ws.send(msg);
+ gc(true);
+ });
+ }
+ gc(true);
+ for (let i = 0; i < count; i++) await waitForEcho();
+ ws.onclose = () => {};
+ ws.onerror = () => {};
+ ws.close();
+ gc(true);
+ });
+});
diff --git a/test/bun.js/writeFileSync.txt b/test/bun.js/writeFileSync.txt
new file mode 100644
index 000000000..a0fe4515f
--- /dev/null
+++ b/test/bun.js/writeFileSync.txt
@@ -0,0 +1 @@
+File \ No newline at end of file
diff --git a/test/bun.js/zlib.test.js b/test/bun.js/zlib.test.js
new file mode 100644
index 000000000..aecb095cc
--- /dev/null
+++ b/test/bun.js/zlib.test.js
@@ -0,0 +1,18 @@
+import { describe, it, expect } from "bun:test";
+import { gzipSync, deflateSync, inflateSync, gunzipSync } from "bun";
+
+describe("zlib", () => {
+ it("should be able to deflate and inflate", () => {
+ const data = new TextEncoder().encode("Hello World!".repeat(1));
+ const compressed = deflateSync(data);
+ const decompressed = inflateSync(compressed);
+ expect(decompressed.join("")).toBe(data.join(""));
+ });
+
+ it("should be able to gzip and gunzip", () => {
+ const data = new TextEncoder().encode("Hello World!".repeat(1));
+ const compressed = gzipSync(data);
+ const decompressed = gunzipSync(compressed);
+ expect(decompressed.join("")).toBe(data.join(""));
+ });
+});
diff --git a/test/macro/assert.tsx b/test/macro/assert.tsx
new file mode 100644
index 000000000..8a6e4d822
--- /dev/null
+++ b/test/macro/assert.tsx
@@ -0,0 +1,4 @@
+// This logs the result at build time
+export function unreachable(call) {
+ throw new Error(call.arguments[0].toString() || "unreachable");
+}
diff --git a/test/macro/fetchSync.tsx b/test/macro/fetchSync.tsx
new file mode 100644
index 000000000..ebe1566e6
--- /dev/null
+++ b/test/macro/fetchSync.tsx
@@ -0,0 +1,8 @@
+export async function fetchSync(ctx) {
+ const str = ctx.arguments[0].toString();
+
+ const response = await fetch(str);
+ const text = await response.text();
+
+ return <string value={text} />;
+}
diff --git a/test/macro/hello-fetch-macro.tsx b/test/macro/hello-fetch-macro.tsx
new file mode 100644
index 000000000..fa0de4a9d
--- /dev/null
+++ b/test/macro/hello-fetch-macro.tsx
@@ -0,0 +1,5 @@
+import { fetchSync } from "macro:./fetchSync.tsx";
+
+const synchronousFetch = fetchSync(`https://example.com`);
+
+console.log(synchronousFetch);
diff --git a/test/macro/loadMocks.tsx b/test/macro/loadMocks.tsx
new file mode 100644
index 000000000..4b7993c6d
--- /dev/null
+++ b/test/macro/loadMocks.tsx
@@ -0,0 +1,30 @@
+import { unreachable } from "macro:./assert";
+
+if (process.env.NODE_ENV !== "test")
+ unreachable("This module should only be imported in tests");
+
+export const mockData = {
+ Copilot: {
+ id: "Copilot",
+ name: "Copilot",
+ description: "Copilot",
+ icon: "https://s3.amazonaws.com/copilot-public/images/icons/Copilot.png",
+ color: "#00AEEF",
+ type: "service",
+ tags: ["copilot"],
+ categories: ["copilot"],
+ links: [
+ {
+ id: "Copilot",
+ name: "Copilot",
+ url: "https://copilot.io",
+ description: "Copilot",
+ icon: "https://s3.amazonaws.com/copilot-public/images/icons/Copilot.png",
+ color: "#00AEEF",
+ type: "service",
+ tags: ["copilot"],
+ categories: ["copilot"],
+ },
+ ],
+ },
+};
diff --git a/test/scripts/browser.js b/test/scripts/browser.js
new file mode 100644
index 000000000..479a55c9c
--- /dev/null
+++ b/test/scripts/browser.js
@@ -0,0 +1,190 @@
+const puppeteer = require("puppeteer");
+const http = require("http");
+const path = require("path");
+const url = require("url");
+const fs = require("fs");
+const child_process = require("child_process");
+const snippetsDir = path.resolve(__dirname, "../snippets");
+const serverURL = process.env.TEST_SERVER_URL || "http://localhost:8080";
+const USE_EXISTING_PROCESS = process.env.USE_EXISTING_PROCESS || false;
+const DISABLE_HMR = !!process.env.DISABLE_HMR;
+const bunFlags = [
+ `--origin=${serverURL}`,
+ DISABLE_HMR && "--disable-hmr",
+].filter(Boolean);
+const bunExec = process.env.BUN_BIN || "bun";
+
+var bunProcess;
+var waitSpawn;
+if (!USE_EXISTING_PROCESS) {
+ bunProcess = child_process.spawn(bunExec, bunFlags, {
+ cwd: snippetsDir,
+ stdio: "pipe",
+ env: {
+ ...process.env,
+ DISABLE_BUN_ANALYTICS: "1",
+ },
+
+ shell: false,
+ });
+ console.log("$", bunExec, bunFlags.join(" "));
+ bunProcess.stderr.pipe(process.stderr);
+ bunProcess.stdout.pipe(process.stdout);
+ var rejecter;
+ bunProcess.once("error", (err) => {
+ console.error("❌ bun error", err);
+ process.exit(1);
+ });
+ if (!process.env.CI) {
+ waitSpawn = new Promise((resolve, reject) => {
+ bunProcess.once("spawn", (code) => {
+ console.log("Spawned");
+ resolve();
+ });
+ });
+ }
+ process.on("beforeExit", () => {
+ bunProcess && bunProcess.kill(0);
+ });
+}
+const isDebug = bunExec.endsWith("-debug");
+
+function writeSnapshot(name, code) {
+ let file = path.join(__dirname, "../snapshots", name);
+
+ if (!DISABLE_HMR) {
+ file =
+ file.substring(0, file.length - path.extname(file).length) +
+ ".hmr" +
+ path.extname(file);
+ }
+
+ if (!fs.existsSync(path.dirname(file))) {
+ fs.mkdirSync(path.dirname(file), { recursive: true });
+ }
+
+ fs.writeFileSync(
+ isDebug
+ ? file.substring(0, file.length - path.extname(file).length) +
+ ".debug" +
+ path.extname(file)
+ : file,
+ code
+ );
+}
+
+const baseOptions = {
+ dumpio: !!process.env.CI_DEBUG,
+
+ args: [
+ "--disable-gpu",
+ "--disable-dev-shm-usage",
+ "--disable-setuid-sandbox",
+ "--no-sandbox",
+ "--ignore-certificate-errors",
+ "--use-fake-ui-for-media-stream",
+ "--use-fake-device-for-media-stream",
+ "--disable-sync",
+ ],
+ executablePath: process.env.BROWSER_EXECUTABLE,
+ headless: true,
+};
+
+async function main() {
+ const launchOptions = USE_EXISTING_PROCESS
+ ? { ...baseOptions, devtools: !process.env.CI }
+ : baseOptions;
+ const browser = await puppeteer.launch(launchOptions);
+ const promises = [];
+ let allTestsPassed = true;
+
+ if (waitSpawn) await waitSpawn;
+ var canRetry = true;
+
+ async function runPage(key) {
+ var page;
+ try {
+ page = await browser.newPage();
+ if (USE_EXISTING_PROCESS) {
+ await page.evaluate(`
+ globalThis.BUN_DEBUG_MODE = true;
+ `);
+ }
+
+ var shouldClose = true;
+ page.on("console", (obj) =>
+ console.log(`[console.${obj.type()}] ${obj.text()}`)
+ );
+ page.exposeFunction("testFail", (error) => {
+ console.log(`❌ ${error}`);
+ allTestsPassed = false;
+ });
+ let testDone = new Promise((resolve) => {
+ page.exposeFunction("testDone", resolve);
+ });
+ try {
+ await page.goto(`${serverURL}/`, {
+ waitUntil: "domcontentloaded",
+ });
+
+ await page.evaluate(`
+ globalThis.runTest("${key}");
+ `);
+ await testDone;
+ } catch (err) {
+ if (canRetry) {
+ console.log(
+ `❌ ${key} failed once (incase it's still booting on universal binary for the first time). Retrying...`
+ );
+ canRetry = false;
+ return await runPage(key);
+ }
+ throw err;
+ }
+
+ console.log(`βœ… ${key}`);
+ } catch (e) {
+ if (USE_EXISTING_PROCESS) shouldClose = false;
+ allTestsPassed = false;
+ console.log(`❌ ${key}: ${(e && e.message) || e}`);
+ } finally {
+ try {
+ const code = await page.evaluate(`
+ globalThis.getModuleScriptSrc("${key}");
+ `);
+ writeSnapshot(key, code);
+ } catch (exception) {
+ console.warn(`Failed to update snapshot: ${key}`, exception);
+ }
+ }
+ canRetry = false;
+ if (shouldClose) await page.close();
+ }
+
+ const tests = require("./snippets.json");
+ tests.reverse();
+
+ for (let test of tests) {
+ await runPage(test);
+ }
+
+ if (!USE_EXISTING_PROCESS || (USE_EXISTING_PROCESS && allTestsPassed)) {
+ bunProcess && bunProcess.kill(0);
+
+ if (!allTestsPassed) {
+ console.error(`❌ browser test failed`);
+ process.exit(1);
+ } else {
+ console.log(`βœ… browser test passed`);
+ bunProcess && bunProcess.kill(0);
+ process.exit(0);
+ }
+ await browser.close();
+ }
+}
+
+main().catch((error) =>
+ setTimeout(() => {
+ throw error;
+ })
+);
diff --git a/test/scripts/bun.js b/test/scripts/bun.js
new file mode 100644
index 000000000..f8e4d2fa0
--- /dev/null
+++ b/test/scripts/bun.js
@@ -0,0 +1,86 @@
+const fail = true;
+// import snippets from "./snippets.json";
+
+// 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) => {
+// testSuccess = false;
+// 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 {
+// await testFunction();
+// if (!testSuccess) {
+// throw new Error("Test failed");
+// }
+// } catch (exception) {
+// console.error(exception);
+// debugger;
+// throw exception;
+// }
+// } else {
+// await testFunction();
+// if (!testSuccess) {
+// throw new Error("Test failed");
+// }
+// }
+// };
+
+// var testSuccess = false;
+// globalThis.testDone = () => {
+// testSuccess = true;
+// };
+
+// let fail = 0;
+// for (let snippet of snippets) {
+// try {
+// await runTest("../snippets/" + snippet.substring(1));
+// console.log("βœ…", snippet);
+// } catch (exception) {
+// console.error(`❌ ${snippet}`);
+// console.error(exception);
+
+// fail++;
+// }
+// }
+
+if (fail) throw new Error(`❌ browser test failed (${fail})`);
+
+console.log(`βœ… bun.js test passed`);
diff --git a/test/scripts/bun.lockb b/test/scripts/bun.lockb
new file mode 100755
index 000000000..2d9937d57
--- /dev/null
+++ b/test/scripts/bun.lockb
Binary files differ
diff --git a/test/scripts/package-lock.json b/test/scripts/package-lock.json
new file mode 100644
index 000000000..a41b9bd92
--- /dev/null
+++ b/test/scripts/package-lock.json
@@ -0,0 +1,892 @@
+{
+ "name": "scripts",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "dependencies": {
+ "puppeteer": "^10.2.0"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "16.11.26",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/@types/yauzl": {
+ "version": "2.9.2",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/agent-base/node_modules/debug": {
+ "version": "4.3.3",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "license": "MIT"
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "license": "ISC"
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/devtools-protocol": {
+ "version": "0.0.901419",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/extract-zip": {
+ "version": "2.0.1",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
+ "engines": {
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
+ }
+ },
+ "node_modules/extract-zip/node_modules/debug": {
+ "version": "4.3.3",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "license": "ISC"
+ },
+ "node_modules/get-stream": {
+ "version": "5.2.0",
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.0",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/https-proxy-agent/node_modules/debug": {
+ "version": "4.3.3",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "license": "ISC"
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.8",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.5",
+ "license": "MIT"
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.5",
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.5"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "license": "MIT"
+ },
+ "node_modules/node-fetch": {
+ "version": "2.6.1",
+ "license": "MIT",
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "license": "MIT"
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/progress": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "license": "MIT"
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/puppeteer": {
+ "version": "10.4.0",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "debug": "4.3.1",
+ "devtools-protocol": "0.0.901419",
+ "extract-zip": "2.0.1",
+ "https-proxy-agent": "5.0.0",
+ "node-fetch": "2.6.1",
+ "pkg-dir": "4.2.0",
+ "progress": "2.0.1",
+ "proxy-from-env": "1.1.0",
+ "rimraf": "3.0.2",
+ "tar-fs": "2.0.0",
+ "unbzip2-stream": "1.3.3",
+ "ws": "7.4.6"
+ },
+ "engines": {
+ "node": ">=10.18.1"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.0",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/tar-fs": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp": "^0.5.1",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.0.0"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "license": "MIT",
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "license": "MIT"
+ },
+ "node_modules/unbzip2-stream": {
+ "version": "1.3.3",
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "license": "MIT"
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "license": "ISC"
+ },
+ "node_modules/ws": {
+ "version": "7.4.6",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "16.11.26",
+ "optional": true
+ },
+ "@types/yauzl": {
+ "version": "2.9.2",
+ "optional": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "agent-base": {
+ "version": "6.0.2",
+ "requires": {
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.3",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ }
+ }
+ },
+ "balanced-match": {
+ "version": "1.0.2"
+ },
+ "base64-js": {
+ "version": "1.5.1"
+ },
+ "bl": {
+ "version": "4.1.0",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "buffer": {
+ "version": "5.7.1",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13"
+ },
+ "chownr": {
+ "version": "1.1.4"
+ },
+ "concat-map": {
+ "version": "0.0.1"
+ },
+ "debug": {
+ "version": "4.3.1",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "devtools-protocol": {
+ "version": "0.0.901419"
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "extract-zip": {
+ "version": "2.0.1",
+ "requires": {
+ "@types/yauzl": "^2.9.1",
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.3",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ }
+ }
+ },
+ "fd-slicer": {
+ "version": "1.1.0",
+ "requires": {
+ "pend": "~1.2.0"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "fs-constants": {
+ "version": "1.0.0"
+ },
+ "fs.realpath": {
+ "version": "1.0.0"
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.2.0",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "5.0.0",
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.3",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ }
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1"
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4"
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.0.8",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5"
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "ms": {
+ "version": "2.1.2"
+ },
+ "node-fetch": {
+ "version": "2.6.1"
+ },
+ "once": {
+ "version": "1.4.0",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0"
+ },
+ "path-exists": {
+ "version": "4.0.0"
+ },
+ "path-is-absolute": {
+ "version": "1.0.1"
+ },
+ "pend": {
+ "version": "1.2.0"
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "progress": {
+ "version": "2.0.1"
+ },
+ "proxy-from-env": {
+ "version": "1.1.0"
+ },
+ "pump": {
+ "version": "3.0.0",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "puppeteer": {
+ "version": "10.4.0",
+ "requires": {
+ "debug": "4.3.1",
+ "devtools-protocol": "0.0.901419",
+ "extract-zip": "2.0.1",
+ "https-proxy-agent": "5.0.0",
+ "node-fetch": "2.6.1",
+ "pkg-dir": "4.2.0",
+ "progress": "2.0.1",
+ "proxy-from-env": "1.1.0",
+ "rimraf": "3.0.2",
+ "tar-fs": "2.0.0",
+ "unbzip2-stream": "1.3.3",
+ "ws": "7.4.6"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1"
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "tar-fs": {
+ "version": "2.0.0",
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp": "^0.5.1",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.0.0"
+ }
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
+ },
+ "through": {
+ "version": "2.3.8"
+ },
+ "unbzip2-stream": {
+ "version": "1.3.3",
+ "requires": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2"
+ },
+ "wrappy": {
+ "version": "1.0.2"
+ },
+ "ws": {
+ "version": "7.4.6",
+ "requires": {}
+ },
+ "yauzl": {
+ "version": "2.10.0",
+ "requires": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ }
+ }
+}
diff --git a/test/scripts/package.json b/test/scripts/package.json
new file mode 100644
index 000000000..b4637138b
--- /dev/null
+++ b/test/scripts/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "puppeteer": "^10.2.0"
+ }
+}
diff --git a/test/scripts/snippets.json b/test/scripts/snippets.json
new file mode 100644
index 000000000..ebdec23d3
--- /dev/null
+++ b/test/scripts/snippets.json
@@ -0,0 +1,32 @@
+[
+ "/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js",
+ "/bundled-entry-point.js",
+ "/export.js",
+ "/type-only-imports.ts",
+ "/global-is-remapped-to-globalThis.js",
+ "/multiple-imports.js",
+ "/ts-fallback-rewrite-works.js",
+ "/tsx-fallback-rewrite-works.js",
+ "/lodash-regexp.js",
+ "/unicode-identifiers.js",
+ "/string-escapes.js",
+ "/package-json-exports/index.js",
+ "/array-args-with-default-values.js",
+ "/forbid-in-is-correct.js",
+ "/code-simplification-neql-define.js",
+ "/spread_with_key.tsx",
+ "/styledcomponents-output.js",
+ "/void-shouldnt-delete-call-expressions.js",
+ "/custom-emotion-jsx/file.jsx",
+ "/react-context-value-func.tsx",
+ "/latin1-chars-in-regexp.js",
+ "/jsx-spacing.jsx",
+ "/jsx-entities.jsx",
+ "/optional-chain-with-function.js",
+ "/template-literal.js",
+ "/number-literal-bug.js",
+ "/caught-require.js",
+ "/package-json-utf8.js",
+ "/multiple-var.js",
+ "/export-default-module-hot.js"
+]
diff --git a/test/snapshots/.prettierignore b/test/snapshots/.prettierignore
new file mode 100644
index 000000000..4c43fe68f
--- /dev/null
+++ b/test/snapshots/.prettierignore
@@ -0,0 +1 @@
+*.js \ No newline at end of file
diff --git a/test/snapshots/array-args-with-default-values.debug.js b/test/snapshots/array-args-with-default-values.debug.js
new file mode 100644
index 000000000..9650405c6
--- /dev/null
+++ b/test/snapshots/array-args-with-default-values.debug.js
@@ -0,0 +1,27 @@
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/array-args-with-default-values.js.map
diff --git a/test/snapshots/array-args-with-default-values.hmr.debug.js b/test/snapshots/array-args-with-default-values.hmr.debug.js
new file mode 100644
index 000000000..e219cbd9a
--- /dev/null
+++ b/test/snapshots/array-args-with-default-values.hmr.debug.js
@@ -0,0 +1,53 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(3474597122, "array-args-with-default-values.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var lines;
+ const data = () => lines.map(([a = null, b = null, c = null, d = null]) => ({
+ a,
+ b,
+ c,
+ d
+ }));
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/array-args-with-default-values.js.map
diff --git a/test/snapshots/array-args-with-default-values.hmr.js b/test/snapshots/array-args-with-default-values.hmr.js
new file mode 100644
index 000000000..3c8997b54
--- /dev/null
+++ b/test/snapshots/array-args-with-default-values.hmr.js
@@ -0,0 +1,51 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(3474597122, "array-args-with-default-values.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var lines;
+ const data = () => lines.map(([a = null, b = null, c = null, d = null]) => ({
+ a,
+ b,
+ c,
+ d
+ }));
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/array-args-with-default-values.js.map
diff --git a/test/snapshots/array-args-with-default-values.js b/test/snapshots/array-args-with-default-values.js
new file mode 100644
index 000000000..9650405c6
--- /dev/null
+++ b/test/snapshots/array-args-with-default-values.js
@@ -0,0 +1,27 @@
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/array-args-with-default-values.js.map
diff --git a/test/snapshots/bundled-entry-point.debug.js b/test/snapshots/bundled-entry-point.debug.js
new file mode 100644
index 000000000..51562933f
--- /dev/null
+++ b/test/snapshots/bundled-entry-point.debug.js
@@ -0,0 +1,11 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+export function test() {
+ return testDone(import.meta.url);
+
+}
+
+
+//# sourceMappingURL=http://localhost:8080/bundled-entry-point.js.map
diff --git a/test/snapshots/bundled-entry-point.hmr.debug.js b/test/snapshots/bundled-entry-point.hmr.debug.js
new file mode 100644
index 000000000..622b6b75b
--- /dev/null
+++ b/test/snapshots/bundled-entry-point.hmr.debug.js
@@ -0,0 +1,35 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var hmr = new FastHMR(3012834585, "bundled-entry-point.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ function test() {
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/bundled-entry-point.js.map
diff --git a/test/snapshots/bundled-entry-point.hmr.js b/test/snapshots/bundled-entry-point.hmr.js
new file mode 100644
index 000000000..b4fb5e46f
--- /dev/null
+++ b/test/snapshots/bundled-entry-point.hmr.js
@@ -0,0 +1,33 @@
+import {
+__require as require
+} from "http://localhost:3000/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+import * as $bbcd215f from "http://localhost:3000/node_modules/react/index.js";
+var hmr = new FastHMR(3012834585, "bundled-entry-point.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ function test() {
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/bundled-entry-point.js.map
diff --git a/test/snapshots/bundled-entry-point.js b/test/snapshots/bundled-entry-point.js
new file mode 100644
index 000000000..51562933f
--- /dev/null
+++ b/test/snapshots/bundled-entry-point.js
@@ -0,0 +1,11 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+export function test() {
+ return testDone(import.meta.url);
+
+}
+
+
+//# sourceMappingURL=http://localhost:8080/bundled-entry-point.js.map
diff --git a/test/snapshots/caught-require.debug.js b/test/snapshots/caught-require.debug.js
new file mode 100644
index 000000000..73608f8e3
--- /dev/null
+++ b/test/snapshots/caught-require.debug.js
@@ -0,0 +1,32 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+try {
+ require((() => { throw (new Error(`Cannot require module '"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() {
+ try {
+ require((() => { throw (new Error(`Cannot require module '"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);
+}
+
+//# sourceMappingURL=http://localhost:8080/caught-require.js.map
diff --git a/test/snapshots/caught-require.hmr.debug.js b/test/snapshots/caught-require.hmr.debug.js
new file mode 100644
index 000000000..5beecb99b
--- /dev/null
+++ b/test/snapshots/caught-require.hmr.debug.js
@@ -0,0 +1,56 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(2398506918, "caught-require.js", FastRefresh), exports = hmr.exports;
+
+await (hmr._load = async function() {
+ try {
+ require((() => { throw (new Error(`Cannot require module '"this-package-should-not-exist"'`)); } )());
+ } catch (exception) {
+ }
+ try {
+ await import("this-package-should-not-exist");
+ } catch (exception) {
+ }
+ import("this-package-should-not-exist").then(() => {
+ }, () => {
+ });
+ async function test() {
+ try {
+ require((() => { throw (new Error(`Cannot require module '"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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/caught-require.js.map
diff --git a/test/snapshots/caught-require.hmr.js b/test/snapshots/caught-require.hmr.js
new file mode 100644
index 000000000..8a63f51a0
--- /dev/null
+++ b/test/snapshots/caught-require.hmr.js
@@ -0,0 +1,54 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(2398506918, "caught-require.js", FastRefresh), exports = hmr.exports;
+await (hmr._load = async function() {
+ try {
+ require((() => { throw (new Error(`Cannot require module '"this-package-should-not-exist"'`)); } )());
+ } catch (exception) {
+ }
+ try {
+ await import("this-package-should-not-exist");
+ } catch (exception) {
+ }
+ import("this-package-should-not-exist").then(() => {
+ }, () => {
+ });
+ async function test() {
+ try {
+ require((() => { throw (new Error(`Cannot require module '"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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/caught-require.js.map
diff --git a/test/snapshots/caught-require.js b/test/snapshots/caught-require.js
new file mode 100644
index 000000000..73608f8e3
--- /dev/null
+++ b/test/snapshots/caught-require.js
@@ -0,0 +1,32 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+try {
+ require((() => { throw (new Error(`Cannot require module '"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() {
+ try {
+ require((() => { throw (new Error(`Cannot require module '"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);
+}
+
+//# sourceMappingURL=http://localhost:8080/caught-require.js.map
diff --git a/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.debug.js b/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.debug.js
new file mode 100644
index 000000000..1bd6883d8
--- /dev/null
+++ b/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.debug.js
@@ -0,0 +1,15 @@
+import _login from "http://localhost:8080/_login.js";
+import _auth from "http://localhost:8080/_auth.js";
+import * as _loginReally from "http://localhost:8080/_login.js";
+import * as _loginReally2 from "http://localhost:8080/_login.js";
+import * as _authReally from "http://localhost:8080/_auth.js";
+
+export { _login as login };
+
+export function test() {
+ return testDone(import.meta.url);
+}
+export let foo;
+export let bar;
+
+//# sourceMappingURL=http://localhost:8080/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js.map
diff --git a/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.hmr.debug.js b/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.hmr.debug.js
new file mode 100644
index 000000000..f685557dc
--- /dev/null
+++ b/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.hmr.debug.js
@@ -0,0 +1,47 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import _login from "http://localhost:8080/_login.js";
+import _auth from "http://localhost:8080/_auth.js";
+import * as _loginReally from "http://localhost:8080/_login.js";
+import * as _loginReally2 from "http://localhost:8080/_login.js";
+import * as _authReally from "http://localhost:8080/_auth.js";
+var hmr = new FastHMR(3878252498, "cjs-transform-shouldnt-have-static-imports-in-cjs-function.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ function test() {
+ return testDone(import.meta.url);
+ }
+ var foo;
+ var bar;
+ hmr.exportAll({
+ login: () => _login,
+ test: () => test,
+ foo: () => foo,
+ bar: () => bar
+ });
+})();
+var $$hmr_login = hmr.exports.login, $$hmr_test = hmr.exports.test, $$hmr_foo = hmr.exports.foo, $$hmr_bar = hmr.exports.bar;
+hmr._update = function(exports) {
+ $$hmr_login = exports.login;
+ $$hmr_test = exports.test;
+ $$hmr_foo = exports.foo;
+ $$hmr_bar = exports.bar;
+};
+
+export {
+ $$hmr_login as login,
+ $$hmr_test as test,
+ $$hmr_foo as foo,
+ $$hmr_bar as bar
+};
+
+//# sourceMappingURL=http://localhost:8080/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js.map
diff --git a/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.hmr.js b/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.hmr.js
new file mode 100644
index 000000000..b74b8c2b7
--- /dev/null
+++ b/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.hmr.js
@@ -0,0 +1,45 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+import _login from "http://localhost:3000/_login.js";
+import _auth from "http://localhost:3000/_auth.js";
+import * as _loginReally from "http://localhost:3000/_login.js";
+import * as _loginReally2 from "http://localhost:3000/_login.js";
+import * as _authReally from "http://localhost:3000/_auth.js";
+var hmr = new FastHMR(3878252498, "cjs-transform-shouldnt-have-static-imports-in-cjs-function.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ function test() {
+ return testDone(import.meta.url);
+ }
+ var foo;
+ var bar;
+ hmr.exportAll({
+ login: () => _login,
+ test: () => test,
+ foo: () => foo,
+ bar: () => bar
+ });
+})();
+var $$hmr_login = hmr.exports.login, $$hmr_test = hmr.exports.test, $$hmr_foo = hmr.exports.foo, $$hmr_bar = hmr.exports.bar;
+hmr._update = function(exports) {
+ $$hmr_login = exports.login;
+ $$hmr_test = exports.test;
+ $$hmr_foo = exports.foo;
+ $$hmr_bar = exports.bar;
+};
+
+export {
+ $$hmr_login as login,
+ $$hmr_test as test,
+ $$hmr_foo as foo,
+ $$hmr_bar as bar
+};
+
+//# sourceMappingURL=http://localhost:3000/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js.map
diff --git a/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js b/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js
new file mode 100644
index 000000000..1bd6883d8
--- /dev/null
+++ b/test/snapshots/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js
@@ -0,0 +1,15 @@
+import _login from "http://localhost:8080/_login.js";
+import _auth from "http://localhost:8080/_auth.js";
+import * as _loginReally from "http://localhost:8080/_login.js";
+import * as _loginReally2 from "http://localhost:8080/_login.js";
+import * as _authReally from "http://localhost:8080/_auth.js";
+
+export { _login as login };
+
+export function test() {
+ return testDone(import.meta.url);
+}
+export let foo;
+export let bar;
+
+//# sourceMappingURL=http://localhost:8080/cjs-transform-shouldnt-have-static-imports-in-cjs-function.js.map
diff --git a/test/snapshots/code-simplification-neql-define.debug.js b/test/snapshots/code-simplification-neql-define.debug.js
new file mode 100644
index 000000000..6c0e684df
--- /dev/null
+++ b/test/snapshots/code-simplification-neql-define.debug.js
@@ -0,0 +1,29 @@
+var testFailed = false;
+const invariant = () => {
+ testFailed = true;
+};
+var $$m = (arg) => {
+ var module = { exports: {} }, exports = module.exports;
+ return arg(module, exports);
+};
+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) && invariant(false, "RelayQueryResponseCache: Expected the max cache size to be > 0, got " + "`%s`.", size);
+ !(ttl > 0) && invariant(false, "RelayQueryResponseCache: Expected the max ttl to be > 0, got `%s`.", ttl);
+ };
+ foo({ size: 100, ttl: 3600 });
+ };
+ RelayQueryResponseCache();
+ }
+}["relay-runtime/lib/network/RelayQueryResponseCache.js"]);
+export function test() {
+ var foo = () => result;
+ if (testFailed)
+ throw new Error("invariant should not be called");
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/code-simplification-neql-define.js.map
diff --git a/test/snapshots/code-simplification-neql-define.hmr.debug.js b/test/snapshots/code-simplification-neql-define.hmr.debug.js
new file mode 100644
index 000000000..8d4f82052
--- /dev/null
+++ b/test/snapshots/code-simplification-neql-define.hmr.debug.js
@@ -0,0 +1,58 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(726376257, "code-simplification-neql-define.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var testFailed = false;
+ const invariant = () => {
+ testFailed = true;
+ };
+ var $$m = (arg) => {
+ var module = { exports: {} }, exports = module.exports;
+ return arg(module, exports);
+ };
+ 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) && invariant(false, "RelayQueryResponseCache: Expected the max cache size to be > 0, got " + "`%s`.", size);
+ !(ttl > 0) && invariant(false, "RelayQueryResponseCache: Expected the max ttl to be > 0, got `%s`.", ttl);
+ };
+ foo({ size: 100, ttl: 3600 });
+ };
+ RelayQueryResponseCache();
+ }
+ }["relay-runtime/lib/network/RelayQueryResponseCache.js"]);
+ function test() {
+ var foo = () => result;
+ if (testFailed)
+ throw new Error("invariant should not be called");
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ $f332019d: () => $f332019d,
+ test: () => test
+ });
+})();
+var $$hmr_$f332019d = hmr.exports.$f332019d, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_$f332019d = exports.$f332019d;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_$f332019d as $f332019d,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/code-simplification-neql-define.js.map
diff --git a/test/snapshots/code-simplification-neql-define.hmr.js b/test/snapshots/code-simplification-neql-define.hmr.js
new file mode 100644
index 000000000..6d521b01d
--- /dev/null
+++ b/test/snapshots/code-simplification-neql-define.hmr.js
@@ -0,0 +1,56 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(726376257, "code-simplification-neql-define.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var testFailed = false;
+ const invariant = () => {
+ testFailed = true;
+ };
+ var $$m = (arg) => {
+ var module = { exports: {} }, exports = module.exports;
+ return arg(module, exports);
+ };
+ 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) && invariant(false, "RelayQueryResponseCache: Expected the max cache size to be > 0, got `%s`.", size);
+ !(ttl > 0) && invariant(false, "RelayQueryResponseCache: Expected the max ttl to be > 0, got `%s`.", ttl);
+ };
+ foo({ size: 100, ttl: 3600 });
+ };
+ RelayQueryResponseCache();
+ }
+ }["relay-runtime/lib/network/RelayQueryResponseCache.js"]);
+ function test() {
+ var foo = () => result;
+ if (testFailed)
+ throw new Error("invariant should not be called");
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ $f332019d: () => $f332019d,
+ test: () => test
+ });
+})();
+var $$hmr_$f332019d = hmr.exports.$f332019d, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_$f332019d = exports.$f332019d;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_$f332019d as $f332019d,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/code-simplification-neql-define.js.map
diff --git a/test/snapshots/code-simplification-neql-define.js b/test/snapshots/code-simplification-neql-define.js
new file mode 100644
index 000000000..6c0e684df
--- /dev/null
+++ b/test/snapshots/code-simplification-neql-define.js
@@ -0,0 +1,29 @@
+var testFailed = false;
+const invariant = () => {
+ testFailed = true;
+};
+var $$m = (arg) => {
+ var module = { exports: {} }, exports = module.exports;
+ return arg(module, exports);
+};
+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) && invariant(false, "RelayQueryResponseCache: Expected the max cache size to be > 0, got " + "`%s`.", size);
+ !(ttl > 0) && invariant(false, "RelayQueryResponseCache: Expected the max ttl to be > 0, got `%s`.", ttl);
+ };
+ foo({ size: 100, ttl: 3600 });
+ };
+ RelayQueryResponseCache();
+ }
+}["relay-runtime/lib/network/RelayQueryResponseCache.js"]);
+export function test() {
+ var foo = () => result;
+ if (testFailed)
+ throw new Error("invariant should not be called");
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/code-simplification-neql-define.js.map
diff --git a/test/snapshots/custom-emotion-jsx/file.debug.jsx b/test/snapshots/custom-emotion-jsx/file.debug.jsx
new file mode 100644
index 000000000..466cd4697
--- /dev/null
+++ b/test/snapshots/custom-emotion-jsx/file.debug.jsx
@@ -0,0 +1,25 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $72625799 from "http://localhost:8080/node_modules/@emotion/react/jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js";
+var JSX = require($72625799);
+var jsx = require(JSX).jsxDEV;
+
+import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
+var ReactDOM = require($5b3cea55);
+export const Foo = () => jsx("div", {
+ css: { content: '"it worked!"' }
+}, undefined, false, undefined, this);
+
+export function test() {
+ const element = document.createElement("div");
+ element.id = "custom-emotion-jsx";
+ document.body.appendChild(element);
+ ReactDOM.render(jsx(Foo, {}, undefined, false, undefined, this), 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);
+}
+
+//# sourceMappingURL=http://localhost:8080/custom-emotion-jsx/file.jsx.map
diff --git a/test/snapshots/custom-emotion-jsx/file.hmr.debug.jsx b/test/snapshots/custom-emotion-jsx/file.hmr.debug.jsx
new file mode 100644
index 000000000..a046f2e1c
--- /dev/null
+++ b/test/snapshots/custom-emotion-jsx/file.hmr.debug.jsx
@@ -0,0 +1,53 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $72625799 from "http://localhost:8080/node_modules/@emotion/react/jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js";
+var JSX = require($72625799);
+var jsx = require(JSX).jsxDEV;
+
+import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
+var ReactDOM = require($5b3cea55);
+var hmr = new FastHMR(2497996991, "custom-emotion-jsx/file.jsx", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var Foo = () => jsx("div", {
+ css: { content: '"it worked!"' }
+ }, undefined, false, undefined, this);
+ function test() {
+ const element = document.createElement("div");
+ element.id = "custom-emotion-jsx";
+ document.body.appendChild(element);
+ ReactDOM.render(jsx(Foo, {}, undefined, false, undefined, this), 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);
+ }
+ hmr.exportAll({
+ Foo: () => Foo,
+ test: () => test
+ });
+})();
+var $$hmr_Foo = hmr.exports.Foo, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_Foo = exports.Foo;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_Foo as Foo,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/custom-emotion-jsx/file.jsx.map
diff --git a/test/snapshots/custom-emotion-jsx/file.hmr.jsx b/test/snapshots/custom-emotion-jsx/file.hmr.jsx
new file mode 100644
index 000000000..d26b0a16d
--- /dev/null
+++ b/test/snapshots/custom-emotion-jsx/file.hmr.jsx
@@ -0,0 +1,50 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $72625799 from "http://localhost:8080/node_modules/@emotion/react/jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js";
+var JSX = require($72625799);
+var jsx = require(JSX).jsxDEV;
+import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
+var ReactDOM = require($5b3cea55);
+var hmr = new FastHMR(2497996991, "custom-emotion-jsx/file.jsx", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var Foo = () => jsx("div", {
+ css: { content: '"it worked!"' }
+ }, undefined, false, undefined, this);
+ function test() {
+ const element = document.createElement("div");
+ element.id = "custom-emotion-jsx";
+ document.body.appendChild(element);
+ ReactDOM.render(jsx(Foo, {}, undefined, false, undefined, this), 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);
+ }
+ hmr.exportAll({
+ Foo: () => Foo,
+ test: () => test
+ });
+})();
+var $$hmr_Foo = hmr.exports.Foo, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_Foo = exports.Foo;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_Foo as Foo,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/custom-emotion-jsx/file.jsx.map
diff --git a/test/snapshots/custom-emotion-jsx/file.jsx b/test/snapshots/custom-emotion-jsx/file.jsx
new file mode 100644
index 000000000..466cd4697
--- /dev/null
+++ b/test/snapshots/custom-emotion-jsx/file.jsx
@@ -0,0 +1,25 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $72625799 from "http://localhost:8080/node_modules/@emotion/react/jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js";
+var JSX = require($72625799);
+var jsx = require(JSX).jsxDEV;
+
+import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
+var ReactDOM = require($5b3cea55);
+export const Foo = () => jsx("div", {
+ css: { content: '"it worked!"' }
+}, undefined, false, undefined, this);
+
+export function test() {
+ const element = document.createElement("div");
+ element.id = "custom-emotion-jsx";
+ document.body.appendChild(element);
+ ReactDOM.render(jsx(Foo, {}, undefined, false, undefined, this), 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);
+}
+
+//# sourceMappingURL=http://localhost:8080/custom-emotion-jsx/file.jsx.map
diff --git a/test/snapshots/export-default-module-hot.debug.js b/test/snapshots/export-default-module-hot.debug.js
new file mode 100644
index 000000000..a9de546d5
--- /dev/null
+++ b/test/snapshots/export-default-module-hot.debug.js
@@ -0,0 +1,6 @@
+export default typeof module !== "undefined" && module.id;
+export function test() {
+ testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/export-default-module-hot.js.map
diff --git a/test/snapshots/export-default-module-hot.hmr.debug.js b/test/snapshots/export-default-module-hot.hmr.debug.js
new file mode 100644
index 000000000..6230c29a1
--- /dev/null
+++ b/test/snapshots/export-default-module-hot.hmr.debug.js
@@ -0,0 +1,35 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(2909748314, "export-default-module-hot.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var export_default_module_hot_default = typeof module !== "undefined" && module.id;
+ function test() {
+ testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ default: () => export_default_module_hot_default,
+ test: () => test
+ });
+})();
+var $$hmr_default = hmr.exports.default, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_default = exports.default;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_default as default,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/export-default-module-hot.js.map
diff --git a/test/snapshots/export-default-module-hot.hmr.js b/test/snapshots/export-default-module-hot.hmr.js
new file mode 100644
index 000000000..3dadccd28
--- /dev/null
+++ b/test/snapshots/export-default-module-hot.hmr.js
@@ -0,0 +1,33 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(2909748314, "export-default-module-hot.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var export_default_module_hot_default = typeof module !== "undefined" && module.id;
+ function test() {
+ testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ default: () => export_default_module_hot_default,
+ test: () => test
+ });
+})();
+var $$hmr_default = hmr.exports.default, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_default = exports.default;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_default as default,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/export-default-module-hot.js.map
diff --git a/test/snapshots/export-default-module-hot.js b/test/snapshots/export-default-module-hot.js
new file mode 100644
index 000000000..a9de546d5
--- /dev/null
+++ b/test/snapshots/export-default-module-hot.js
@@ -0,0 +1,6 @@
+export default typeof module !== "undefined" && module.id;
+export function test() {
+ testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/export-default-module-hot.js.map
diff --git a/test/snapshots/export.debug.js b/test/snapshots/export.debug.js
new file mode 100644
index 000000000..986d3b45f
--- /dev/null
+++ b/test/snapshots/export.debug.js
@@ -0,0 +1,32 @@
+import what from "http://localhost:8080/_auth.js";
+export { default as auth } from "http://localhost:8080/_auth.js";
+
+export { default as login } from "http://localhost:8080/_login.js";
+export * from "http://localhost:8080/_bacon.js";
+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 "http://localhost:8080/_bacon.js";
+import * as where from "http://localhost:8080/_auth.js";
+
+export { where };
+
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/export.js.map
diff --git a/test/snapshots/export.hmr.debug.js b/test/snapshots/export.hmr.debug.js
new file mode 100644
index 000000000..4bcc6ef59
--- /dev/null
+++ b/test/snapshots/export.hmr.debug.js
@@ -0,0 +1,80 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import what from "http://localhost:8080/_auth.js";
+import * as where from "http://localhost:8080/_auth.js";
+var hmr = new FastHMR(1879780259, "export.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var yoyoyo = "yoyoyo";
+ function hey() {
+ return true;
+ }
+ var foo = () => {
+ };
+ var bar = 100;
+ var powerLevel = Symbol("9001");
+ 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);
+ }
+ hmr.exportAll({
+ yoyoyo: () => yoyoyo,
+ default: () => hey,
+ foo: () => foo,
+ bar: () => bar,
+ powerLevel: () => powerLevel,
+ what: () => what,
+ when: () => what,
+ whence: () => what,
+ where: () => where,
+ booop: () => bar,
+ test: () => test
+ });
+})();
+var $$hmr_yoyoyo = hmr.exports.yoyoyo, $$hmr_default = hmr.exports.default, $$hmr_foo = hmr.exports.foo, $$hmr_bar = hmr.exports.bar, $$hmr_powerLevel = hmr.exports.powerLevel, $$hmr_what = hmr.exports.what, $$hmr_when = hmr.exports.when, $$hmr_whence = hmr.exports.whence, $$hmr_where = hmr.exports.where, $$hmr_booop = hmr.exports.booop, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_yoyoyo = exports.yoyoyo;
+ $$hmr_default = exports.default;
+ $$hmr_foo = exports.foo;
+ $$hmr_bar = exports.bar;
+ $$hmr_powerLevel = exports.powerLevel;
+ $$hmr_what = exports.what;
+ $$hmr_when = exports.when;
+ $$hmr_whence = exports.whence;
+ $$hmr_where = exports.where;
+ $$hmr_booop = exports.booop;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_yoyoyo as yoyoyo,
+ $$hmr_default as default,
+ $$hmr_foo as foo,
+ $$hmr_bar as bar,
+ $$hmr_powerLevel as powerLevel,
+ $$hmr_what as what,
+ $$hmr_when as when,
+ $$hmr_whence as whence,
+ $$hmr_where as where,
+ $$hmr_booop as booop,
+ $$hmr_test as test
+};
+export { default as auth } from "http://localhost:8080/_auth.js";
+export { default as login } from "http://localhost:8080/_login.js";
+export * from "http://localhost:8080/_bacon.js";
+export { } from "http://localhost:8080/_bacon.js";
+
+//# sourceMappingURL=http://localhost:8080/export.js.map
diff --git a/test/snapshots/export.hmr.js b/test/snapshots/export.hmr.js
new file mode 100644
index 000000000..73d6db2d4
--- /dev/null
+++ b/test/snapshots/export.hmr.js
@@ -0,0 +1,78 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+import what from "http://localhost:3000/_auth.js";
+import * as where from "http://localhost:3000/_auth.js";
+var hmr = new FastHMR(1879780259, "export.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var yoyoyo = "yoyoyo";
+ function hey() {
+ return true;
+ }
+ var foo = () => {
+ };
+ var bar = 100;
+ var powerLevel = Symbol("9001");
+ 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);
+ }
+ hmr.exportAll({
+ yoyoyo: () => yoyoyo,
+ default: () => hey,
+ foo: () => foo,
+ bar: () => bar,
+ powerLevel: () => powerLevel,
+ what: () => what,
+ when: () => what,
+ whence: () => what,
+ where: () => where,
+ booop: () => bar,
+ test: () => test
+ });
+})();
+var $$hmr_yoyoyo = hmr.exports.yoyoyo, $$hmr_default = hmr.exports.default, $$hmr_foo = hmr.exports.foo, $$hmr_bar = hmr.exports.bar, $$hmr_powerLevel = hmr.exports.powerLevel, $$hmr_what = hmr.exports.what, $$hmr_when = hmr.exports.when, $$hmr_whence = hmr.exports.whence, $$hmr_where = hmr.exports.where, $$hmr_booop = hmr.exports.booop, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_yoyoyo = exports.yoyoyo;
+ $$hmr_default = exports.default;
+ $$hmr_foo = exports.foo;
+ $$hmr_bar = exports.bar;
+ $$hmr_powerLevel = exports.powerLevel;
+ $$hmr_what = exports.what;
+ $$hmr_when = exports.when;
+ $$hmr_whence = exports.whence;
+ $$hmr_where = exports.where;
+ $$hmr_booop = exports.booop;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_yoyoyo as yoyoyo,
+ $$hmr_default as default,
+ $$hmr_foo as foo,
+ $$hmr_bar as bar,
+ $$hmr_powerLevel as powerLevel,
+ $$hmr_what as what,
+ $$hmr_when as when,
+ $$hmr_whence as whence,
+ $$hmr_where as where,
+ $$hmr_booop as booop,
+ $$hmr_test as test
+};
+export { default as auth } from "http://localhost:3000/_auth.js";
+export { default as login } from "http://localhost:3000/_login.js";
+export * from "http://localhost:3000/_bacon.js";
+export { } from "http://localhost:3000/_bacon.js";
+
+//# sourceMappingURL=http://localhost:3000/export.js.map
diff --git a/test/snapshots/export.js b/test/snapshots/export.js
new file mode 100644
index 000000000..986d3b45f
--- /dev/null
+++ b/test/snapshots/export.js
@@ -0,0 +1,32 @@
+import what from "http://localhost:8080/_auth.js";
+export { default as auth } from "http://localhost:8080/_auth.js";
+
+export { default as login } from "http://localhost:8080/_login.js";
+export * from "http://localhost:8080/_bacon.js";
+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 "http://localhost:8080/_bacon.js";
+import * as where from "http://localhost:8080/_auth.js";
+
+export { where };
+
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/export.js.map
diff --git a/test/snapshots/forbid-in-is-correct.debug.js b/test/snapshots/forbid-in-is-correct.debug.js
new file mode 100644
index 000000000..dfca92d80
--- /dev/null
+++ b/test/snapshots/forbid-in-is-correct.debug.js
@@ -0,0 +1,10 @@
+var foo = () => {
+ var D = (i, r) => () => (r || i((r = { exports: {} }).exports, r), r.exports);
+ return D;
+};
+export function test() {
+ foo();
+ testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/forbid-in-is-correct.js.map
diff --git a/test/snapshots/forbid-in-is-correct.hmr.debug.js b/test/snapshots/forbid-in-is-correct.hmr.debug.js
new file mode 100644
index 000000000..83a447fc4
--- /dev/null
+++ b/test/snapshots/forbid-in-is-correct.hmr.debug.js
@@ -0,0 +1,36 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(346837007, "forbid-in-is-correct.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var foo = () => {
+ var D = (i, r) => () => (r || i((r = { exports: {} }).exports, r), r.exports);
+ return D;
+ };
+ function test() {
+ foo();
+ testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/forbid-in-is-correct.js.map
diff --git a/test/snapshots/forbid-in-is-correct.hmr.js b/test/snapshots/forbid-in-is-correct.hmr.js
new file mode 100644
index 000000000..ae3714d04
--- /dev/null
+++ b/test/snapshots/forbid-in-is-correct.hmr.js
@@ -0,0 +1,34 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(346837007, "forbid-in-is-correct.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var foo = () => {
+ var D = (i, r) => () => (r || i((r = { exports: {} }).exports, r), r.exports);
+ return D;
+ };
+ function test() {
+ foo();
+ testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/forbid-in-is-correct.js.map
diff --git a/test/snapshots/forbid-in-is-correct.js b/test/snapshots/forbid-in-is-correct.js
new file mode 100644
index 000000000..dfca92d80
--- /dev/null
+++ b/test/snapshots/forbid-in-is-correct.js
@@ -0,0 +1,10 @@
+var foo = () => {
+ var D = (i, r) => () => (r || i((r = { exports: {} }).exports, r), r.exports);
+ return D;
+};
+export function test() {
+ foo();
+ testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/forbid-in-is-correct.js.map
diff --git a/test/snapshots/global-is-remapped-to-globalThis.debug.js b/test/snapshots/global-is-remapped-to-globalThis.debug.js
new file mode 100644
index 000000000..6cd8e2e22
--- /dev/null
+++ b/test/snapshots/global-is-remapped-to-globalThis.debug.js
@@ -0,0 +1,6 @@
+export function test() {
+ console.assert(globalThis === globalThis);
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/global-is-remapped-to-globalThis.js.map
diff --git a/test/snapshots/global-is-remapped-to-globalThis.hmr.debug.js b/test/snapshots/global-is-remapped-to-globalThis.hmr.debug.js
new file mode 100644
index 000000000..1f6619161
--- /dev/null
+++ b/test/snapshots/global-is-remapped-to-globalThis.hmr.debug.js
@@ -0,0 +1,32 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(713665787, "global-is-remapped-to-globalThis.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ function test() {
+ console.assert(globalThis === globalThis);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/global-is-remapped-to-globalThis.js.map
diff --git a/test/snapshots/global-is-remapped-to-globalThis.hmr.js b/test/snapshots/global-is-remapped-to-globalThis.hmr.js
new file mode 100644
index 000000000..a0e28b60a
--- /dev/null
+++ b/test/snapshots/global-is-remapped-to-globalThis.hmr.js
@@ -0,0 +1,30 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+var hmr = new FastHMR(713665787, "global-is-remapped-to-globalThis.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ function test() {
+ console.assert(globalThis === globalThis);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/global-is-remapped-to-globalThis.js.map
diff --git a/test/snapshots/global-is-remapped-to-globalThis.js b/test/snapshots/global-is-remapped-to-globalThis.js
new file mode 100644
index 000000000..6cd8e2e22
--- /dev/null
+++ b/test/snapshots/global-is-remapped-to-globalThis.js
@@ -0,0 +1,6 @@
+export function test() {
+ console.assert(globalThis === globalThis);
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/global-is-remapped-to-globalThis.js.map
diff --git a/test/snapshots/jsx-entities.debug.jsx b/test/snapshots/jsx-entities.debug.jsx
new file mode 100644
index 000000000..9fd075bc6
--- /dev/null
+++ b/test/snapshots/jsx-entities.debug.jsx
@@ -0,0 +1,2768 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+
+import * as $1f6f0e67 from "http://localhost:8080/node_modules/react-dom/server.browser.js";
+var ReactDOM = require($1f6f0e67);
+const elements = {
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: '"'
+ }, undefined, false, undefined, this))]: 34,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "&"
+ }, undefined, false, undefined, this))]: 38,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "'"
+ }, undefined, false, undefined, this))]: 39,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "<"
+ }, undefined, false, undefined, this))]: 60,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ">"
+ }, undefined, false, undefined, this))]: 62,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA0"
+ }, undefined, false, undefined, this))]: 160,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA1"
+ }, undefined, false, undefined, this))]: 161,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA2"
+ }, undefined, false, undefined, this))]: 162,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA3"
+ }, undefined, false, undefined, this))]: 163,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA4"
+ }, undefined, false, undefined, this))]: 164,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA5"
+ }, undefined, false, undefined, this))]: 165,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA6"
+ }, undefined, false, undefined, this))]: 166,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA7"
+ }, undefined, false, undefined, this))]: 167,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA8"
+ }, undefined, false, undefined, this))]: 168,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA9"
+ }, undefined, false, undefined, this))]: 169,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAA"
+ }, undefined, false, undefined, this))]: 170,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAB"
+ }, undefined, false, undefined, this))]: 171,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAC"
+ }, undefined, false, undefined, this))]: 172,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAD"
+ }, undefined, false, undefined, this))]: 173,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAE"
+ }, undefined, false, undefined, this))]: 174,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAF"
+ }, undefined, false, undefined, this))]: 175,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB0"
+ }, undefined, false, undefined, this))]: 176,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB1"
+ }, undefined, false, undefined, this))]: 177,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB2"
+ }, undefined, false, undefined, this))]: 178,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB3"
+ }, undefined, false, undefined, this))]: 179,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB4"
+ }, undefined, false, undefined, this))]: 180,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB5"
+ }, undefined, false, undefined, this))]: 181,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB6"
+ }, undefined, false, undefined, this))]: 182,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB7"
+ }, undefined, false, undefined, this))]: 183,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB8"
+ }, undefined, false, undefined, this))]: 184,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB9"
+ }, undefined, false, undefined, this))]: 185,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBA"
+ }, undefined, false, undefined, this))]: 186,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBB"
+ }, undefined, false, undefined, this))]: 187,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBC"
+ }, undefined, false, undefined, this))]: 188,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBD"
+ }, undefined, false, undefined, this))]: 189,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBE"
+ }, undefined, false, undefined, this))]: 190,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBF"
+ }, undefined, false, undefined, this))]: 191,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC0"
+ }, undefined, false, undefined, this))]: 192,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC1"
+ }, undefined, false, undefined, this))]: 193,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC2"
+ }, undefined, false, undefined, this))]: 194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC3"
+ }, undefined, false, undefined, this))]: 195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC4"
+ }, undefined, false, undefined, this))]: 196,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC5"
+ }, undefined, false, undefined, this))]: 197,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC6"
+ }, undefined, false, undefined, this))]: 198,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC7"
+ }, undefined, false, undefined, this))]: 199,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC8"
+ }, undefined, false, undefined, this))]: 200,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC9"
+ }, undefined, false, undefined, this))]: 201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCA"
+ }, undefined, false, undefined, this))]: 202,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCB"
+ }, undefined, false, undefined, this))]: 203,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCC"
+ }, undefined, false, undefined, this))]: 204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCD"
+ }, undefined, false, undefined, this))]: 205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCE"
+ }, undefined, false, undefined, this))]: 206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCF"
+ }, undefined, false, undefined, this))]: 207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD0"
+ }, undefined, false, undefined, this))]: 208,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD1"
+ }, undefined, false, undefined, this))]: 209,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD2"
+ }, undefined, false, undefined, this))]: 210,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD3"
+ }, undefined, false, undefined, this))]: 211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD4"
+ }, undefined, false, undefined, this))]: 212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD5"
+ }, undefined, false, undefined, this))]: 213,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD6"
+ }, undefined, false, undefined, this))]: 214,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD7"
+ }, undefined, false, undefined, this))]: 215,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD8"
+ }, undefined, false, undefined, this))]: 216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD9"
+ }, undefined, false, undefined, this))]: 217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDA"
+ }, undefined, false, undefined, this))]: 218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDB"
+ }, undefined, false, undefined, this))]: 219,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDC"
+ }, undefined, false, undefined, this))]: 220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDD"
+ }, undefined, false, undefined, this))]: 221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDE"
+ }, undefined, false, undefined, this))]: 222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDF"
+ }, undefined, false, undefined, this))]: 223,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE0"
+ }, undefined, false, undefined, this))]: 224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE1"
+ }, undefined, false, undefined, this))]: 225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE2"
+ }, undefined, false, undefined, this))]: 226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE3"
+ }, undefined, false, undefined, this))]: 227,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE4"
+ }, undefined, false, undefined, this))]: 228,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE5"
+ }, undefined, false, undefined, this))]: 229,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE6"
+ }, undefined, false, undefined, this))]: 230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE7"
+ }, undefined, false, undefined, this))]: 231,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE8"
+ }, undefined, false, undefined, this))]: 232,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE9"
+ }, undefined, false, undefined, this))]: 233,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEA"
+ }, undefined, false, undefined, this))]: 234,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEB"
+ }, undefined, false, undefined, this))]: 235,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEC"
+ }, undefined, false, undefined, this))]: 236,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xED"
+ }, undefined, false, undefined, this))]: 237,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEE"
+ }, undefined, false, undefined, this))]: 238,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEF"
+ }, undefined, false, undefined, this))]: 239,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF0"
+ }, undefined, false, undefined, this))]: 240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF1"
+ }, undefined, false, undefined, this))]: 241,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF2"
+ }, undefined, false, undefined, this))]: 242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF3"
+ }, undefined, false, undefined, this))]: 243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF4"
+ }, undefined, false, undefined, this))]: 244,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF5"
+ }, undefined, false, undefined, this))]: 245,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF6"
+ }, undefined, false, undefined, this))]: 246,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF7"
+ }, undefined, false, undefined, this))]: 247,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF8"
+ }, undefined, false, undefined, this))]: 248,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF9"
+ }, undefined, false, undefined, this))]: 249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFA"
+ }, undefined, false, undefined, this))]: 250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFB"
+ }, undefined, false, undefined, this))]: 251,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFC"
+ }, undefined, false, undefined, this))]: 252,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFD"
+ }, undefined, false, undefined, this))]: 253,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFE"
+ }, undefined, false, undefined, this))]: 254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFF"
+ }, undefined, false, undefined, this))]: 255,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0152"
+ }, undefined, false, undefined, this))]: 338,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0153"
+ }, undefined, false, undefined, this))]: 339,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0160"
+ }, undefined, false, undefined, this))]: 352,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0161"
+ }, undefined, false, undefined, this))]: 353,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0178"
+ }, undefined, false, undefined, this))]: 376,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0192"
+ }, undefined, false, undefined, this))]: 402,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u02C6"
+ }, undefined, false, undefined, this))]: 710,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u02DC"
+ }, undefined, false, undefined, this))]: 732,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0391"
+ }, undefined, false, undefined, this))]: 913,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0392"
+ }, undefined, false, undefined, this))]: 914,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0393"
+ }, undefined, false, undefined, this))]: 915,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0394"
+ }, undefined, false, undefined, this))]: 916,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0395"
+ }, undefined, false, undefined, this))]: 917,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0396"
+ }, undefined, false, undefined, this))]: 918,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0397"
+ }, undefined, false, undefined, this))]: 919,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0398"
+ }, undefined, false, undefined, this))]: 920,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0399"
+ }, undefined, false, undefined, this))]: 921,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039A"
+ }, undefined, false, undefined, this))]: 922,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039B"
+ }, undefined, false, undefined, this))]: 923,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039C"
+ }, undefined, false, undefined, this))]: 924,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039D"
+ }, undefined, false, undefined, this))]: 925,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039E"
+ }, undefined, false, undefined, this))]: 926,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039F"
+ }, undefined, false, undefined, this))]: 927,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A0"
+ }, undefined, false, undefined, this))]: 928,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A1"
+ }, undefined, false, undefined, this))]: 929,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A3"
+ }, undefined, false, undefined, this))]: 931,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A4"
+ }, undefined, false, undefined, this))]: 932,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A5"
+ }, undefined, false, undefined, this))]: 933,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A6"
+ }, undefined, false, undefined, this))]: 934,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A7"
+ }, undefined, false, undefined, this))]: 935,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A8"
+ }, undefined, false, undefined, this))]: 936,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A9"
+ }, undefined, false, undefined, this))]: 937,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B1"
+ }, undefined, false, undefined, this))]: 945,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B2"
+ }, undefined, false, undefined, this))]: 946,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B3"
+ }, undefined, false, undefined, this))]: 947,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B4"
+ }, undefined, false, undefined, this))]: 948,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B5"
+ }, undefined, false, undefined, this))]: 949,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B6"
+ }, undefined, false, undefined, this))]: 950,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B7"
+ }, undefined, false, undefined, this))]: 951,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B8"
+ }, undefined, false, undefined, this))]: 952,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B9"
+ }, undefined, false, undefined, this))]: 953,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BA"
+ }, undefined, false, undefined, this))]: 954,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BB"
+ }, undefined, false, undefined, this))]: 955,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BC"
+ }, undefined, false, undefined, this))]: 956,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BD"
+ }, undefined, false, undefined, this))]: 957,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BE"
+ }, undefined, false, undefined, this))]: 958,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BF"
+ }, undefined, false, undefined, this))]: 959,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C0"
+ }, undefined, false, undefined, this))]: 960,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C1"
+ }, undefined, false, undefined, this))]: 961,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C2"
+ }, undefined, false, undefined, this))]: 962,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C3"
+ }, undefined, false, undefined, this))]: 963,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C4"
+ }, undefined, false, undefined, this))]: 964,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C5"
+ }, undefined, false, undefined, this))]: 965,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C6"
+ }, undefined, false, undefined, this))]: 966,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C7"
+ }, undefined, false, undefined, this))]: 967,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C8"
+ }, undefined, false, undefined, this))]: 968,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C9"
+ }, undefined, false, undefined, this))]: 969,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D1"
+ }, undefined, false, undefined, this))]: 977,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D2"
+ }, undefined, false, undefined, this))]: 978,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D6"
+ }, undefined, false, undefined, this))]: 982,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2002"
+ }, undefined, false, undefined, this))]: 8194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2003"
+ }, undefined, false, undefined, this))]: 8195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2009"
+ }, undefined, false, undefined, this))]: 8201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200C"
+ }, undefined, false, undefined, this))]: 8204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200D"
+ }, undefined, false, undefined, this))]: 8205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200E"
+ }, undefined, false, undefined, this))]: 8206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200F"
+ }, undefined, false, undefined, this))]: 8207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2013"
+ }, undefined, false, undefined, this))]: 8211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2014"
+ }, undefined, false, undefined, this))]: 8212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2018"
+ }, undefined, false, undefined, this))]: 8216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2019"
+ }, undefined, false, undefined, this))]: 8217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201A"
+ }, undefined, false, undefined, this))]: 8218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201C"
+ }, undefined, false, undefined, this))]: 8220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201D"
+ }, undefined, false, undefined, this))]: 8221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201E"
+ }, undefined, false, undefined, this))]: 8222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2020"
+ }, undefined, false, undefined, this))]: 8224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2021"
+ }, undefined, false, undefined, this))]: 8225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2022"
+ }, undefined, false, undefined, this))]: 8226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2026"
+ }, undefined, false, undefined, this))]: 8230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2030"
+ }, undefined, false, undefined, this))]: 8240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2032"
+ }, undefined, false, undefined, this))]: 8242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2033"
+ }, undefined, false, undefined, this))]: 8243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2039"
+ }, undefined, false, undefined, this))]: 8249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u203A"
+ }, undefined, false, undefined, this))]: 8250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u203E"
+ }, undefined, false, undefined, this))]: 8254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2044"
+ }, undefined, false, undefined, this))]: 8260,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u20AC"
+ }, undefined, false, undefined, this))]: 8364,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2111"
+ }, undefined, false, undefined, this))]: 8465,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2118"
+ }, undefined, false, undefined, this))]: 8472,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u211C"
+ }, undefined, false, undefined, this))]: 8476,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2122"
+ }, undefined, false, undefined, this))]: 8482,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2135"
+ }, undefined, false, undefined, this))]: 8501,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2190"
+ }, undefined, false, undefined, this))]: 8592,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2191"
+ }, undefined, false, undefined, this))]: 8593,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2192"
+ }, undefined, false, undefined, this))]: 8594,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2193"
+ }, undefined, false, undefined, this))]: 8595,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2194"
+ }, undefined, false, undefined, this))]: 8596,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21B5"
+ }, undefined, false, undefined, this))]: 8629,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D0"
+ }, undefined, false, undefined, this))]: 8656,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D1"
+ }, undefined, false, undefined, this))]: 8657,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D2"
+ }, undefined, false, undefined, this))]: 8658,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D3"
+ }, undefined, false, undefined, this))]: 8659,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D4"
+ }, undefined, false, undefined, this))]: 8660,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2200"
+ }, undefined, false, undefined, this))]: 8704,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2202"
+ }, undefined, false, undefined, this))]: 8706,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2203"
+ }, undefined, false, undefined, this))]: 8707,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2205"
+ }, undefined, false, undefined, this))]: 8709,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2207"
+ }, undefined, false, undefined, this))]: 8711,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2208"
+ }, undefined, false, undefined, this))]: 8712,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2209"
+ }, undefined, false, undefined, this))]: 8713,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u220B"
+ }, undefined, false, undefined, this))]: 8715,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u220F"
+ }, undefined, false, undefined, this))]: 8719,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2211"
+ }, undefined, false, undefined, this))]: 8721,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2212"
+ }, undefined, false, undefined, this))]: 8722,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2217"
+ }, undefined, false, undefined, this))]: 8727,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221A"
+ }, undefined, false, undefined, this))]: 8730,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221D"
+ }, undefined, false, undefined, this))]: 8733,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221E"
+ }, undefined, false, undefined, this))]: 8734,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2220"
+ }, undefined, false, undefined, this))]: 8736,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2227"
+ }, undefined, false, undefined, this))]: 8743,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2228"
+ }, undefined, false, undefined, this))]: 8744,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2229"
+ }, undefined, false, undefined, this))]: 8745,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u222A"
+ }, undefined, false, undefined, this))]: 8746,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u222B"
+ }, undefined, false, undefined, this))]: 8747,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2234"
+ }, undefined, false, undefined, this))]: 8756,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u223C"
+ }, undefined, false, undefined, this))]: 8764,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2245"
+ }, undefined, false, undefined, this))]: 8773,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2248"
+ }, undefined, false, undefined, this))]: 8776,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2260"
+ }, undefined, false, undefined, this))]: 8800,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2261"
+ }, undefined, false, undefined, this))]: 8801,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2264"
+ }, undefined, false, undefined, this))]: 8804,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2265"
+ }, undefined, false, undefined, this))]: 8805,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2282"
+ }, undefined, false, undefined, this))]: 8834,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2283"
+ }, undefined, false, undefined, this))]: 8835,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2284"
+ }, undefined, false, undefined, this))]: 8836,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2286"
+ }, undefined, false, undefined, this))]: 8838,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2287"
+ }, undefined, false, undefined, this))]: 8839,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2295"
+ }, undefined, false, undefined, this))]: 8853,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2297"
+ }, undefined, false, undefined, this))]: 8855,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u22A5"
+ }, undefined, false, undefined, this))]: 8869,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u22C5"
+ }, undefined, false, undefined, this))]: 8901,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2308"
+ }, undefined, false, undefined, this))]: 8968,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2309"
+ }, undefined, false, undefined, this))]: 8969,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u230A"
+ }, undefined, false, undefined, this))]: 8970,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u230B"
+ }, undefined, false, undefined, this))]: 8971,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2329"
+ }, undefined, false, undefined, this))]: 9001,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u232A"
+ }, undefined, false, undefined, this))]: 9002,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u25CA"
+ }, undefined, false, undefined, this))]: 9674,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2660"
+ }, undefined, false, undefined, this))]: 9824,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2663"
+ }, undefined, false, undefined, this))]: 9827,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2665"
+ }, undefined, false, undefined, this))]: 9829,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2666"
+ }, undefined, false, undefined, this))]: 9830,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x01"
+ }, undefined, false, undefined, this))]: 1,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x02"
+ }, undefined, false, undefined, this))]: 2,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x03"
+ }, undefined, false, undefined, this))]: 3,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x04"
+ }, undefined, false, undefined, this))]: 4,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x05"
+ }, undefined, false, undefined, this))]: 5,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x06"
+ }, undefined, false, undefined, this))]: 6,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x07"
+ }, undefined, false, undefined, this))]: 7,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\f"
+ }, undefined, false, undefined, this))]: 8,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\t"
+ }, undefined, false, undefined, this))]: 9,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: `
+`
+ }, undefined, false, undefined, this))]: 10,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\v"
+ }, undefined, false, undefined, this))]: 11,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\f"
+ }, undefined, false, undefined, this))]: 12,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: `\r`
+ }, undefined, false, undefined, this))]: 13,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x0E"
+ }, undefined, false, undefined, this))]: 14,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x0F"
+ }, undefined, false, undefined, this))]: 15,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x10"
+ }, undefined, false, undefined, this))]: 16,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x11"
+ }, undefined, false, undefined, this))]: 17,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x12"
+ }, undefined, false, undefined, this))]: 18,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x13"
+ }, undefined, false, undefined, this))]: 19,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x14"
+ }, undefined, false, undefined, this))]: 20,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x15"
+ }, undefined, false, undefined, this))]: 21,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x16"
+ }, undefined, false, undefined, this))]: 22,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x17"
+ }, undefined, false, undefined, this))]: 23,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x18"
+ }, undefined, false, undefined, this))]: 24,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x19"
+ }, undefined, false, undefined, this))]: 25,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1A"
+ }, undefined, false, undefined, this))]: 26,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1B"
+ }, undefined, false, undefined, this))]: 27,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1C"
+ }, undefined, false, undefined, this))]: 28,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1D"
+ }, undefined, false, undefined, this))]: 29,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1E"
+ }, undefined, false, undefined, this))]: 30,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1F"
+ }, undefined, false, undefined, this))]: 31,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: " "
+ }, undefined, false, undefined, this))]: 32,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "!"
+ }, undefined, false, undefined, this))]: 33,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: '"'
+ }, undefined, false, undefined, this))]: 34,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "#"
+ }, undefined, false, undefined, this))]: 35,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "$"
+ }, undefined, false, undefined, this))]: 36,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "%"
+ }, undefined, false, undefined, this))]: 37,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "&"
+ }, undefined, false, undefined, this))]: 38,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "'"
+ }, undefined, false, undefined, this))]: 39,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "("
+ }, undefined, false, undefined, this))]: 40,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ")"
+ }, undefined, false, undefined, this))]: 41,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "*"
+ }, undefined, false, undefined, this))]: 42,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "+"
+ }, undefined, false, undefined, this))]: 43,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ","
+ }, undefined, false, undefined, this))]: 44,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "-"
+ }, undefined, false, undefined, this))]: 45,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "."
+ }, undefined, false, undefined, this))]: 46,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "/"
+ }, undefined, false, undefined, this))]: 47,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "0"
+ }, undefined, false, undefined, this))]: 48,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "1"
+ }, undefined, false, undefined, this))]: 49,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "2"
+ }, undefined, false, undefined, this))]: 50,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "3"
+ }, undefined, false, undefined, this))]: 51,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "4"
+ }, undefined, false, undefined, this))]: 52,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "5"
+ }, undefined, false, undefined, this))]: 53,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "6"
+ }, undefined, false, undefined, this))]: 54,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "7"
+ }, undefined, false, undefined, this))]: 55,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "8"
+ }, undefined, false, undefined, this))]: 56,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "9"
+ }, undefined, false, undefined, this))]: 57,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ":"
+ }, undefined, false, undefined, this))]: 58,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ";"
+ }, undefined, false, undefined, this))]: 59,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "<"
+ }, undefined, false, undefined, this))]: 60,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "="
+ }, undefined, false, undefined, this))]: 61,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ">"
+ }, undefined, false, undefined, this))]: 62,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "?"
+ }, undefined, false, undefined, this))]: 63,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "@"
+ }, undefined, false, undefined, this))]: 64,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "A"
+ }, undefined, false, undefined, this))]: 65,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "B"
+ }, undefined, false, undefined, this))]: 66,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "C"
+ }, undefined, false, undefined, this))]: 67,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "D"
+ }, undefined, false, undefined, this))]: 68,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "E"
+ }, undefined, false, undefined, this))]: 69,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "F"
+ }, undefined, false, undefined, this))]: 70,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "G"
+ }, undefined, false, undefined, this))]: 71,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "H"
+ }, undefined, false, undefined, this))]: 72,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "I"
+ }, undefined, false, undefined, this))]: 73,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "J"
+ }, undefined, false, undefined, this))]: 74,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "K"
+ }, undefined, false, undefined, this))]: 75,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "L"
+ }, undefined, false, undefined, this))]: 76,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "M"
+ }, undefined, false, undefined, this))]: 77,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "N"
+ }, undefined, false, undefined, this))]: 78,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "O"
+ }, undefined, false, undefined, this))]: 79,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "P"
+ }, undefined, false, undefined, this))]: 80,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Q"
+ }, undefined, false, undefined, this))]: 81,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "R"
+ }, undefined, false, undefined, this))]: 82,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "S"
+ }, undefined, false, undefined, this))]: 83,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "T"
+ }, undefined, false, undefined, this))]: 84,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "U"
+ }, undefined, false, undefined, this))]: 85,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "V"
+ }, undefined, false, undefined, this))]: 86,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "W"
+ }, undefined, false, undefined, this))]: 87,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "X"
+ }, undefined, false, undefined, this))]: 88,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Y"
+ }, undefined, false, undefined, this))]: 89,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Z"
+ }, undefined, false, undefined, this))]: 90,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "["
+ }, undefined, false, undefined, this))]: 91,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\\"
+ }, undefined, false, undefined, this))]: 92,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "]"
+ }, undefined, false, undefined, this))]: 93,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "^"
+ }, undefined, false, undefined, this))]: 94,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "_"
+ }, undefined, false, undefined, this))]: 95,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "`"
+ }, undefined, false, undefined, this))]: 96,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "a"
+ }, undefined, false, undefined, this))]: 97,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "b"
+ }, undefined, false, undefined, this))]: 98,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "c"
+ }, undefined, false, undefined, this))]: 99,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "d"
+ }, undefined, false, undefined, this))]: 100,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "e"
+ }, undefined, false, undefined, this))]: 101,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "f"
+ }, undefined, false, undefined, this))]: 102,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "g"
+ }, undefined, false, undefined, this))]: 103,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "h"
+ }, undefined, false, undefined, this))]: 104,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "i"
+ }, undefined, false, undefined, this))]: 105,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "j"
+ }, undefined, false, undefined, this))]: 106,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "k"
+ }, undefined, false, undefined, this))]: 107,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "l"
+ }, undefined, false, undefined, this))]: 108,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "m"
+ }, undefined, false, undefined, this))]: 109,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "n"
+ }, undefined, false, undefined, this))]: 110,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "o"
+ }, undefined, false, undefined, this))]: 111,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "p"
+ }, undefined, false, undefined, this))]: 112,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "q"
+ }, undefined, false, undefined, this))]: 113,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "r"
+ }, undefined, false, undefined, this))]: 114,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "s"
+ }, undefined, false, undefined, this))]: 115,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "t"
+ }, undefined, false, undefined, this))]: 116,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "u"
+ }, undefined, false, undefined, this))]: 117,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "v"
+ }, undefined, false, undefined, this))]: 118,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "w"
+ }, undefined, false, undefined, this))]: 119,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "x"
+ }, undefined, false, undefined, this))]: 120,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "y"
+ }, undefined, false, undefined, this))]: 121,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "z"
+ }, undefined, false, undefined, this))]: 122,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "{"
+ }, undefined, false, undefined, this))]: 123,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "|"
+ }, undefined, false, undefined, this))]: 124,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "}"
+ }, undefined, false, undefined, this))]: 125,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "~"
+ }, undefined, false, undefined, this))]: 126,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x7F"
+ }, undefined, false, undefined, this))]: 127,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x80"
+ }, undefined, false, undefined, this))]: 128,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x81"
+ }, undefined, false, undefined, this))]: 129,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x82"
+ }, undefined, false, undefined, this))]: 130,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x83"
+ }, undefined, false, undefined, this))]: 131,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x84"
+ }, undefined, false, undefined, this))]: 132,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x85"
+ }, undefined, false, undefined, this))]: 133,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x86"
+ }, undefined, false, undefined, this))]: 134,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x87"
+ }, undefined, false, undefined, this))]: 135,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x88"
+ }, undefined, false, undefined, this))]: 136,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x89"
+ }, undefined, false, undefined, this))]: 137,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8A"
+ }, undefined, false, undefined, this))]: 138,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8B"
+ }, undefined, false, undefined, this))]: 139,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8C"
+ }, undefined, false, undefined, this))]: 140,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8D"
+ }, undefined, false, undefined, this))]: 141,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8E"
+ }, undefined, false, undefined, this))]: 142,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8F"
+ }, undefined, false, undefined, this))]: 143,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x90"
+ }, undefined, false, undefined, this))]: 144,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x91"
+ }, undefined, false, undefined, this))]: 145,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x92"
+ }, undefined, false, undefined, this))]: 146,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x93"
+ }, undefined, false, undefined, this))]: 147,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x94"
+ }, undefined, false, undefined, this))]: 148,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x95"
+ }, undefined, false, undefined, this))]: 149,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x96"
+ }, undefined, false, undefined, this))]: 150,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x97"
+ }, undefined, false, undefined, this))]: 151,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x98"
+ }, undefined, false, undefined, this))]: 152,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x99"
+ }, undefined, false, undefined, this))]: 153,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9A"
+ }, undefined, false, undefined, this))]: 154,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9B"
+ }, undefined, false, undefined, this))]: 155,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9C"
+ }, undefined, false, undefined, this))]: 156,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9D"
+ }, undefined, false, undefined, this))]: 157,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9E"
+ }, undefined, false, undefined, this))]: 158,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9F"
+ }, undefined, false, undefined, this))]: 159,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA0"
+ }, undefined, false, undefined, this))]: 160,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA1"
+ }, undefined, false, undefined, this))]: 161,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA2"
+ }, undefined, false, undefined, this))]: 162,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA3"
+ }, undefined, false, undefined, this))]: 163,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA4"
+ }, undefined, false, undefined, this))]: 164,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA5"
+ }, undefined, false, undefined, this))]: 165,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA6"
+ }, undefined, false, undefined, this))]: 166,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA7"
+ }, undefined, false, undefined, this))]: 167,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA8"
+ }, undefined, false, undefined, this))]: 168,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA9"
+ }, undefined, false, undefined, this))]: 169,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAA"
+ }, undefined, false, undefined, this))]: 170,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAB"
+ }, undefined, false, undefined, this))]: 171,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAC"
+ }, undefined, false, undefined, this))]: 172,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAD"
+ }, undefined, false, undefined, this))]: 173,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAE"
+ }, undefined, false, undefined, this))]: 174,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAF"
+ }, undefined, false, undefined, this))]: 175,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB0"
+ }, undefined, false, undefined, this))]: 176,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB1"
+ }, undefined, false, undefined, this))]: 177,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB2"
+ }, undefined, false, undefined, this))]: 178,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB3"
+ }, undefined, false, undefined, this))]: 179,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB4"
+ }, undefined, false, undefined, this))]: 180,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB5"
+ }, undefined, false, undefined, this))]: 181,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB6"
+ }, undefined, false, undefined, this))]: 182,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB7"
+ }, undefined, false, undefined, this))]: 183,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB8"
+ }, undefined, false, undefined, this))]: 184,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB9"
+ }, undefined, false, undefined, this))]: 185,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBA"
+ }, undefined, false, undefined, this))]: 186,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBB"
+ }, undefined, false, undefined, this))]: 187,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBC"
+ }, undefined, false, undefined, this))]: 188,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBD"
+ }, undefined, false, undefined, this))]: 189,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBE"
+ }, undefined, false, undefined, this))]: 190,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBF"
+ }, undefined, false, undefined, this))]: 191,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC0"
+ }, undefined, false, undefined, this))]: 192,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC1"
+ }, undefined, false, undefined, this))]: 193,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC2"
+ }, undefined, false, undefined, this))]: 194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC3"
+ }, undefined, false, undefined, this))]: 195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC4"
+ }, undefined, false, undefined, this))]: 196,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC5"
+ }, undefined, false, undefined, this))]: 197,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC6"
+ }, undefined, false, undefined, this))]: 198,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC7"
+ }, undefined, false, undefined, this))]: 199,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC8"
+ }, undefined, false, undefined, this))]: 200,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC9"
+ }, undefined, false, undefined, this))]: 201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCA"
+ }, undefined, false, undefined, this))]: 202,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCB"
+ }, undefined, false, undefined, this))]: 203,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCC"
+ }, undefined, false, undefined, this))]: 204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCD"
+ }, undefined, false, undefined, this))]: 205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCE"
+ }, undefined, false, undefined, this))]: 206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCF"
+ }, undefined, false, undefined, this))]: 207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD0"
+ }, undefined, false, undefined, this))]: 208,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD1"
+ }, undefined, false, undefined, this))]: 209,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD2"
+ }, undefined, false, undefined, this))]: 210,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD3"
+ }, undefined, false, undefined, this))]: 211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD4"
+ }, undefined, false, undefined, this))]: 212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD5"
+ }, undefined, false, undefined, this))]: 213,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD6"
+ }, undefined, false, undefined, this))]: 214,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD7"
+ }, undefined, false, undefined, this))]: 215,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD8"
+ }, undefined, false, undefined, this))]: 216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD9"
+ }, undefined, false, undefined, this))]: 217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDA"
+ }, undefined, false, undefined, this))]: 218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDB"
+ }, undefined, false, undefined, this))]: 219,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDC"
+ }, undefined, false, undefined, this))]: 220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDD"
+ }, undefined, false, undefined, this))]: 221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDE"
+ }, undefined, false, undefined, this))]: 222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDF"
+ }, undefined, false, undefined, this))]: 223,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE0"
+ }, undefined, false, undefined, this))]: 224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE1"
+ }, undefined, false, undefined, this))]: 225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE2"
+ }, undefined, false, undefined, this))]: 226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE3"
+ }, undefined, false, undefined, this))]: 227,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE4"
+ }, undefined, false, undefined, this))]: 228,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE5"
+ }, undefined, false, undefined, this))]: 229,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE6"
+ }, undefined, false, undefined, this))]: 230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE7"
+ }, undefined, false, undefined, this))]: 231,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE8"
+ }, undefined, false, undefined, this))]: 232,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE9"
+ }, undefined, false, undefined, this))]: 233,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEA"
+ }, undefined, false, undefined, this))]: 234,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEB"
+ }, undefined, false, undefined, this))]: 235,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEC"
+ }, undefined, false, undefined, this))]: 236,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xED"
+ }, undefined, false, undefined, this))]: 237,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEE"
+ }, undefined, false, undefined, this))]: 238,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEF"
+ }, undefined, false, undefined, this))]: 239,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF0"
+ }, undefined, false, undefined, this))]: 240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF1"
+ }, undefined, false, undefined, this))]: 241,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF2"
+ }, undefined, false, undefined, this))]: 242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF3"
+ }, undefined, false, undefined, this))]: 243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF4"
+ }, undefined, false, undefined, this))]: 244,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF5"
+ }, undefined, false, undefined, this))]: 245,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF6"
+ }, undefined, false, undefined, this))]: 246,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF7"
+ }, undefined, false, undefined, this))]: 247,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF8"
+ }, undefined, false, undefined, this))]: 248,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF9"
+ }, undefined, false, undefined, this))]: 249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFA"
+ }, undefined, false, undefined, this))]: 250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFB"
+ }, undefined, false, undefined, this))]: 251,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFC"
+ }, undefined, false, undefined, this))]: 252,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFD"
+ }, undefined, false, undefined, this))]: 253,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFE"
+ }, undefined, false, undefined, this))]: 254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFF"
+ }, undefined, false, undefined, this))]: 255,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0100"
+ }, undefined, false, undefined, this))]: 256,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0101"
+ }, undefined, false, undefined, this))]: 257,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0102"
+ }, undefined, false, undefined, this))]: 258,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0103"
+ }, undefined, false, undefined, this))]: 259,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0104"
+ }, undefined, false, undefined, this))]: 260,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0105"
+ }, undefined, false, undefined, this))]: 261,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0106"
+ }, undefined, false, undefined, this))]: 262,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0107"
+ }, undefined, false, undefined, this))]: 263,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0108"
+ }, undefined, false, undefined, this))]: 264,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0109"
+ }, undefined, false, undefined, this))]: 265,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010A"
+ }, undefined, false, undefined, this))]: 266,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010B"
+ }, undefined, false, undefined, this))]: 267,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010C"
+ }, undefined, false, undefined, this))]: 268,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010D"
+ }, undefined, false, undefined, this))]: 269,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010E"
+ }, undefined, false, undefined, this))]: 270,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010F"
+ }, undefined, false, undefined, this))]: 271,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0110"
+ }, undefined, false, undefined, this))]: 272,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0111"
+ }, undefined, false, undefined, this))]: 273,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0112"
+ }, undefined, false, undefined, this))]: 274,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0113"
+ }, undefined, false, undefined, this))]: 275,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0114"
+ }, undefined, false, undefined, this))]: 276,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0115"
+ }, undefined, false, undefined, this))]: 277,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0116"
+ }, undefined, false, undefined, this))]: 278,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0117"
+ }, undefined, false, undefined, this))]: 279,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0118"
+ }, undefined, false, undefined, this))]: 280,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0119"
+ }, undefined, false, undefined, this))]: 281,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011A"
+ }, undefined, false, undefined, this))]: 282,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011B"
+ }, undefined, false, undefined, this))]: 283,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011C"
+ }, undefined, false, undefined, this))]: 284,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011D"
+ }, undefined, false, undefined, this))]: 285,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011E"
+ }, undefined, false, undefined, this))]: 286,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011F"
+ }, undefined, false, undefined, this))]: 287,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0120"
+ }, undefined, false, undefined, this))]: 288,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0121"
+ }, undefined, false, undefined, this))]: 289,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0122"
+ }, undefined, false, undefined, this))]: 290,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0123"
+ }, undefined, false, undefined, this))]: 291,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0124"
+ }, undefined, false, undefined, this))]: 292,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0125"
+ }, undefined, false, undefined, this))]: 293,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0126"
+ }, undefined, false, undefined, this))]: 294,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0127"
+ }, undefined, false, undefined, this))]: 295,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0128"
+ }, undefined, false, undefined, this))]: 296,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0129"
+ }, undefined, false, undefined, this))]: 297,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012A"
+ }, undefined, false, undefined, this))]: 298,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012B"
+ }, undefined, false, undefined, this))]: 299,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012C"
+ }, undefined, false, undefined, this))]: 300,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012D"
+ }, undefined, false, undefined, this))]: 301,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012E"
+ }, undefined, false, undefined, this))]: 302,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012F"
+ }, undefined, false, undefined, this))]: 303,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0130"
+ }, undefined, false, undefined, this))]: 304,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0131"
+ }, undefined, false, undefined, this))]: 305,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0132"
+ }, undefined, false, undefined, this))]: 306,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0133"
+ }, undefined, false, undefined, this))]: 307,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0134"
+ }, undefined, false, undefined, this))]: 308,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0135"
+ }, undefined, false, undefined, this))]: 309,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0136"
+ }, undefined, false, undefined, this))]: 310,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0137"
+ }, undefined, false, undefined, this))]: 311,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0138"
+ }, undefined, false, undefined, this))]: 312,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0139"
+ }, undefined, false, undefined, this))]: 313,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013A"
+ }, undefined, false, undefined, this))]: 314,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013B"
+ }, undefined, false, undefined, this))]: 315,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013C"
+ }, undefined, false, undefined, this))]: 316,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013D"
+ }, undefined, false, undefined, this))]: 317,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013E"
+ }, undefined, false, undefined, this))]: 318,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013F"
+ }, undefined, false, undefined, this))]: 319,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0140"
+ }, undefined, false, undefined, this))]: 320,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0141"
+ }, undefined, false, undefined, this))]: 321,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0142"
+ }, undefined, false, undefined, this))]: 322,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0143"
+ }, undefined, false, undefined, this))]: 323,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0144"
+ }, undefined, false, undefined, this))]: 324,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0145"
+ }, undefined, false, undefined, this))]: 325,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0146"
+ }, undefined, false, undefined, this))]: 326,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0147"
+ }, undefined, false, undefined, this))]: 327,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0148"
+ }, undefined, false, undefined, this))]: 328,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0149"
+ }, undefined, false, undefined, this))]: 329,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014A"
+ }, undefined, false, undefined, this))]: 330,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014B"
+ }, undefined, false, undefined, this))]: 331,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014C"
+ }, undefined, false, undefined, this))]: 332,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014D"
+ }, undefined, false, undefined, this))]: 333,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014E"
+ }, undefined, false, undefined, this))]: 334,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014F"
+ }, undefined, false, undefined, this))]: 335,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0150"
+ }, undefined, false, undefined, this))]: 336,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0151"
+ }, undefined, false, undefined, this))]: 337,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0152"
+ }, undefined, false, undefined, this))]: 338,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0153"
+ }, undefined, false, undefined, this))]: 339,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0154"
+ }, undefined, false, undefined, this))]: 340,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0155"
+ }, undefined, false, undefined, this))]: 341,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0156"
+ }, undefined, false, undefined, this))]: 342,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0157"
+ }, undefined, false, undefined, this))]: 343,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0158"
+ }, undefined, false, undefined, this))]: 344,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0159"
+ }, undefined, false, undefined, this))]: 345,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015A"
+ }, undefined, false, undefined, this))]: 346,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015B"
+ }, undefined, false, undefined, this))]: 347,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015C"
+ }, undefined, false, undefined, this))]: 348,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015D"
+ }, undefined, false, undefined, this))]: 349,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015E"
+ }, undefined, false, undefined, this))]: 350,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015F"
+ }, undefined, false, undefined, this))]: 351,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0160"
+ }, undefined, false, undefined, this))]: 352,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0161"
+ }, undefined, false, undefined, this))]: 353,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0162"
+ }, undefined, false, undefined, this))]: 354,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0163"
+ }, undefined, false, undefined, this))]: 355,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0164"
+ }, undefined, false, undefined, this))]: 356,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0165"
+ }, undefined, false, undefined, this))]: 357,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0166"
+ }, undefined, false, undefined, this))]: 358,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0167"
+ }, undefined, false, undefined, this))]: 359,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0168"
+ }, undefined, false, undefined, this))]: 360,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0169"
+ }, undefined, false, undefined, this))]: 361,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016A"
+ }, undefined, false, undefined, this))]: 362,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016B"
+ }, undefined, false, undefined, this))]: 363,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016C"
+ }, undefined, false, undefined, this))]: 364,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016D"
+ }, undefined, false, undefined, this))]: 365,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016E"
+ }, undefined, false, undefined, this))]: 366,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016F"
+ }, undefined, false, undefined, this))]: 367,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0170"
+ }, undefined, false, undefined, this))]: 368,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0171"
+ }, undefined, false, undefined, this))]: 369,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0172"
+ }, undefined, false, undefined, this))]: 370,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0173"
+ }, undefined, false, undefined, this))]: 371,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0174"
+ }, undefined, false, undefined, this))]: 372,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0175"
+ }, undefined, false, undefined, this))]: 373,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0176"
+ }, undefined, false, undefined, this))]: 374,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0177"
+ }, undefined, false, undefined, this))]: 375,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0178"
+ }, undefined, false, undefined, this))]: 376,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0179"
+ }, undefined, false, undefined, this))]: 377,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017A"
+ }, undefined, false, undefined, this))]: 378,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017B"
+ }, undefined, false, undefined, this))]: 379,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017C"
+ }, undefined, false, undefined, this))]: 380,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017D"
+ }, undefined, false, undefined, this))]: 381,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017E"
+ }, undefined, false, undefined, this))]: 382,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017F"
+ }, undefined, false, undefined, this))]: 383,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0180"
+ }, undefined, false, undefined, this))]: 384,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0181"
+ }, undefined, false, undefined, this))]: 385,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0182"
+ }, undefined, false, undefined, this))]: 386,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0183"
+ }, undefined, false, undefined, this))]: 387,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0184"
+ }, undefined, false, undefined, this))]: 388,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0185"
+ }, undefined, false, undefined, this))]: 389,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0186"
+ }, undefined, false, undefined, this))]: 390,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0187"
+ }, undefined, false, undefined, this))]: 391,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0188"
+ }, undefined, false, undefined, this))]: 392,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0189"
+ }, undefined, false, undefined, this))]: 393,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018A"
+ }, undefined, false, undefined, this))]: 394,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018B"
+ }, undefined, false, undefined, this))]: 395,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018C"
+ }, undefined, false, undefined, this))]: 396,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018D"
+ }, undefined, false, undefined, this))]: 397,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018E"
+ }, undefined, false, undefined, this))]: 398,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018F"
+ }, undefined, false, undefined, this))]: 399,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0190"
+ }, undefined, false, undefined, this))]: 400,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0191"
+ }, undefined, false, undefined, this))]: 401,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0192"
+ }, undefined, false, undefined, this))]: 402,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0193"
+ }, undefined, false, undefined, this))]: 403,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0194"
+ }, undefined, false, undefined, this))]: 404,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0195"
+ }, undefined, false, undefined, this))]: 405,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0196"
+ }, undefined, false, undefined, this))]: 406,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0197"
+ }, undefined, false, undefined, this))]: 407,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0198"
+ }, undefined, false, undefined, this))]: 408,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0199"
+ }, undefined, false, undefined, this))]: 409,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019A"
+ }, undefined, false, undefined, this))]: 410,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019B"
+ }, undefined, false, undefined, this))]: 411,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019C"
+ }, undefined, false, undefined, this))]: 412,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019D"
+ }, undefined, false, undefined, this))]: 413,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019E"
+ }, undefined, false, undefined, this))]: 414,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019F"
+ }, undefined, false, undefined, this))]: 415,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A0"
+ }, undefined, false, undefined, this))]: 416,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A1"
+ }, undefined, false, undefined, this))]: 417,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A2"
+ }, undefined, false, undefined, this))]: 418,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A3"
+ }, undefined, false, undefined, this))]: 419,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A4"
+ }, undefined, false, undefined, this))]: 420,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A5"
+ }, undefined, false, undefined, this))]: 421,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A6"
+ }, undefined, false, undefined, this))]: 422,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A7"
+ }, undefined, false, undefined, this))]: 423,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A8"
+ }, undefined, false, undefined, this))]: 424,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A9"
+ }, undefined, false, undefined, this))]: 425,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AA"
+ }, undefined, false, undefined, this))]: 426,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AB"
+ }, undefined, false, undefined, this))]: 427,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AC"
+ }, undefined, false, undefined, this))]: 428,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AD"
+ }, undefined, false, undefined, this))]: 429,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AE"
+ }, undefined, false, undefined, this))]: 430,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AF"
+ }, undefined, false, undefined, this))]: 431,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B0"
+ }, undefined, false, undefined, this))]: 432,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B1"
+ }, undefined, false, undefined, this))]: 433,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B2"
+ }, undefined, false, undefined, this))]: 434,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B3"
+ }, undefined, false, undefined, this))]: 435,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B4"
+ }, undefined, false, undefined, this))]: 436,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B5"
+ }, undefined, false, undefined, this))]: 437,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B6"
+ }, undefined, false, undefined, this))]: 438,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B7"
+ }, undefined, false, undefined, this))]: 439,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B8"
+ }, undefined, false, undefined, this))]: 440,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B9"
+ }, undefined, false, undefined, this))]: 441,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BA"
+ }, undefined, false, undefined, this))]: 442,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BB"
+ }, undefined, false, undefined, this))]: 443,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BC"
+ }, undefined, false, undefined, this))]: 444,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BD"
+ }, undefined, false, undefined, this))]: 445,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BE"
+ }, undefined, false, undefined, this))]: 446,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BF"
+ }, undefined, false, undefined, this))]: 447,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C0"
+ }, undefined, false, undefined, this))]: 448,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C1"
+ }, undefined, false, undefined, this))]: 449,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C2"
+ }, undefined, false, undefined, this))]: 450,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C3"
+ }, undefined, false, undefined, this))]: 451,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C4"
+ }, undefined, false, undefined, this))]: 452,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C5"
+ }, undefined, false, undefined, this))]: 453,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C6"
+ }, undefined, false, undefined, this))]: 454,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C7"
+ }, undefined, false, undefined, this))]: 455,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C8"
+ }, undefined, false, undefined, this))]: 456,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C9"
+ }, undefined, false, undefined, this))]: 457,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CA"
+ }, undefined, false, undefined, this))]: 458,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CB"
+ }, undefined, false, undefined, this))]: 459,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CC"
+ }, undefined, false, undefined, this))]: 460,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CD"
+ }, undefined, false, undefined, this))]: 461,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CE"
+ }, undefined, false, undefined, this))]: 462,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CF"
+ }, undefined, false, undefined, this))]: 463,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D0"
+ }, undefined, false, undefined, this))]: 464,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D1"
+ }, undefined, false, undefined, this))]: 465,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D2"
+ }, undefined, false, undefined, this))]: 466,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D3"
+ }, undefined, false, undefined, this))]: 467,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D4"
+ }, undefined, false, undefined, this))]: 468,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D5"
+ }, undefined, false, undefined, this))]: 469,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D6"
+ }, undefined, false, undefined, this))]: 470,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D7"
+ }, undefined, false, undefined, this))]: 471,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D8"
+ }, undefined, false, undefined, this))]: 472,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D9"
+ }, undefined, false, undefined, this))]: 473,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DA"
+ }, undefined, false, undefined, this))]: 474,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DB"
+ }, undefined, false, undefined, this))]: 475,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DC"
+ }, undefined, false, undefined, this))]: 476,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DD"
+ }, undefined, false, undefined, this))]: 477,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DE"
+ }, undefined, false, undefined, this))]: 478,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DF"
+ }, undefined, false, undefined, this))]: 479,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E0"
+ }, undefined, false, undefined, this))]: 480,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E1"
+ }, undefined, false, undefined, this))]: 481,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E2"
+ }, undefined, false, undefined, this))]: 482,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E3"
+ }, undefined, false, undefined, this))]: 483,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E4"
+ }, undefined, false, undefined, this))]: 484,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E5"
+ }, undefined, false, undefined, this))]: 485,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E6"
+ }, undefined, false, undefined, this))]: 486,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E7"
+ }, undefined, false, undefined, this))]: 487,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E8"
+ }, undefined, false, undefined, this))]: 488,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E9"
+ }, undefined, false, undefined, this))]: 489,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EA"
+ }, undefined, false, undefined, this))]: 490,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EB"
+ }, undefined, false, undefined, this))]: 491,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EC"
+ }, undefined, false, undefined, this))]: 492,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01ED"
+ }, undefined, false, undefined, this))]: 493,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EE"
+ }, undefined, false, undefined, this))]: 494,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EF"
+ }, undefined, false, undefined, this))]: 495,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F0"
+ }, undefined, false, undefined, this))]: 496,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F1"
+ }, undefined, false, undefined, this))]: 497,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F2"
+ }, undefined, false, undefined, this))]: 498,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F3"
+ }, undefined, false, undefined, this))]: 499,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F4"
+ }, undefined, false, undefined, this))]: 500,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F5"
+ }, undefined, false, undefined, this))]: 501,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F6"
+ }, undefined, false, undefined, this))]: 502,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F7"
+ }, undefined, false, undefined, this))]: 503,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F8"
+ }, undefined, false, undefined, this))]: 504,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F9"
+ }, undefined, false, undefined, this))]: 505,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FA"
+ }, undefined, false, undefined, this))]: 506,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FB"
+ }, undefined, false, undefined, this))]: 507,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FC"
+ }, undefined, false, undefined, this))]: 508,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FD"
+ }, undefined, false, undefined, this))]: 509,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FE"
+ }, undefined, false, undefined, this))]: 510,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FF"
+ }, undefined, false, undefined, this))]: 511,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0200"
+ }, undefined, false, undefined, this))]: 512,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0201"
+ }, undefined, false, undefined, this))]: 513,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0202"
+ }, undefined, false, undefined, this))]: 514,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0203"
+ }, undefined, false, undefined, this))]: 515,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0204"
+ }, undefined, false, undefined, this))]: 516,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0205"
+ }, undefined, false, undefined, this))]: 517,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0206"
+ }, undefined, false, undefined, this))]: 518,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0207"
+ }, undefined, false, undefined, this))]: 519,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0208"
+ }, undefined, false, undefined, this))]: 520,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0209"
+ }, undefined, false, undefined, this))]: 521,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020A"
+ }, undefined, false, undefined, this))]: 522,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020B"
+ }, undefined, false, undefined, this))]: 523,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020C"
+ }, undefined, false, undefined, this))]: 524,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020D"
+ }, undefined, false, undefined, this))]: 525,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020E"
+ }, undefined, false, undefined, this))]: 526,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020F"
+ }, undefined, false, undefined, this))]: 527,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0210"
+ }, undefined, false, undefined, this))]: 528,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0211"
+ }, undefined, false, undefined, this))]: 529,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0212"
+ }, undefined, false, undefined, this))]: 530,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0213"
+ }, undefined, false, undefined, this))]: 531,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0214"
+ }, undefined, false, undefined, this))]: 532,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0215"
+ }, undefined, false, undefined, this))]: 533,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0216"
+ }, undefined, false, undefined, this))]: 534,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0217"
+ }, undefined, false, undefined, this))]: 535,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0218"
+ }, undefined, false, undefined, this))]: 536,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0219"
+ }, undefined, false, undefined, this))]: 537,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021A"
+ }, undefined, false, undefined, this))]: 538,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021B"
+ }, undefined, false, undefined, this))]: 539,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021C"
+ }, undefined, false, undefined, this))]: 540,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021D"
+ }, undefined, false, undefined, this))]: 541,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021E"
+ }, undefined, false, undefined, this))]: 542,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021F"
+ }, undefined, false, undefined, this))]: 543,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0220"
+ }, undefined, false, undefined, this))]: 544,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0221"
+ }, undefined, false, undefined, this))]: 545,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0222"
+ }, undefined, false, undefined, this))]: 546,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0223"
+ }, undefined, false, undefined, this))]: 547,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0224"
+ }, undefined, false, undefined, this))]: 548,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0225"
+ }, undefined, false, undefined, this))]: 549,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0226"
+ }, undefined, false, undefined, this))]: 550,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0227"
+ }, undefined, false, undefined, this))]: 551,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0228"
+ }, undefined, false, undefined, this))]: 552,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0229"
+ }, undefined, false, undefined, this))]: 553,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022A"
+ }, undefined, false, undefined, this))]: 554,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022B"
+ }, undefined, false, undefined, this))]: 555,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022C"
+ }, undefined, false, undefined, this))]: 556,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022D"
+ }, undefined, false, undefined, this))]: 557,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022E"
+ }, undefined, false, undefined, this))]: 558,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022F"
+ }, undefined, false, undefined, this))]: 559,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0230"
+ }, undefined, false, undefined, this))]: 560,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0231"
+ }, undefined, false, undefined, this))]: 561,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0232"
+ }, undefined, false, undefined, this))]: 562,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0233"
+ }, undefined, false, undefined, this))]: 563,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0234"
+ }, undefined, false, undefined, this))]: 564,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0235"
+ }, undefined, false, undefined, this))]: 565,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0236"
+ }, undefined, false, undefined, this))]: 566,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0237"
+ }, undefined, false, undefined, this))]: 567,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0238"
+ }, undefined, false, undefined, this))]: 568,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0239"
+ }, undefined, false, undefined, this))]: 569,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023A"
+ }, undefined, false, undefined, this))]: 570,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023B"
+ }, undefined, false, undefined, this))]: 571,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023C"
+ }, undefined, false, undefined, this))]: 572,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023D"
+ }, undefined, false, undefined, this))]: 573,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023E"
+ }, undefined, false, undefined, this))]: 574,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023F"
+ }, undefined, false, undefined, this))]: 575,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0240"
+ }, undefined, false, undefined, this))]: 576,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0241"
+ }, undefined, false, undefined, this))]: 577,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0242"
+ }, undefined, false, undefined, this))]: 578,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0243"
+ }, undefined, false, undefined, this))]: 579,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0244"
+ }, undefined, false, undefined, this))]: 580,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0245"
+ }, undefined, false, undefined, this))]: 581,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0246"
+ }, undefined, false, undefined, this))]: 582,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0247"
+ }, undefined, false, undefined, this))]: 583,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0248"
+ }, undefined, false, undefined, this))]: 584,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0249"
+ }, undefined, false, undefined, this))]: 585,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024A"
+ }, undefined, false, undefined, this))]: 586,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024B"
+ }, undefined, false, undefined, this))]: 587,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024C"
+ }, undefined, false, undefined, this))]: 588,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024D"
+ }, undefined, false, undefined, this))]: 589,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024E"
+ }, undefined, false, undefined, this))]: 590,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024F"
+ }, undefined, false, undefined, this))]: 591,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0250"
+ }, undefined, false, undefined, this))]: 592,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0251"
+ }, undefined, false, undefined, this))]: 593,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0252"
+ }, undefined, false, undefined, this))]: 594,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0253"
+ }, undefined, false, undefined, this))]: 595,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0254"
+ }, undefined, false, undefined, this))]: 596,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0255"
+ }, undefined, false, undefined, this))]: 597,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0256"
+ }, undefined, false, undefined, this))]: 598,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0257"
+ }, undefined, false, undefined, this))]: 599,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0258"
+ }, undefined, false, undefined, this))]: 600,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0259"
+ }, undefined, false, undefined, this))]: 601,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025A"
+ }, undefined, false, undefined, this))]: 602,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025B"
+ }, undefined, false, undefined, this))]: 603,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025C"
+ }, undefined, false, undefined, this))]: 604,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025D"
+ }, undefined, false, undefined, this))]: 605,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025E"
+ }, undefined, false, undefined, this))]: 606,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025F"
+ }, undefined, false, undefined, this))]: 607,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0260"
+ }, undefined, false, undefined, this))]: 608,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0261"
+ }, undefined, false, undefined, this))]: 609,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0262"
+ }, undefined, false, undefined, this))]: 610,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0263"
+ }, undefined, false, undefined, this))]: 611,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0264"
+ }, undefined, false, undefined, this))]: 612,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0265"
+ }, undefined, false, undefined, this))]: 613,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0266"
+ }, undefined, false, undefined, this))]: 614,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0267"
+ }, undefined, false, undefined, this))]: 615,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0268"
+ }, undefined, false, undefined, this))]: 616,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0269"
+ }, undefined, false, undefined, this))]: 617,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026A"
+ }, undefined, false, undefined, this))]: 618,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026B"
+ }, undefined, false, undefined, this))]: 619,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026C"
+ }, undefined, false, undefined, this))]: 620,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026D"
+ }, undefined, false, undefined, this))]: 621,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026E"
+ }, undefined, false, undefined, this))]: 622,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026F"
+ }, undefined, false, undefined, this))]: 623,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0270"
+ }, undefined, false, undefined, this))]: 624,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0271"
+ }, undefined, false, undefined, this))]: 625,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0272"
+ }, undefined, false, undefined, this))]: 626,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0273"
+ }, undefined, false, undefined, this))]: 627,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0274"
+ }, undefined, false, undefined, this))]: 628,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0275"
+ }, undefined, false, undefined, this))]: 629,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0276"
+ }, undefined, false, undefined, this))]: 630,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0277"
+ }, undefined, false, undefined, this))]: 631,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0278"
+ }, undefined, false, undefined, this))]: 632,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0279"
+ }, undefined, false, undefined, this))]: 633,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027A"
+ }, undefined, false, undefined, this))]: 634,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027B"
+ }, undefined, false, undefined, this))]: 635,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027C"
+ }, undefined, false, undefined, this))]: 636,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027D"
+ }, undefined, false, undefined, this))]: 637,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027E"
+ }, undefined, false, undefined, this))]: 638,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027F"
+ }, undefined, false, undefined, this))]: 639,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0280"
+ }, undefined, false, undefined, this))]: 640,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0281"
+ }, undefined, false, undefined, this))]: 641,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0282"
+ }, undefined, false, undefined, this))]: 642,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0283"
+ }, undefined, false, undefined, this))]: 643,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0284"
+ }, undefined, false, undefined, this))]: 644,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0285"
+ }, undefined, false, undefined, this))]: 645,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0286"
+ }, undefined, false, undefined, this))]: 646,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0287"
+ }, undefined, false, undefined, this))]: 647,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0288"
+ }, undefined, false, undefined, this))]: 648,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0289"
+ }, undefined, false, undefined, this))]: 649,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028A"
+ }, undefined, false, undefined, this))]: 650,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028B"
+ }, undefined, false, undefined, this))]: 651,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028C"
+ }, undefined, false, undefined, this))]: 652,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028D"
+ }, undefined, false, undefined, this))]: 653,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028E"
+ }, undefined, false, undefined, this))]: 654,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028F"
+ }, undefined, false, undefined, this))]: 655,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0290"
+ }, undefined, false, undefined, this))]: 656,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0291"
+ }, undefined, false, undefined, this))]: 657,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0292"
+ }, undefined, false, undefined, this))]: 658,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0293"
+ }, undefined, false, undefined, this))]: 659,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0294"
+ }, undefined, false, undefined, this))]: 660
+};
+
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/jsx-entities.jsx.map
diff --git a/test/snapshots/jsx-entities.hmr.debug.jsx b/test/snapshots/jsx-entities.hmr.debug.jsx
new file mode 100644
index 000000000..07915e50a
--- /dev/null
+++ b/test/snapshots/jsx-entities.hmr.debug.jsx
@@ -0,0 +1,2793 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+
+import * as $1f6f0e67 from "http://localhost:8080/node_modules/react-dom/server.browser.js";
+var ReactDOM = require($1f6f0e67);
+var hmr = new FastHMR(817082122, "jsx-entities.jsx", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ const elements = {
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: '"'
+ }, undefined, false, undefined, this))]: 34,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "&"
+ }, undefined, false, undefined, this))]: 38,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "'"
+ }, undefined, false, undefined, this))]: 39,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "<"
+ }, undefined, false, undefined, this))]: 60,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ">"
+ }, undefined, false, undefined, this))]: 62,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA0"
+ }, undefined, false, undefined, this))]: 160,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA1"
+ }, undefined, false, undefined, this))]: 161,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA2"
+ }, undefined, false, undefined, this))]: 162,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA3"
+ }, undefined, false, undefined, this))]: 163,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA4"
+ }, undefined, false, undefined, this))]: 164,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA5"
+ }, undefined, false, undefined, this))]: 165,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA6"
+ }, undefined, false, undefined, this))]: 166,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA7"
+ }, undefined, false, undefined, this))]: 167,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA8"
+ }, undefined, false, undefined, this))]: 168,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA9"
+ }, undefined, false, undefined, this))]: 169,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAA"
+ }, undefined, false, undefined, this))]: 170,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAB"
+ }, undefined, false, undefined, this))]: 171,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAC"
+ }, undefined, false, undefined, this))]: 172,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAD"
+ }, undefined, false, undefined, this))]: 173,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAE"
+ }, undefined, false, undefined, this))]: 174,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAF"
+ }, undefined, false, undefined, this))]: 175,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB0"
+ }, undefined, false, undefined, this))]: 176,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB1"
+ }, undefined, false, undefined, this))]: 177,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB2"
+ }, undefined, false, undefined, this))]: 178,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB3"
+ }, undefined, false, undefined, this))]: 179,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB4"
+ }, undefined, false, undefined, this))]: 180,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB5"
+ }, undefined, false, undefined, this))]: 181,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB6"
+ }, undefined, false, undefined, this))]: 182,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB7"
+ }, undefined, false, undefined, this))]: 183,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB8"
+ }, undefined, false, undefined, this))]: 184,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB9"
+ }, undefined, false, undefined, this))]: 185,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBA"
+ }, undefined, false, undefined, this))]: 186,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBB"
+ }, undefined, false, undefined, this))]: 187,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBC"
+ }, undefined, false, undefined, this))]: 188,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBD"
+ }, undefined, false, undefined, this))]: 189,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBE"
+ }, undefined, false, undefined, this))]: 190,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBF"
+ }, undefined, false, undefined, this))]: 191,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC0"
+ }, undefined, false, undefined, this))]: 192,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC1"
+ }, undefined, false, undefined, this))]: 193,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC2"
+ }, undefined, false, undefined, this))]: 194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC3"
+ }, undefined, false, undefined, this))]: 195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC4"
+ }, undefined, false, undefined, this))]: 196,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC5"
+ }, undefined, false, undefined, this))]: 197,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC6"
+ }, undefined, false, undefined, this))]: 198,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC7"
+ }, undefined, false, undefined, this))]: 199,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC8"
+ }, undefined, false, undefined, this))]: 200,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC9"
+ }, undefined, false, undefined, this))]: 201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCA"
+ }, undefined, false, undefined, this))]: 202,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCB"
+ }, undefined, false, undefined, this))]: 203,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCC"
+ }, undefined, false, undefined, this))]: 204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCD"
+ }, undefined, false, undefined, this))]: 205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCE"
+ }, undefined, false, undefined, this))]: 206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCF"
+ }, undefined, false, undefined, this))]: 207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD0"
+ }, undefined, false, undefined, this))]: 208,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD1"
+ }, undefined, false, undefined, this))]: 209,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD2"
+ }, undefined, false, undefined, this))]: 210,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD3"
+ }, undefined, false, undefined, this))]: 211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD4"
+ }, undefined, false, undefined, this))]: 212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD5"
+ }, undefined, false, undefined, this))]: 213,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD6"
+ }, undefined, false, undefined, this))]: 214,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD7"
+ }, undefined, false, undefined, this))]: 215,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD8"
+ }, undefined, false, undefined, this))]: 216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD9"
+ }, undefined, false, undefined, this))]: 217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDA"
+ }, undefined, false, undefined, this))]: 218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDB"
+ }, undefined, false, undefined, this))]: 219,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDC"
+ }, undefined, false, undefined, this))]: 220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDD"
+ }, undefined, false, undefined, this))]: 221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDE"
+ }, undefined, false, undefined, this))]: 222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDF"
+ }, undefined, false, undefined, this))]: 223,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE0"
+ }, undefined, false, undefined, this))]: 224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE1"
+ }, undefined, false, undefined, this))]: 225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE2"
+ }, undefined, false, undefined, this))]: 226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE3"
+ }, undefined, false, undefined, this))]: 227,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE4"
+ }, undefined, false, undefined, this))]: 228,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE5"
+ }, undefined, false, undefined, this))]: 229,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE6"
+ }, undefined, false, undefined, this))]: 230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE7"
+ }, undefined, false, undefined, this))]: 231,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE8"
+ }, undefined, false, undefined, this))]: 232,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE9"
+ }, undefined, false, undefined, this))]: 233,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEA"
+ }, undefined, false, undefined, this))]: 234,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEB"
+ }, undefined, false, undefined, this))]: 235,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEC"
+ }, undefined, false, undefined, this))]: 236,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xED"
+ }, undefined, false, undefined, this))]: 237,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEE"
+ }, undefined, false, undefined, this))]: 238,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEF"
+ }, undefined, false, undefined, this))]: 239,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF0"
+ }, undefined, false, undefined, this))]: 240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF1"
+ }, undefined, false, undefined, this))]: 241,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF2"
+ }, undefined, false, undefined, this))]: 242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF3"
+ }, undefined, false, undefined, this))]: 243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF4"
+ }, undefined, false, undefined, this))]: 244,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF5"
+ }, undefined, false, undefined, this))]: 245,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF6"
+ }, undefined, false, undefined, this))]: 246,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF7"
+ }, undefined, false, undefined, this))]: 247,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF8"
+ }, undefined, false, undefined, this))]: 248,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF9"
+ }, undefined, false, undefined, this))]: 249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFA"
+ }, undefined, false, undefined, this))]: 250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFB"
+ }, undefined, false, undefined, this))]: 251,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFC"
+ }, undefined, false, undefined, this))]: 252,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFD"
+ }, undefined, false, undefined, this))]: 253,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFE"
+ }, undefined, false, undefined, this))]: 254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFF"
+ }, undefined, false, undefined, this))]: 255,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0152"
+ }, undefined, false, undefined, this))]: 338,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0153"
+ }, undefined, false, undefined, this))]: 339,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0160"
+ }, undefined, false, undefined, this))]: 352,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0161"
+ }, undefined, false, undefined, this))]: 353,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0178"
+ }, undefined, false, undefined, this))]: 376,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0192"
+ }, undefined, false, undefined, this))]: 402,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u02C6"
+ }, undefined, false, undefined, this))]: 710,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u02DC"
+ }, undefined, false, undefined, this))]: 732,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0391"
+ }, undefined, false, undefined, this))]: 913,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0392"
+ }, undefined, false, undefined, this))]: 914,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0393"
+ }, undefined, false, undefined, this))]: 915,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0394"
+ }, undefined, false, undefined, this))]: 916,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0395"
+ }, undefined, false, undefined, this))]: 917,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0396"
+ }, undefined, false, undefined, this))]: 918,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0397"
+ }, undefined, false, undefined, this))]: 919,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0398"
+ }, undefined, false, undefined, this))]: 920,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0399"
+ }, undefined, false, undefined, this))]: 921,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039A"
+ }, undefined, false, undefined, this))]: 922,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039B"
+ }, undefined, false, undefined, this))]: 923,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039C"
+ }, undefined, false, undefined, this))]: 924,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039D"
+ }, undefined, false, undefined, this))]: 925,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039E"
+ }, undefined, false, undefined, this))]: 926,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039F"
+ }, undefined, false, undefined, this))]: 927,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A0"
+ }, undefined, false, undefined, this))]: 928,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A1"
+ }, undefined, false, undefined, this))]: 929,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A3"
+ }, undefined, false, undefined, this))]: 931,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A4"
+ }, undefined, false, undefined, this))]: 932,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A5"
+ }, undefined, false, undefined, this))]: 933,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A6"
+ }, undefined, false, undefined, this))]: 934,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A7"
+ }, undefined, false, undefined, this))]: 935,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A8"
+ }, undefined, false, undefined, this))]: 936,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A9"
+ }, undefined, false, undefined, this))]: 937,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B1"
+ }, undefined, false, undefined, this))]: 945,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B2"
+ }, undefined, false, undefined, this))]: 946,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B3"
+ }, undefined, false, undefined, this))]: 947,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B4"
+ }, undefined, false, undefined, this))]: 948,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B5"
+ }, undefined, false, undefined, this))]: 949,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B6"
+ }, undefined, false, undefined, this))]: 950,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B7"
+ }, undefined, false, undefined, this))]: 951,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B8"
+ }, undefined, false, undefined, this))]: 952,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B9"
+ }, undefined, false, undefined, this))]: 953,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BA"
+ }, undefined, false, undefined, this))]: 954,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BB"
+ }, undefined, false, undefined, this))]: 955,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BC"
+ }, undefined, false, undefined, this))]: 956,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BD"
+ }, undefined, false, undefined, this))]: 957,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BE"
+ }, undefined, false, undefined, this))]: 958,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BF"
+ }, undefined, false, undefined, this))]: 959,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C0"
+ }, undefined, false, undefined, this))]: 960,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C1"
+ }, undefined, false, undefined, this))]: 961,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C2"
+ }, undefined, false, undefined, this))]: 962,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C3"
+ }, undefined, false, undefined, this))]: 963,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C4"
+ }, undefined, false, undefined, this))]: 964,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C5"
+ }, undefined, false, undefined, this))]: 965,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C6"
+ }, undefined, false, undefined, this))]: 966,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C7"
+ }, undefined, false, undefined, this))]: 967,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C8"
+ }, undefined, false, undefined, this))]: 968,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C9"
+ }, undefined, false, undefined, this))]: 969,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D1"
+ }, undefined, false, undefined, this))]: 977,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D2"
+ }, undefined, false, undefined, this))]: 978,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D6"
+ }, undefined, false, undefined, this))]: 982,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2002"
+ }, undefined, false, undefined, this))]: 8194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2003"
+ }, undefined, false, undefined, this))]: 8195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2009"
+ }, undefined, false, undefined, this))]: 8201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200C"
+ }, undefined, false, undefined, this))]: 8204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200D"
+ }, undefined, false, undefined, this))]: 8205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200E"
+ }, undefined, false, undefined, this))]: 8206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200F"
+ }, undefined, false, undefined, this))]: 8207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2013"
+ }, undefined, false, undefined, this))]: 8211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2014"
+ }, undefined, false, undefined, this))]: 8212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2018"
+ }, undefined, false, undefined, this))]: 8216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2019"
+ }, undefined, false, undefined, this))]: 8217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201A"
+ }, undefined, false, undefined, this))]: 8218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201C"
+ }, undefined, false, undefined, this))]: 8220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201D"
+ }, undefined, false, undefined, this))]: 8221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201E"
+ }, undefined, false, undefined, this))]: 8222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2020"
+ }, undefined, false, undefined, this))]: 8224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2021"
+ }, undefined, false, undefined, this))]: 8225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2022"
+ }, undefined, false, undefined, this))]: 8226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2026"
+ }, undefined, false, undefined, this))]: 8230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2030"
+ }, undefined, false, undefined, this))]: 8240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2032"
+ }, undefined, false, undefined, this))]: 8242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2033"
+ }, undefined, false, undefined, this))]: 8243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2039"
+ }, undefined, false, undefined, this))]: 8249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u203A"
+ }, undefined, false, undefined, this))]: 8250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u203E"
+ }, undefined, false, undefined, this))]: 8254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2044"
+ }, undefined, false, undefined, this))]: 8260,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u20AC"
+ }, undefined, false, undefined, this))]: 8364,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2111"
+ }, undefined, false, undefined, this))]: 8465,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2118"
+ }, undefined, false, undefined, this))]: 8472,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u211C"
+ }, undefined, false, undefined, this))]: 8476,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2122"
+ }, undefined, false, undefined, this))]: 8482,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2135"
+ }, undefined, false, undefined, this))]: 8501,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2190"
+ }, undefined, false, undefined, this))]: 8592,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2191"
+ }, undefined, false, undefined, this))]: 8593,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2192"
+ }, undefined, false, undefined, this))]: 8594,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2193"
+ }, undefined, false, undefined, this))]: 8595,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2194"
+ }, undefined, false, undefined, this))]: 8596,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21B5"
+ }, undefined, false, undefined, this))]: 8629,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D0"
+ }, undefined, false, undefined, this))]: 8656,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D1"
+ }, undefined, false, undefined, this))]: 8657,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D2"
+ }, undefined, false, undefined, this))]: 8658,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D3"
+ }, undefined, false, undefined, this))]: 8659,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D4"
+ }, undefined, false, undefined, this))]: 8660,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2200"
+ }, undefined, false, undefined, this))]: 8704,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2202"
+ }, undefined, false, undefined, this))]: 8706,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2203"
+ }, undefined, false, undefined, this))]: 8707,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2205"
+ }, undefined, false, undefined, this))]: 8709,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2207"
+ }, undefined, false, undefined, this))]: 8711,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2208"
+ }, undefined, false, undefined, this))]: 8712,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2209"
+ }, undefined, false, undefined, this))]: 8713,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u220B"
+ }, undefined, false, undefined, this))]: 8715,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u220F"
+ }, undefined, false, undefined, this))]: 8719,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2211"
+ }, undefined, false, undefined, this))]: 8721,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2212"
+ }, undefined, false, undefined, this))]: 8722,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2217"
+ }, undefined, false, undefined, this))]: 8727,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221A"
+ }, undefined, false, undefined, this))]: 8730,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221D"
+ }, undefined, false, undefined, this))]: 8733,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221E"
+ }, undefined, false, undefined, this))]: 8734,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2220"
+ }, undefined, false, undefined, this))]: 8736,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2227"
+ }, undefined, false, undefined, this))]: 8743,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2228"
+ }, undefined, false, undefined, this))]: 8744,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2229"
+ }, undefined, false, undefined, this))]: 8745,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u222A"
+ }, undefined, false, undefined, this))]: 8746,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u222B"
+ }, undefined, false, undefined, this))]: 8747,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2234"
+ }, undefined, false, undefined, this))]: 8756,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u223C"
+ }, undefined, false, undefined, this))]: 8764,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2245"
+ }, undefined, false, undefined, this))]: 8773,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2248"
+ }, undefined, false, undefined, this))]: 8776,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2260"
+ }, undefined, false, undefined, this))]: 8800,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2261"
+ }, undefined, false, undefined, this))]: 8801,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2264"
+ }, undefined, false, undefined, this))]: 8804,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2265"
+ }, undefined, false, undefined, this))]: 8805,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2282"
+ }, undefined, false, undefined, this))]: 8834,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2283"
+ }, undefined, false, undefined, this))]: 8835,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2284"
+ }, undefined, false, undefined, this))]: 8836,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2286"
+ }, undefined, false, undefined, this))]: 8838,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2287"
+ }, undefined, false, undefined, this))]: 8839,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2295"
+ }, undefined, false, undefined, this))]: 8853,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2297"
+ }, undefined, false, undefined, this))]: 8855,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u22A5"
+ }, undefined, false, undefined, this))]: 8869,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u22C5"
+ }, undefined, false, undefined, this))]: 8901,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2308"
+ }, undefined, false, undefined, this))]: 8968,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2309"
+ }, undefined, false, undefined, this))]: 8969,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u230A"
+ }, undefined, false, undefined, this))]: 8970,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u230B"
+ }, undefined, false, undefined, this))]: 8971,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2329"
+ }, undefined, false, undefined, this))]: 9001,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u232A"
+ }, undefined, false, undefined, this))]: 9002,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u25CA"
+ }, undefined, false, undefined, this))]: 9674,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2660"
+ }, undefined, false, undefined, this))]: 9824,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2663"
+ }, undefined, false, undefined, this))]: 9827,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2665"
+ }, undefined, false, undefined, this))]: 9829,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2666"
+ }, undefined, false, undefined, this))]: 9830,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x01"
+ }, undefined, false, undefined, this))]: 1,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x02"
+ }, undefined, false, undefined, this))]: 2,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x03"
+ }, undefined, false, undefined, this))]: 3,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x04"
+ }, undefined, false, undefined, this))]: 4,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x05"
+ }, undefined, false, undefined, this))]: 5,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x06"
+ }, undefined, false, undefined, this))]: 6,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x07"
+ }, undefined, false, undefined, this))]: 7,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\f"
+ }, undefined, false, undefined, this))]: 8,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\t"
+ }, undefined, false, undefined, this))]: 9,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: `
+`
+ }, undefined, false, undefined, this))]: 10,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\v"
+ }, undefined, false, undefined, this))]: 11,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\f"
+ }, undefined, false, undefined, this))]: 12,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: `\r`
+ }, undefined, false, undefined, this))]: 13,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x0E"
+ }, undefined, false, undefined, this))]: 14,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x0F"
+ }, undefined, false, undefined, this))]: 15,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x10"
+ }, undefined, false, undefined, this))]: 16,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x11"
+ }, undefined, false, undefined, this))]: 17,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x12"
+ }, undefined, false, undefined, this))]: 18,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x13"
+ }, undefined, false, undefined, this))]: 19,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x14"
+ }, undefined, false, undefined, this))]: 20,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x15"
+ }, undefined, false, undefined, this))]: 21,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x16"
+ }, undefined, false, undefined, this))]: 22,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x17"
+ }, undefined, false, undefined, this))]: 23,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x18"
+ }, undefined, false, undefined, this))]: 24,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x19"
+ }, undefined, false, undefined, this))]: 25,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1A"
+ }, undefined, false, undefined, this))]: 26,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1B"
+ }, undefined, false, undefined, this))]: 27,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1C"
+ }, undefined, false, undefined, this))]: 28,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1D"
+ }, undefined, false, undefined, this))]: 29,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1E"
+ }, undefined, false, undefined, this))]: 30,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1F"
+ }, undefined, false, undefined, this))]: 31,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: " "
+ }, undefined, false, undefined, this))]: 32,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "!"
+ }, undefined, false, undefined, this))]: 33,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: '"'
+ }, undefined, false, undefined, this))]: 34,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "#"
+ }, undefined, false, undefined, this))]: 35,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "$"
+ }, undefined, false, undefined, this))]: 36,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "%"
+ }, undefined, false, undefined, this))]: 37,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "&"
+ }, undefined, false, undefined, this))]: 38,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "'"
+ }, undefined, false, undefined, this))]: 39,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "("
+ }, undefined, false, undefined, this))]: 40,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ")"
+ }, undefined, false, undefined, this))]: 41,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "*"
+ }, undefined, false, undefined, this))]: 42,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "+"
+ }, undefined, false, undefined, this))]: 43,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ","
+ }, undefined, false, undefined, this))]: 44,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "-"
+ }, undefined, false, undefined, this))]: 45,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "."
+ }, undefined, false, undefined, this))]: 46,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "/"
+ }, undefined, false, undefined, this))]: 47,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "0"
+ }, undefined, false, undefined, this))]: 48,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "1"
+ }, undefined, false, undefined, this))]: 49,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "2"
+ }, undefined, false, undefined, this))]: 50,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "3"
+ }, undefined, false, undefined, this))]: 51,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "4"
+ }, undefined, false, undefined, this))]: 52,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "5"
+ }, undefined, false, undefined, this))]: 53,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "6"
+ }, undefined, false, undefined, this))]: 54,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "7"
+ }, undefined, false, undefined, this))]: 55,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "8"
+ }, undefined, false, undefined, this))]: 56,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "9"
+ }, undefined, false, undefined, this))]: 57,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ":"
+ }, undefined, false, undefined, this))]: 58,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ";"
+ }, undefined, false, undefined, this))]: 59,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "<"
+ }, undefined, false, undefined, this))]: 60,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "="
+ }, undefined, false, undefined, this))]: 61,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ">"
+ }, undefined, false, undefined, this))]: 62,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "?"
+ }, undefined, false, undefined, this))]: 63,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "@"
+ }, undefined, false, undefined, this))]: 64,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "A"
+ }, undefined, false, undefined, this))]: 65,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "B"
+ }, undefined, false, undefined, this))]: 66,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "C"
+ }, undefined, false, undefined, this))]: 67,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "D"
+ }, undefined, false, undefined, this))]: 68,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "E"
+ }, undefined, false, undefined, this))]: 69,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "F"
+ }, undefined, false, undefined, this))]: 70,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "G"
+ }, undefined, false, undefined, this))]: 71,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "H"
+ }, undefined, false, undefined, this))]: 72,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "I"
+ }, undefined, false, undefined, this))]: 73,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "J"
+ }, undefined, false, undefined, this))]: 74,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "K"
+ }, undefined, false, undefined, this))]: 75,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "L"
+ }, undefined, false, undefined, this))]: 76,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "M"
+ }, undefined, false, undefined, this))]: 77,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "N"
+ }, undefined, false, undefined, this))]: 78,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "O"
+ }, undefined, false, undefined, this))]: 79,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "P"
+ }, undefined, false, undefined, this))]: 80,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Q"
+ }, undefined, false, undefined, this))]: 81,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "R"
+ }, undefined, false, undefined, this))]: 82,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "S"
+ }, undefined, false, undefined, this))]: 83,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "T"
+ }, undefined, false, undefined, this))]: 84,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "U"
+ }, undefined, false, undefined, this))]: 85,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "V"
+ }, undefined, false, undefined, this))]: 86,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "W"
+ }, undefined, false, undefined, this))]: 87,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "X"
+ }, undefined, false, undefined, this))]: 88,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Y"
+ }, undefined, false, undefined, this))]: 89,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Z"
+ }, undefined, false, undefined, this))]: 90,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "["
+ }, undefined, false, undefined, this))]: 91,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\\"
+ }, undefined, false, undefined, this))]: 92,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "]"
+ }, undefined, false, undefined, this))]: 93,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "^"
+ }, undefined, false, undefined, this))]: 94,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "_"
+ }, undefined, false, undefined, this))]: 95,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "`"
+ }, undefined, false, undefined, this))]: 96,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "a"
+ }, undefined, false, undefined, this))]: 97,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "b"
+ }, undefined, false, undefined, this))]: 98,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "c"
+ }, undefined, false, undefined, this))]: 99,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "d"
+ }, undefined, false, undefined, this))]: 100,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "e"
+ }, undefined, false, undefined, this))]: 101,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "f"
+ }, undefined, false, undefined, this))]: 102,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "g"
+ }, undefined, false, undefined, this))]: 103,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "h"
+ }, undefined, false, undefined, this))]: 104,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "i"
+ }, undefined, false, undefined, this))]: 105,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "j"
+ }, undefined, false, undefined, this))]: 106,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "k"
+ }, undefined, false, undefined, this))]: 107,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "l"
+ }, undefined, false, undefined, this))]: 108,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "m"
+ }, undefined, false, undefined, this))]: 109,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "n"
+ }, undefined, false, undefined, this))]: 110,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "o"
+ }, undefined, false, undefined, this))]: 111,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "p"
+ }, undefined, false, undefined, this))]: 112,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "q"
+ }, undefined, false, undefined, this))]: 113,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "r"
+ }, undefined, false, undefined, this))]: 114,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "s"
+ }, undefined, false, undefined, this))]: 115,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "t"
+ }, undefined, false, undefined, this))]: 116,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "u"
+ }, undefined, false, undefined, this))]: 117,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "v"
+ }, undefined, false, undefined, this))]: 118,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "w"
+ }, undefined, false, undefined, this))]: 119,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "x"
+ }, undefined, false, undefined, this))]: 120,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "y"
+ }, undefined, false, undefined, this))]: 121,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "z"
+ }, undefined, false, undefined, this))]: 122,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "{"
+ }, undefined, false, undefined, this))]: 123,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "|"
+ }, undefined, false, undefined, this))]: 124,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "}"
+ }, undefined, false, undefined, this))]: 125,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "~"
+ }, undefined, false, undefined, this))]: 126,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x7F"
+ }, undefined, false, undefined, this))]: 127,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x80"
+ }, undefined, false, undefined, this))]: 128,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x81"
+ }, undefined, false, undefined, this))]: 129,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x82"
+ }, undefined, false, undefined, this))]: 130,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x83"
+ }, undefined, false, undefined, this))]: 131,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x84"
+ }, undefined, false, undefined, this))]: 132,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x85"
+ }, undefined, false, undefined, this))]: 133,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x86"
+ }, undefined, false, undefined, this))]: 134,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x87"
+ }, undefined, false, undefined, this))]: 135,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x88"
+ }, undefined, false, undefined, this))]: 136,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x89"
+ }, undefined, false, undefined, this))]: 137,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8A"
+ }, undefined, false, undefined, this))]: 138,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8B"
+ }, undefined, false, undefined, this))]: 139,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8C"
+ }, undefined, false, undefined, this))]: 140,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8D"
+ }, undefined, false, undefined, this))]: 141,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8E"
+ }, undefined, false, undefined, this))]: 142,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8F"
+ }, undefined, false, undefined, this))]: 143,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x90"
+ }, undefined, false, undefined, this))]: 144,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x91"
+ }, undefined, false, undefined, this))]: 145,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x92"
+ }, undefined, false, undefined, this))]: 146,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x93"
+ }, undefined, false, undefined, this))]: 147,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x94"
+ }, undefined, false, undefined, this))]: 148,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x95"
+ }, undefined, false, undefined, this))]: 149,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x96"
+ }, undefined, false, undefined, this))]: 150,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x97"
+ }, undefined, false, undefined, this))]: 151,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x98"
+ }, undefined, false, undefined, this))]: 152,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x99"
+ }, undefined, false, undefined, this))]: 153,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9A"
+ }, undefined, false, undefined, this))]: 154,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9B"
+ }, undefined, false, undefined, this))]: 155,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9C"
+ }, undefined, false, undefined, this))]: 156,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9D"
+ }, undefined, false, undefined, this))]: 157,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9E"
+ }, undefined, false, undefined, this))]: 158,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9F"
+ }, undefined, false, undefined, this))]: 159,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA0"
+ }, undefined, false, undefined, this))]: 160,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA1"
+ }, undefined, false, undefined, this))]: 161,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA2"
+ }, undefined, false, undefined, this))]: 162,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA3"
+ }, undefined, false, undefined, this))]: 163,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA4"
+ }, undefined, false, undefined, this))]: 164,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA5"
+ }, undefined, false, undefined, this))]: 165,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA6"
+ }, undefined, false, undefined, this))]: 166,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA7"
+ }, undefined, false, undefined, this))]: 167,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA8"
+ }, undefined, false, undefined, this))]: 168,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA9"
+ }, undefined, false, undefined, this))]: 169,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAA"
+ }, undefined, false, undefined, this))]: 170,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAB"
+ }, undefined, false, undefined, this))]: 171,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAC"
+ }, undefined, false, undefined, this))]: 172,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAD"
+ }, undefined, false, undefined, this))]: 173,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAE"
+ }, undefined, false, undefined, this))]: 174,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAF"
+ }, undefined, false, undefined, this))]: 175,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB0"
+ }, undefined, false, undefined, this))]: 176,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB1"
+ }, undefined, false, undefined, this))]: 177,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB2"
+ }, undefined, false, undefined, this))]: 178,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB3"
+ }, undefined, false, undefined, this))]: 179,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB4"
+ }, undefined, false, undefined, this))]: 180,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB5"
+ }, undefined, false, undefined, this))]: 181,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB6"
+ }, undefined, false, undefined, this))]: 182,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB7"
+ }, undefined, false, undefined, this))]: 183,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB8"
+ }, undefined, false, undefined, this))]: 184,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB9"
+ }, undefined, false, undefined, this))]: 185,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBA"
+ }, undefined, false, undefined, this))]: 186,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBB"
+ }, undefined, false, undefined, this))]: 187,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBC"
+ }, undefined, false, undefined, this))]: 188,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBD"
+ }, undefined, false, undefined, this))]: 189,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBE"
+ }, undefined, false, undefined, this))]: 190,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBF"
+ }, undefined, false, undefined, this))]: 191,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC0"
+ }, undefined, false, undefined, this))]: 192,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC1"
+ }, undefined, false, undefined, this))]: 193,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC2"
+ }, undefined, false, undefined, this))]: 194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC3"
+ }, undefined, false, undefined, this))]: 195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC4"
+ }, undefined, false, undefined, this))]: 196,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC5"
+ }, undefined, false, undefined, this))]: 197,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC6"
+ }, undefined, false, undefined, this))]: 198,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC7"
+ }, undefined, false, undefined, this))]: 199,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC8"
+ }, undefined, false, undefined, this))]: 200,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC9"
+ }, undefined, false, undefined, this))]: 201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCA"
+ }, undefined, false, undefined, this))]: 202,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCB"
+ }, undefined, false, undefined, this))]: 203,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCC"
+ }, undefined, false, undefined, this))]: 204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCD"
+ }, undefined, false, undefined, this))]: 205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCE"
+ }, undefined, false, undefined, this))]: 206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCF"
+ }, undefined, false, undefined, this))]: 207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD0"
+ }, undefined, false, undefined, this))]: 208,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD1"
+ }, undefined, false, undefined, this))]: 209,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD2"
+ }, undefined, false, undefined, this))]: 210,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD3"
+ }, undefined, false, undefined, this))]: 211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD4"
+ }, undefined, false, undefined, this))]: 212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD5"
+ }, undefined, false, undefined, this))]: 213,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD6"
+ }, undefined, false, undefined, this))]: 214,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD7"
+ }, undefined, false, undefined, this))]: 215,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD8"
+ }, undefined, false, undefined, this))]: 216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD9"
+ }, undefined, false, undefined, this))]: 217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDA"
+ }, undefined, false, undefined, this))]: 218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDB"
+ }, undefined, false, undefined, this))]: 219,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDC"
+ }, undefined, false, undefined, this))]: 220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDD"
+ }, undefined, false, undefined, this))]: 221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDE"
+ }, undefined, false, undefined, this))]: 222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDF"
+ }, undefined, false, undefined, this))]: 223,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE0"
+ }, undefined, false, undefined, this))]: 224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE1"
+ }, undefined, false, undefined, this))]: 225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE2"
+ }, undefined, false, undefined, this))]: 226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE3"
+ }, undefined, false, undefined, this))]: 227,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE4"
+ }, undefined, false, undefined, this))]: 228,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE5"
+ }, undefined, false, undefined, this))]: 229,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE6"
+ }, undefined, false, undefined, this))]: 230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE7"
+ }, undefined, false, undefined, this))]: 231,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE8"
+ }, undefined, false, undefined, this))]: 232,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE9"
+ }, undefined, false, undefined, this))]: 233,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEA"
+ }, undefined, false, undefined, this))]: 234,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEB"
+ }, undefined, false, undefined, this))]: 235,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEC"
+ }, undefined, false, undefined, this))]: 236,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xED"
+ }, undefined, false, undefined, this))]: 237,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEE"
+ }, undefined, false, undefined, this))]: 238,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEF"
+ }, undefined, false, undefined, this))]: 239,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF0"
+ }, undefined, false, undefined, this))]: 240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF1"
+ }, undefined, false, undefined, this))]: 241,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF2"
+ }, undefined, false, undefined, this))]: 242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF3"
+ }, undefined, false, undefined, this))]: 243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF4"
+ }, undefined, false, undefined, this))]: 244,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF5"
+ }, undefined, false, undefined, this))]: 245,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF6"
+ }, undefined, false, undefined, this))]: 246,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF7"
+ }, undefined, false, undefined, this))]: 247,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF8"
+ }, undefined, false, undefined, this))]: 248,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF9"
+ }, undefined, false, undefined, this))]: 249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFA"
+ }, undefined, false, undefined, this))]: 250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFB"
+ }, undefined, false, undefined, this))]: 251,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFC"
+ }, undefined, false, undefined, this))]: 252,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFD"
+ }, undefined, false, undefined, this))]: 253,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFE"
+ }, undefined, false, undefined, this))]: 254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFF"
+ }, undefined, false, undefined, this))]: 255,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0100"
+ }, undefined, false, undefined, this))]: 256,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0101"
+ }, undefined, false, undefined, this))]: 257,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0102"
+ }, undefined, false, undefined, this))]: 258,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0103"
+ }, undefined, false, undefined, this))]: 259,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0104"
+ }, undefined, false, undefined, this))]: 260,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0105"
+ }, undefined, false, undefined, this))]: 261,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0106"
+ }, undefined, false, undefined, this))]: 262,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0107"
+ }, undefined, false, undefined, this))]: 263,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0108"
+ }, undefined, false, undefined, this))]: 264,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0109"
+ }, undefined, false, undefined, this))]: 265,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010A"
+ }, undefined, false, undefined, this))]: 266,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010B"
+ }, undefined, false, undefined, this))]: 267,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010C"
+ }, undefined, false, undefined, this))]: 268,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010D"
+ }, undefined, false, undefined, this))]: 269,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010E"
+ }, undefined, false, undefined, this))]: 270,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010F"
+ }, undefined, false, undefined, this))]: 271,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0110"
+ }, undefined, false, undefined, this))]: 272,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0111"
+ }, undefined, false, undefined, this))]: 273,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0112"
+ }, undefined, false, undefined, this))]: 274,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0113"
+ }, undefined, false, undefined, this))]: 275,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0114"
+ }, undefined, false, undefined, this))]: 276,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0115"
+ }, undefined, false, undefined, this))]: 277,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0116"
+ }, undefined, false, undefined, this))]: 278,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0117"
+ }, undefined, false, undefined, this))]: 279,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0118"
+ }, undefined, false, undefined, this))]: 280,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0119"
+ }, undefined, false, undefined, this))]: 281,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011A"
+ }, undefined, false, undefined, this))]: 282,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011B"
+ }, undefined, false, undefined, this))]: 283,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011C"
+ }, undefined, false, undefined, this))]: 284,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011D"
+ }, undefined, false, undefined, this))]: 285,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011E"
+ }, undefined, false, undefined, this))]: 286,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011F"
+ }, undefined, false, undefined, this))]: 287,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0120"
+ }, undefined, false, undefined, this))]: 288,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0121"
+ }, undefined, false, undefined, this))]: 289,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0122"
+ }, undefined, false, undefined, this))]: 290,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0123"
+ }, undefined, false, undefined, this))]: 291,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0124"
+ }, undefined, false, undefined, this))]: 292,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0125"
+ }, undefined, false, undefined, this))]: 293,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0126"
+ }, undefined, false, undefined, this))]: 294,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0127"
+ }, undefined, false, undefined, this))]: 295,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0128"
+ }, undefined, false, undefined, this))]: 296,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0129"
+ }, undefined, false, undefined, this))]: 297,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012A"
+ }, undefined, false, undefined, this))]: 298,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012B"
+ }, undefined, false, undefined, this))]: 299,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012C"
+ }, undefined, false, undefined, this))]: 300,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012D"
+ }, undefined, false, undefined, this))]: 301,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012E"
+ }, undefined, false, undefined, this))]: 302,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012F"
+ }, undefined, false, undefined, this))]: 303,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0130"
+ }, undefined, false, undefined, this))]: 304,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0131"
+ }, undefined, false, undefined, this))]: 305,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0132"
+ }, undefined, false, undefined, this))]: 306,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0133"
+ }, undefined, false, undefined, this))]: 307,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0134"
+ }, undefined, false, undefined, this))]: 308,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0135"
+ }, undefined, false, undefined, this))]: 309,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0136"
+ }, undefined, false, undefined, this))]: 310,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0137"
+ }, undefined, false, undefined, this))]: 311,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0138"
+ }, undefined, false, undefined, this))]: 312,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0139"
+ }, undefined, false, undefined, this))]: 313,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013A"
+ }, undefined, false, undefined, this))]: 314,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013B"
+ }, undefined, false, undefined, this))]: 315,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013C"
+ }, undefined, false, undefined, this))]: 316,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013D"
+ }, undefined, false, undefined, this))]: 317,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013E"
+ }, undefined, false, undefined, this))]: 318,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013F"
+ }, undefined, false, undefined, this))]: 319,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0140"
+ }, undefined, false, undefined, this))]: 320,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0141"
+ }, undefined, false, undefined, this))]: 321,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0142"
+ }, undefined, false, undefined, this))]: 322,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0143"
+ }, undefined, false, undefined, this))]: 323,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0144"
+ }, undefined, false, undefined, this))]: 324,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0145"
+ }, undefined, false, undefined, this))]: 325,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0146"
+ }, undefined, false, undefined, this))]: 326,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0147"
+ }, undefined, false, undefined, this))]: 327,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0148"
+ }, undefined, false, undefined, this))]: 328,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0149"
+ }, undefined, false, undefined, this))]: 329,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014A"
+ }, undefined, false, undefined, this))]: 330,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014B"
+ }, undefined, false, undefined, this))]: 331,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014C"
+ }, undefined, false, undefined, this))]: 332,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014D"
+ }, undefined, false, undefined, this))]: 333,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014E"
+ }, undefined, false, undefined, this))]: 334,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014F"
+ }, undefined, false, undefined, this))]: 335,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0150"
+ }, undefined, false, undefined, this))]: 336,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0151"
+ }, undefined, false, undefined, this))]: 337,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0152"
+ }, undefined, false, undefined, this))]: 338,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0153"
+ }, undefined, false, undefined, this))]: 339,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0154"
+ }, undefined, false, undefined, this))]: 340,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0155"
+ }, undefined, false, undefined, this))]: 341,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0156"
+ }, undefined, false, undefined, this))]: 342,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0157"
+ }, undefined, false, undefined, this))]: 343,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0158"
+ }, undefined, false, undefined, this))]: 344,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0159"
+ }, undefined, false, undefined, this))]: 345,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015A"
+ }, undefined, false, undefined, this))]: 346,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015B"
+ }, undefined, false, undefined, this))]: 347,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015C"
+ }, undefined, false, undefined, this))]: 348,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015D"
+ }, undefined, false, undefined, this))]: 349,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015E"
+ }, undefined, false, undefined, this))]: 350,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015F"
+ }, undefined, false, undefined, this))]: 351,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0160"
+ }, undefined, false, undefined, this))]: 352,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0161"
+ }, undefined, false, undefined, this))]: 353,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0162"
+ }, undefined, false, undefined, this))]: 354,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0163"
+ }, undefined, false, undefined, this))]: 355,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0164"
+ }, undefined, false, undefined, this))]: 356,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0165"
+ }, undefined, false, undefined, this))]: 357,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0166"
+ }, undefined, false, undefined, this))]: 358,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0167"
+ }, undefined, false, undefined, this))]: 359,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0168"
+ }, undefined, false, undefined, this))]: 360,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0169"
+ }, undefined, false, undefined, this))]: 361,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016A"
+ }, undefined, false, undefined, this))]: 362,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016B"
+ }, undefined, false, undefined, this))]: 363,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016C"
+ }, undefined, false, undefined, this))]: 364,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016D"
+ }, undefined, false, undefined, this))]: 365,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016E"
+ }, undefined, false, undefined, this))]: 366,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016F"
+ }, undefined, false, undefined, this))]: 367,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0170"
+ }, undefined, false, undefined, this))]: 368,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0171"
+ }, undefined, false, undefined, this))]: 369,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0172"
+ }, undefined, false, undefined, this))]: 370,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0173"
+ }, undefined, false, undefined, this))]: 371,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0174"
+ }, undefined, false, undefined, this))]: 372,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0175"
+ }, undefined, false, undefined, this))]: 373,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0176"
+ }, undefined, false, undefined, this))]: 374,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0177"
+ }, undefined, false, undefined, this))]: 375,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0178"
+ }, undefined, false, undefined, this))]: 376,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0179"
+ }, undefined, false, undefined, this))]: 377,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017A"
+ }, undefined, false, undefined, this))]: 378,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017B"
+ }, undefined, false, undefined, this))]: 379,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017C"
+ }, undefined, false, undefined, this))]: 380,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017D"
+ }, undefined, false, undefined, this))]: 381,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017E"
+ }, undefined, false, undefined, this))]: 382,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017F"
+ }, undefined, false, undefined, this))]: 383,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0180"
+ }, undefined, false, undefined, this))]: 384,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0181"
+ }, undefined, false, undefined, this))]: 385,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0182"
+ }, undefined, false, undefined, this))]: 386,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0183"
+ }, undefined, false, undefined, this))]: 387,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0184"
+ }, undefined, false, undefined, this))]: 388,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0185"
+ }, undefined, false, undefined, this))]: 389,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0186"
+ }, undefined, false, undefined, this))]: 390,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0187"
+ }, undefined, false, undefined, this))]: 391,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0188"
+ }, undefined, false, undefined, this))]: 392,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0189"
+ }, undefined, false, undefined, this))]: 393,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018A"
+ }, undefined, false, undefined, this))]: 394,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018B"
+ }, undefined, false, undefined, this))]: 395,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018C"
+ }, undefined, false, undefined, this))]: 396,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018D"
+ }, undefined, false, undefined, this))]: 397,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018E"
+ }, undefined, false, undefined, this))]: 398,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018F"
+ }, undefined, false, undefined, this))]: 399,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0190"
+ }, undefined, false, undefined, this))]: 400,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0191"
+ }, undefined, false, undefined, this))]: 401,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0192"
+ }, undefined, false, undefined, this))]: 402,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0193"
+ }, undefined, false, undefined, this))]: 403,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0194"
+ }, undefined, false, undefined, this))]: 404,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0195"
+ }, undefined, false, undefined, this))]: 405,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0196"
+ }, undefined, false, undefined, this))]: 406,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0197"
+ }, undefined, false, undefined, this))]: 407,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0198"
+ }, undefined, false, undefined, this))]: 408,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0199"
+ }, undefined, false, undefined, this))]: 409,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019A"
+ }, undefined, false, undefined, this))]: 410,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019B"
+ }, undefined, false, undefined, this))]: 411,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019C"
+ }, undefined, false, undefined, this))]: 412,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019D"
+ }, undefined, false, undefined, this))]: 413,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019E"
+ }, undefined, false, undefined, this))]: 414,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019F"
+ }, undefined, false, undefined, this))]: 415,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A0"
+ }, undefined, false, undefined, this))]: 416,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A1"
+ }, undefined, false, undefined, this))]: 417,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A2"
+ }, undefined, false, undefined, this))]: 418,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A3"
+ }, undefined, false, undefined, this))]: 419,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A4"
+ }, undefined, false, undefined, this))]: 420,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A5"
+ }, undefined, false, undefined, this))]: 421,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A6"
+ }, undefined, false, undefined, this))]: 422,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A7"
+ }, undefined, false, undefined, this))]: 423,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A8"
+ }, undefined, false, undefined, this))]: 424,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A9"
+ }, undefined, false, undefined, this))]: 425,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AA"
+ }, undefined, false, undefined, this))]: 426,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AB"
+ }, undefined, false, undefined, this))]: 427,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AC"
+ }, undefined, false, undefined, this))]: 428,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AD"
+ }, undefined, false, undefined, this))]: 429,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AE"
+ }, undefined, false, undefined, this))]: 430,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AF"
+ }, undefined, false, undefined, this))]: 431,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B0"
+ }, undefined, false, undefined, this))]: 432,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B1"
+ }, undefined, false, undefined, this))]: 433,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B2"
+ }, undefined, false, undefined, this))]: 434,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B3"
+ }, undefined, false, undefined, this))]: 435,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B4"
+ }, undefined, false, undefined, this))]: 436,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B5"
+ }, undefined, false, undefined, this))]: 437,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B6"
+ }, undefined, false, undefined, this))]: 438,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B7"
+ }, undefined, false, undefined, this))]: 439,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B8"
+ }, undefined, false, undefined, this))]: 440,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B9"
+ }, undefined, false, undefined, this))]: 441,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BA"
+ }, undefined, false, undefined, this))]: 442,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BB"
+ }, undefined, false, undefined, this))]: 443,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BC"
+ }, undefined, false, undefined, this))]: 444,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BD"
+ }, undefined, false, undefined, this))]: 445,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BE"
+ }, undefined, false, undefined, this))]: 446,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BF"
+ }, undefined, false, undefined, this))]: 447,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C0"
+ }, undefined, false, undefined, this))]: 448,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C1"
+ }, undefined, false, undefined, this))]: 449,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C2"
+ }, undefined, false, undefined, this))]: 450,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C3"
+ }, undefined, false, undefined, this))]: 451,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C4"
+ }, undefined, false, undefined, this))]: 452,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C5"
+ }, undefined, false, undefined, this))]: 453,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C6"
+ }, undefined, false, undefined, this))]: 454,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C7"
+ }, undefined, false, undefined, this))]: 455,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C8"
+ }, undefined, false, undefined, this))]: 456,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C9"
+ }, undefined, false, undefined, this))]: 457,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CA"
+ }, undefined, false, undefined, this))]: 458,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CB"
+ }, undefined, false, undefined, this))]: 459,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CC"
+ }, undefined, false, undefined, this))]: 460,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CD"
+ }, undefined, false, undefined, this))]: 461,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CE"
+ }, undefined, false, undefined, this))]: 462,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CF"
+ }, undefined, false, undefined, this))]: 463,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D0"
+ }, undefined, false, undefined, this))]: 464,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D1"
+ }, undefined, false, undefined, this))]: 465,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D2"
+ }, undefined, false, undefined, this))]: 466,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D3"
+ }, undefined, false, undefined, this))]: 467,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D4"
+ }, undefined, false, undefined, this))]: 468,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D5"
+ }, undefined, false, undefined, this))]: 469,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D6"
+ }, undefined, false, undefined, this))]: 470,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D7"
+ }, undefined, false, undefined, this))]: 471,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D8"
+ }, undefined, false, undefined, this))]: 472,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D9"
+ }, undefined, false, undefined, this))]: 473,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DA"
+ }, undefined, false, undefined, this))]: 474,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DB"
+ }, undefined, false, undefined, this))]: 475,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DC"
+ }, undefined, false, undefined, this))]: 476,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DD"
+ }, undefined, false, undefined, this))]: 477,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DE"
+ }, undefined, false, undefined, this))]: 478,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DF"
+ }, undefined, false, undefined, this))]: 479,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E0"
+ }, undefined, false, undefined, this))]: 480,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E1"
+ }, undefined, false, undefined, this))]: 481,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E2"
+ }, undefined, false, undefined, this))]: 482,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E3"
+ }, undefined, false, undefined, this))]: 483,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E4"
+ }, undefined, false, undefined, this))]: 484,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E5"
+ }, undefined, false, undefined, this))]: 485,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E6"
+ }, undefined, false, undefined, this))]: 486,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E7"
+ }, undefined, false, undefined, this))]: 487,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E8"
+ }, undefined, false, undefined, this))]: 488,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E9"
+ }, undefined, false, undefined, this))]: 489,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EA"
+ }, undefined, false, undefined, this))]: 490,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EB"
+ }, undefined, false, undefined, this))]: 491,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EC"
+ }, undefined, false, undefined, this))]: 492,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01ED"
+ }, undefined, false, undefined, this))]: 493,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EE"
+ }, undefined, false, undefined, this))]: 494,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EF"
+ }, undefined, false, undefined, this))]: 495,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F0"
+ }, undefined, false, undefined, this))]: 496,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F1"
+ }, undefined, false, undefined, this))]: 497,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F2"
+ }, undefined, false, undefined, this))]: 498,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F3"
+ }, undefined, false, undefined, this))]: 499,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F4"
+ }, undefined, false, undefined, this))]: 500,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F5"
+ }, undefined, false, undefined, this))]: 501,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F6"
+ }, undefined, false, undefined, this))]: 502,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F7"
+ }, undefined, false, undefined, this))]: 503,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F8"
+ }, undefined, false, undefined, this))]: 504,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F9"
+ }, undefined, false, undefined, this))]: 505,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FA"
+ }, undefined, false, undefined, this))]: 506,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FB"
+ }, undefined, false, undefined, this))]: 507,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FC"
+ }, undefined, false, undefined, this))]: 508,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FD"
+ }, undefined, false, undefined, this))]: 509,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FE"
+ }, undefined, false, undefined, this))]: 510,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FF"
+ }, undefined, false, undefined, this))]: 511,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0200"
+ }, undefined, false, undefined, this))]: 512,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0201"
+ }, undefined, false, undefined, this))]: 513,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0202"
+ }, undefined, false, undefined, this))]: 514,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0203"
+ }, undefined, false, undefined, this))]: 515,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0204"
+ }, undefined, false, undefined, this))]: 516,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0205"
+ }, undefined, false, undefined, this))]: 517,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0206"
+ }, undefined, false, undefined, this))]: 518,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0207"
+ }, undefined, false, undefined, this))]: 519,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0208"
+ }, undefined, false, undefined, this))]: 520,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0209"
+ }, undefined, false, undefined, this))]: 521,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020A"
+ }, undefined, false, undefined, this))]: 522,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020B"
+ }, undefined, false, undefined, this))]: 523,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020C"
+ }, undefined, false, undefined, this))]: 524,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020D"
+ }, undefined, false, undefined, this))]: 525,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020E"
+ }, undefined, false, undefined, this))]: 526,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020F"
+ }, undefined, false, undefined, this))]: 527,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0210"
+ }, undefined, false, undefined, this))]: 528,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0211"
+ }, undefined, false, undefined, this))]: 529,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0212"
+ }, undefined, false, undefined, this))]: 530,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0213"
+ }, undefined, false, undefined, this))]: 531,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0214"
+ }, undefined, false, undefined, this))]: 532,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0215"
+ }, undefined, false, undefined, this))]: 533,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0216"
+ }, undefined, false, undefined, this))]: 534,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0217"
+ }, undefined, false, undefined, this))]: 535,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0218"
+ }, undefined, false, undefined, this))]: 536,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0219"
+ }, undefined, false, undefined, this))]: 537,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021A"
+ }, undefined, false, undefined, this))]: 538,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021B"
+ }, undefined, false, undefined, this))]: 539,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021C"
+ }, undefined, false, undefined, this))]: 540,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021D"
+ }, undefined, false, undefined, this))]: 541,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021E"
+ }, undefined, false, undefined, this))]: 542,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021F"
+ }, undefined, false, undefined, this))]: 543,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0220"
+ }, undefined, false, undefined, this))]: 544,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0221"
+ }, undefined, false, undefined, this))]: 545,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0222"
+ }, undefined, false, undefined, this))]: 546,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0223"
+ }, undefined, false, undefined, this))]: 547,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0224"
+ }, undefined, false, undefined, this))]: 548,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0225"
+ }, undefined, false, undefined, this))]: 549,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0226"
+ }, undefined, false, undefined, this))]: 550,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0227"
+ }, undefined, false, undefined, this))]: 551,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0228"
+ }, undefined, false, undefined, this))]: 552,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0229"
+ }, undefined, false, undefined, this))]: 553,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022A"
+ }, undefined, false, undefined, this))]: 554,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022B"
+ }, undefined, false, undefined, this))]: 555,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022C"
+ }, undefined, false, undefined, this))]: 556,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022D"
+ }, undefined, false, undefined, this))]: 557,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022E"
+ }, undefined, false, undefined, this))]: 558,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022F"
+ }, undefined, false, undefined, this))]: 559,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0230"
+ }, undefined, false, undefined, this))]: 560,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0231"
+ }, undefined, false, undefined, this))]: 561,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0232"
+ }, undefined, false, undefined, this))]: 562,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0233"
+ }, undefined, false, undefined, this))]: 563,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0234"
+ }, undefined, false, undefined, this))]: 564,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0235"
+ }, undefined, false, undefined, this))]: 565,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0236"
+ }, undefined, false, undefined, this))]: 566,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0237"
+ }, undefined, false, undefined, this))]: 567,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0238"
+ }, undefined, false, undefined, this))]: 568,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0239"
+ }, undefined, false, undefined, this))]: 569,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023A"
+ }, undefined, false, undefined, this))]: 570,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023B"
+ }, undefined, false, undefined, this))]: 571,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023C"
+ }, undefined, false, undefined, this))]: 572,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023D"
+ }, undefined, false, undefined, this))]: 573,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023E"
+ }, undefined, false, undefined, this))]: 574,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023F"
+ }, undefined, false, undefined, this))]: 575,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0240"
+ }, undefined, false, undefined, this))]: 576,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0241"
+ }, undefined, false, undefined, this))]: 577,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0242"
+ }, undefined, false, undefined, this))]: 578,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0243"
+ }, undefined, false, undefined, this))]: 579,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0244"
+ }, undefined, false, undefined, this))]: 580,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0245"
+ }, undefined, false, undefined, this))]: 581,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0246"
+ }, undefined, false, undefined, this))]: 582,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0247"
+ }, undefined, false, undefined, this))]: 583,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0248"
+ }, undefined, false, undefined, this))]: 584,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0249"
+ }, undefined, false, undefined, this))]: 585,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024A"
+ }, undefined, false, undefined, this))]: 586,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024B"
+ }, undefined, false, undefined, this))]: 587,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024C"
+ }, undefined, false, undefined, this))]: 588,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024D"
+ }, undefined, false, undefined, this))]: 589,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024E"
+ }, undefined, false, undefined, this))]: 590,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024F"
+ }, undefined, false, undefined, this))]: 591,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0250"
+ }, undefined, false, undefined, this))]: 592,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0251"
+ }, undefined, false, undefined, this))]: 593,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0252"
+ }, undefined, false, undefined, this))]: 594,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0253"
+ }, undefined, false, undefined, this))]: 595,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0254"
+ }, undefined, false, undefined, this))]: 596,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0255"
+ }, undefined, false, undefined, this))]: 597,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0256"
+ }, undefined, false, undefined, this))]: 598,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0257"
+ }, undefined, false, undefined, this))]: 599,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0258"
+ }, undefined, false, undefined, this))]: 600,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0259"
+ }, undefined, false, undefined, this))]: 601,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025A"
+ }, undefined, false, undefined, this))]: 602,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025B"
+ }, undefined, false, undefined, this))]: 603,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025C"
+ }, undefined, false, undefined, this))]: 604,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025D"
+ }, undefined, false, undefined, this))]: 605,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025E"
+ }, undefined, false, undefined, this))]: 606,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025F"
+ }, undefined, false, undefined, this))]: 607,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0260"
+ }, undefined, false, undefined, this))]: 608,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0261"
+ }, undefined, false, undefined, this))]: 609,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0262"
+ }, undefined, false, undefined, this))]: 610,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0263"
+ }, undefined, false, undefined, this))]: 611,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0264"
+ }, undefined, false, undefined, this))]: 612,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0265"
+ }, undefined, false, undefined, this))]: 613,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0266"
+ }, undefined, false, undefined, this))]: 614,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0267"
+ }, undefined, false, undefined, this))]: 615,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0268"
+ }, undefined, false, undefined, this))]: 616,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0269"
+ }, undefined, false, undefined, this))]: 617,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026A"
+ }, undefined, false, undefined, this))]: 618,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026B"
+ }, undefined, false, undefined, this))]: 619,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026C"
+ }, undefined, false, undefined, this))]: 620,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026D"
+ }, undefined, false, undefined, this))]: 621,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026E"
+ }, undefined, false, undefined, this))]: 622,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026F"
+ }, undefined, false, undefined, this))]: 623,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0270"
+ }, undefined, false, undefined, this))]: 624,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0271"
+ }, undefined, false, undefined, this))]: 625,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0272"
+ }, undefined, false, undefined, this))]: 626,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0273"
+ }, undefined, false, undefined, this))]: 627,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0274"
+ }, undefined, false, undefined, this))]: 628,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0275"
+ }, undefined, false, undefined, this))]: 629,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0276"
+ }, undefined, false, undefined, this))]: 630,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0277"
+ }, undefined, false, undefined, this))]: 631,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0278"
+ }, undefined, false, undefined, this))]: 632,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0279"
+ }, undefined, false, undefined, this))]: 633,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027A"
+ }, undefined, false, undefined, this))]: 634,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027B"
+ }, undefined, false, undefined, this))]: 635,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027C"
+ }, undefined, false, undefined, this))]: 636,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027D"
+ }, undefined, false, undefined, this))]: 637,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027E"
+ }, undefined, false, undefined, this))]: 638,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027F"
+ }, undefined, false, undefined, this))]: 639,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0280"
+ }, undefined, false, undefined, this))]: 640,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0281"
+ }, undefined, false, undefined, this))]: 641,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0282"
+ }, undefined, false, undefined, this))]: 642,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0283"
+ }, undefined, false, undefined, this))]: 643,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0284"
+ }, undefined, false, undefined, this))]: 644,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0285"
+ }, undefined, false, undefined, this))]: 645,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0286"
+ }, undefined, false, undefined, this))]: 646,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0287"
+ }, undefined, false, undefined, this))]: 647,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0288"
+ }, undefined, false, undefined, this))]: 648,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0289"
+ }, undefined, false, undefined, this))]: 649,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028A"
+ }, undefined, false, undefined, this))]: 650,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028B"
+ }, undefined, false, undefined, this))]: 651,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028C"
+ }, undefined, false, undefined, this))]: 652,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028D"
+ }, undefined, false, undefined, this))]: 653,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028E"
+ }, undefined, false, undefined, this))]: 654,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028F"
+ }, undefined, false, undefined, this))]: 655,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0290"
+ }, undefined, false, undefined, this))]: 656,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0291"
+ }, undefined, false, undefined, this))]: 657,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0292"
+ }, undefined, false, undefined, this))]: 658,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0293"
+ }, undefined, false, undefined, this))]: 659,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0294"
+ }, undefined, false, undefined, this))]: 660
+ };
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/jsx-entities.jsx.map
diff --git a/test/snapshots/jsx-entities.hmr.jsx b/test/snapshots/jsx-entities.hmr.jsx
new file mode 100644
index 000000000..3bad6ca8d
--- /dev/null
+++ b/test/snapshots/jsx-entities.hmr.jsx
@@ -0,0 +1,2790 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+import * as $1f6f0e67 from "http://localhost:8080/node_modules/react-dom/server.browser.js";
+var ReactDOM = require($1f6f0e67);
+var hmr = new FastHMR(817082122, "jsx-entities.jsx", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ const elements = {
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: '"'
+ }, undefined, false, undefined, this))]: 34,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "&"
+ }, undefined, false, undefined, this))]: 38,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "'"
+ }, undefined, false, undefined, this))]: 39,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "<"
+ }, undefined, false, undefined, this))]: 60,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ">"
+ }, undefined, false, undefined, this))]: 62,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA0"
+ }, undefined, false, undefined, this))]: 160,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA1"
+ }, undefined, false, undefined, this))]: 161,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA2"
+ }, undefined, false, undefined, this))]: 162,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA3"
+ }, undefined, false, undefined, this))]: 163,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA4"
+ }, undefined, false, undefined, this))]: 164,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA5"
+ }, undefined, false, undefined, this))]: 165,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA6"
+ }, undefined, false, undefined, this))]: 166,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA7"
+ }, undefined, false, undefined, this))]: 167,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA8"
+ }, undefined, false, undefined, this))]: 168,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA9"
+ }, undefined, false, undefined, this))]: 169,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAA"
+ }, undefined, false, undefined, this))]: 170,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAB"
+ }, undefined, false, undefined, this))]: 171,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAC"
+ }, undefined, false, undefined, this))]: 172,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAD"
+ }, undefined, false, undefined, this))]: 173,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAE"
+ }, undefined, false, undefined, this))]: 174,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAF"
+ }, undefined, false, undefined, this))]: 175,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB0"
+ }, undefined, false, undefined, this))]: 176,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB1"
+ }, undefined, false, undefined, this))]: 177,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB2"
+ }, undefined, false, undefined, this))]: 178,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB3"
+ }, undefined, false, undefined, this))]: 179,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB4"
+ }, undefined, false, undefined, this))]: 180,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB5"
+ }, undefined, false, undefined, this))]: 181,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB6"
+ }, undefined, false, undefined, this))]: 182,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB7"
+ }, undefined, false, undefined, this))]: 183,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB8"
+ }, undefined, false, undefined, this))]: 184,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB9"
+ }, undefined, false, undefined, this))]: 185,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBA"
+ }, undefined, false, undefined, this))]: 186,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBB"
+ }, undefined, false, undefined, this))]: 187,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBC"
+ }, undefined, false, undefined, this))]: 188,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBD"
+ }, undefined, false, undefined, this))]: 189,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBE"
+ }, undefined, false, undefined, this))]: 190,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBF"
+ }, undefined, false, undefined, this))]: 191,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC0"
+ }, undefined, false, undefined, this))]: 192,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC1"
+ }, undefined, false, undefined, this))]: 193,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC2"
+ }, undefined, false, undefined, this))]: 194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC3"
+ }, undefined, false, undefined, this))]: 195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC4"
+ }, undefined, false, undefined, this))]: 196,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC5"
+ }, undefined, false, undefined, this))]: 197,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC6"
+ }, undefined, false, undefined, this))]: 198,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC7"
+ }, undefined, false, undefined, this))]: 199,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC8"
+ }, undefined, false, undefined, this))]: 200,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC9"
+ }, undefined, false, undefined, this))]: 201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCA"
+ }, undefined, false, undefined, this))]: 202,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCB"
+ }, undefined, false, undefined, this))]: 203,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCC"
+ }, undefined, false, undefined, this))]: 204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCD"
+ }, undefined, false, undefined, this))]: 205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCE"
+ }, undefined, false, undefined, this))]: 206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCF"
+ }, undefined, false, undefined, this))]: 207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD0"
+ }, undefined, false, undefined, this))]: 208,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD1"
+ }, undefined, false, undefined, this))]: 209,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD2"
+ }, undefined, false, undefined, this))]: 210,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD3"
+ }, undefined, false, undefined, this))]: 211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD4"
+ }, undefined, false, undefined, this))]: 212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD5"
+ }, undefined, false, undefined, this))]: 213,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD6"
+ }, undefined, false, undefined, this))]: 214,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD7"
+ }, undefined, false, undefined, this))]: 215,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD8"
+ }, undefined, false, undefined, this))]: 216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD9"
+ }, undefined, false, undefined, this))]: 217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDA"
+ }, undefined, false, undefined, this))]: 218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDB"
+ }, undefined, false, undefined, this))]: 219,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDC"
+ }, undefined, false, undefined, this))]: 220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDD"
+ }, undefined, false, undefined, this))]: 221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDE"
+ }, undefined, false, undefined, this))]: 222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDF"
+ }, undefined, false, undefined, this))]: 223,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE0"
+ }, undefined, false, undefined, this))]: 224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE1"
+ }, undefined, false, undefined, this))]: 225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE2"
+ }, undefined, false, undefined, this))]: 226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE3"
+ }, undefined, false, undefined, this))]: 227,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE4"
+ }, undefined, false, undefined, this))]: 228,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE5"
+ }, undefined, false, undefined, this))]: 229,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE6"
+ }, undefined, false, undefined, this))]: 230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE7"
+ }, undefined, false, undefined, this))]: 231,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE8"
+ }, undefined, false, undefined, this))]: 232,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE9"
+ }, undefined, false, undefined, this))]: 233,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEA"
+ }, undefined, false, undefined, this))]: 234,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEB"
+ }, undefined, false, undefined, this))]: 235,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEC"
+ }, undefined, false, undefined, this))]: 236,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xED"
+ }, undefined, false, undefined, this))]: 237,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEE"
+ }, undefined, false, undefined, this))]: 238,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEF"
+ }, undefined, false, undefined, this))]: 239,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF0"
+ }, undefined, false, undefined, this))]: 240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF1"
+ }, undefined, false, undefined, this))]: 241,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF2"
+ }, undefined, false, undefined, this))]: 242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF3"
+ }, undefined, false, undefined, this))]: 243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF4"
+ }, undefined, false, undefined, this))]: 244,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF5"
+ }, undefined, false, undefined, this))]: 245,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF6"
+ }, undefined, false, undefined, this))]: 246,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF7"
+ }, undefined, false, undefined, this))]: 247,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF8"
+ }, undefined, false, undefined, this))]: 248,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF9"
+ }, undefined, false, undefined, this))]: 249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFA"
+ }, undefined, false, undefined, this))]: 250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFB"
+ }, undefined, false, undefined, this))]: 251,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFC"
+ }, undefined, false, undefined, this))]: 252,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFD"
+ }, undefined, false, undefined, this))]: 253,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFE"
+ }, undefined, false, undefined, this))]: 254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFF"
+ }, undefined, false, undefined, this))]: 255,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0152"
+ }, undefined, false, undefined, this))]: 338,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0153"
+ }, undefined, false, undefined, this))]: 339,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0160"
+ }, undefined, false, undefined, this))]: 352,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0161"
+ }, undefined, false, undefined, this))]: 353,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0178"
+ }, undefined, false, undefined, this))]: 376,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0192"
+ }, undefined, false, undefined, this))]: 402,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u02C6"
+ }, undefined, false, undefined, this))]: 710,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u02DC"
+ }, undefined, false, undefined, this))]: 732,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0391"
+ }, undefined, false, undefined, this))]: 913,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0392"
+ }, undefined, false, undefined, this))]: 914,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0393"
+ }, undefined, false, undefined, this))]: 915,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0394"
+ }, undefined, false, undefined, this))]: 916,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0395"
+ }, undefined, false, undefined, this))]: 917,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0396"
+ }, undefined, false, undefined, this))]: 918,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0397"
+ }, undefined, false, undefined, this))]: 919,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0398"
+ }, undefined, false, undefined, this))]: 920,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0399"
+ }, undefined, false, undefined, this))]: 921,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039A"
+ }, undefined, false, undefined, this))]: 922,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039B"
+ }, undefined, false, undefined, this))]: 923,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039C"
+ }, undefined, false, undefined, this))]: 924,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039D"
+ }, undefined, false, undefined, this))]: 925,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039E"
+ }, undefined, false, undefined, this))]: 926,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039F"
+ }, undefined, false, undefined, this))]: 927,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A0"
+ }, undefined, false, undefined, this))]: 928,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A1"
+ }, undefined, false, undefined, this))]: 929,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A3"
+ }, undefined, false, undefined, this))]: 931,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A4"
+ }, undefined, false, undefined, this))]: 932,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A5"
+ }, undefined, false, undefined, this))]: 933,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A6"
+ }, undefined, false, undefined, this))]: 934,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A7"
+ }, undefined, false, undefined, this))]: 935,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A8"
+ }, undefined, false, undefined, this))]: 936,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A9"
+ }, undefined, false, undefined, this))]: 937,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B1"
+ }, undefined, false, undefined, this))]: 945,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B2"
+ }, undefined, false, undefined, this))]: 946,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B3"
+ }, undefined, false, undefined, this))]: 947,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B4"
+ }, undefined, false, undefined, this))]: 948,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B5"
+ }, undefined, false, undefined, this))]: 949,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B6"
+ }, undefined, false, undefined, this))]: 950,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B7"
+ }, undefined, false, undefined, this))]: 951,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B8"
+ }, undefined, false, undefined, this))]: 952,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B9"
+ }, undefined, false, undefined, this))]: 953,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BA"
+ }, undefined, false, undefined, this))]: 954,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BB"
+ }, undefined, false, undefined, this))]: 955,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BC"
+ }, undefined, false, undefined, this))]: 956,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BD"
+ }, undefined, false, undefined, this))]: 957,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BE"
+ }, undefined, false, undefined, this))]: 958,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BF"
+ }, undefined, false, undefined, this))]: 959,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C0"
+ }, undefined, false, undefined, this))]: 960,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C1"
+ }, undefined, false, undefined, this))]: 961,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C2"
+ }, undefined, false, undefined, this))]: 962,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C3"
+ }, undefined, false, undefined, this))]: 963,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C4"
+ }, undefined, false, undefined, this))]: 964,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C5"
+ }, undefined, false, undefined, this))]: 965,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C6"
+ }, undefined, false, undefined, this))]: 966,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C7"
+ }, undefined, false, undefined, this))]: 967,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C8"
+ }, undefined, false, undefined, this))]: 968,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C9"
+ }, undefined, false, undefined, this))]: 969,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D1"
+ }, undefined, false, undefined, this))]: 977,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D2"
+ }, undefined, false, undefined, this))]: 978,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D6"
+ }, undefined, false, undefined, this))]: 982,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2002"
+ }, undefined, false, undefined, this))]: 8194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2003"
+ }, undefined, false, undefined, this))]: 8195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2009"
+ }, undefined, false, undefined, this))]: 8201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200C"
+ }, undefined, false, undefined, this))]: 8204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200D"
+ }, undefined, false, undefined, this))]: 8205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200E"
+ }, undefined, false, undefined, this))]: 8206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200F"
+ }, undefined, false, undefined, this))]: 8207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2013"
+ }, undefined, false, undefined, this))]: 8211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2014"
+ }, undefined, false, undefined, this))]: 8212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2018"
+ }, undefined, false, undefined, this))]: 8216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2019"
+ }, undefined, false, undefined, this))]: 8217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201A"
+ }, undefined, false, undefined, this))]: 8218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201C"
+ }, undefined, false, undefined, this))]: 8220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201D"
+ }, undefined, false, undefined, this))]: 8221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201E"
+ }, undefined, false, undefined, this))]: 8222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2020"
+ }, undefined, false, undefined, this))]: 8224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2021"
+ }, undefined, false, undefined, this))]: 8225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2022"
+ }, undefined, false, undefined, this))]: 8226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2026"
+ }, undefined, false, undefined, this))]: 8230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2030"
+ }, undefined, false, undefined, this))]: 8240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2032"
+ }, undefined, false, undefined, this))]: 8242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2033"
+ }, undefined, false, undefined, this))]: 8243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2039"
+ }, undefined, false, undefined, this))]: 8249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u203A"
+ }, undefined, false, undefined, this))]: 8250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u203E"
+ }, undefined, false, undefined, this))]: 8254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2044"
+ }, undefined, false, undefined, this))]: 8260,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u20AC"
+ }, undefined, false, undefined, this))]: 8364,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2111"
+ }, undefined, false, undefined, this))]: 8465,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2118"
+ }, undefined, false, undefined, this))]: 8472,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u211C"
+ }, undefined, false, undefined, this))]: 8476,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2122"
+ }, undefined, false, undefined, this))]: 8482,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2135"
+ }, undefined, false, undefined, this))]: 8501,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2190"
+ }, undefined, false, undefined, this))]: 8592,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2191"
+ }, undefined, false, undefined, this))]: 8593,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2192"
+ }, undefined, false, undefined, this))]: 8594,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2193"
+ }, undefined, false, undefined, this))]: 8595,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2194"
+ }, undefined, false, undefined, this))]: 8596,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21B5"
+ }, undefined, false, undefined, this))]: 8629,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D0"
+ }, undefined, false, undefined, this))]: 8656,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D1"
+ }, undefined, false, undefined, this))]: 8657,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D2"
+ }, undefined, false, undefined, this))]: 8658,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D3"
+ }, undefined, false, undefined, this))]: 8659,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D4"
+ }, undefined, false, undefined, this))]: 8660,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2200"
+ }, undefined, false, undefined, this))]: 8704,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2202"
+ }, undefined, false, undefined, this))]: 8706,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2203"
+ }, undefined, false, undefined, this))]: 8707,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2205"
+ }, undefined, false, undefined, this))]: 8709,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2207"
+ }, undefined, false, undefined, this))]: 8711,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2208"
+ }, undefined, false, undefined, this))]: 8712,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2209"
+ }, undefined, false, undefined, this))]: 8713,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u220B"
+ }, undefined, false, undefined, this))]: 8715,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u220F"
+ }, undefined, false, undefined, this))]: 8719,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2211"
+ }, undefined, false, undefined, this))]: 8721,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2212"
+ }, undefined, false, undefined, this))]: 8722,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2217"
+ }, undefined, false, undefined, this))]: 8727,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221A"
+ }, undefined, false, undefined, this))]: 8730,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221D"
+ }, undefined, false, undefined, this))]: 8733,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221E"
+ }, undefined, false, undefined, this))]: 8734,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2220"
+ }, undefined, false, undefined, this))]: 8736,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2227"
+ }, undefined, false, undefined, this))]: 8743,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2228"
+ }, undefined, false, undefined, this))]: 8744,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2229"
+ }, undefined, false, undefined, this))]: 8745,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u222A"
+ }, undefined, false, undefined, this))]: 8746,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u222B"
+ }, undefined, false, undefined, this))]: 8747,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2234"
+ }, undefined, false, undefined, this))]: 8756,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u223C"
+ }, undefined, false, undefined, this))]: 8764,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2245"
+ }, undefined, false, undefined, this))]: 8773,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2248"
+ }, undefined, false, undefined, this))]: 8776,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2260"
+ }, undefined, false, undefined, this))]: 8800,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2261"
+ }, undefined, false, undefined, this))]: 8801,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2264"
+ }, undefined, false, undefined, this))]: 8804,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2265"
+ }, undefined, false, undefined, this))]: 8805,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2282"
+ }, undefined, false, undefined, this))]: 8834,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2283"
+ }, undefined, false, undefined, this))]: 8835,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2284"
+ }, undefined, false, undefined, this))]: 8836,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2286"
+ }, undefined, false, undefined, this))]: 8838,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2287"
+ }, undefined, false, undefined, this))]: 8839,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2295"
+ }, undefined, false, undefined, this))]: 8853,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2297"
+ }, undefined, false, undefined, this))]: 8855,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u22A5"
+ }, undefined, false, undefined, this))]: 8869,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u22C5"
+ }, undefined, false, undefined, this))]: 8901,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2308"
+ }, undefined, false, undefined, this))]: 8968,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2309"
+ }, undefined, false, undefined, this))]: 8969,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u230A"
+ }, undefined, false, undefined, this))]: 8970,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u230B"
+ }, undefined, false, undefined, this))]: 8971,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2329"
+ }, undefined, false, undefined, this))]: 9001,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u232A"
+ }, undefined, false, undefined, this))]: 9002,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u25CA"
+ }, undefined, false, undefined, this))]: 9674,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2660"
+ }, undefined, false, undefined, this))]: 9824,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2663"
+ }, undefined, false, undefined, this))]: 9827,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2665"
+ }, undefined, false, undefined, this))]: 9829,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2666"
+ }, undefined, false, undefined, this))]: 9830,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x01"
+ }, undefined, false, undefined, this))]: 1,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x02"
+ }, undefined, false, undefined, this))]: 2,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x03"
+ }, undefined, false, undefined, this))]: 3,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x04"
+ }, undefined, false, undefined, this))]: 4,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x05"
+ }, undefined, false, undefined, this))]: 5,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x06"
+ }, undefined, false, undefined, this))]: 6,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x07"
+ }, undefined, false, undefined, this))]: 7,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\f"
+ }, undefined, false, undefined, this))]: 8,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\t"
+ }, undefined, false, undefined, this))]: 9,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: `
+`
+ }, undefined, false, undefined, this))]: 10,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\v"
+ }, undefined, false, undefined, this))]: 11,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\f"
+ }, undefined, false, undefined, this))]: 12,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: `\r`
+ }, undefined, false, undefined, this))]: 13,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x0E"
+ }, undefined, false, undefined, this))]: 14,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x0F"
+ }, undefined, false, undefined, this))]: 15,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x10"
+ }, undefined, false, undefined, this))]: 16,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x11"
+ }, undefined, false, undefined, this))]: 17,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x12"
+ }, undefined, false, undefined, this))]: 18,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x13"
+ }, undefined, false, undefined, this))]: 19,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x14"
+ }, undefined, false, undefined, this))]: 20,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x15"
+ }, undefined, false, undefined, this))]: 21,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x16"
+ }, undefined, false, undefined, this))]: 22,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x17"
+ }, undefined, false, undefined, this))]: 23,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x18"
+ }, undefined, false, undefined, this))]: 24,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x19"
+ }, undefined, false, undefined, this))]: 25,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1A"
+ }, undefined, false, undefined, this))]: 26,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1B"
+ }, undefined, false, undefined, this))]: 27,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1C"
+ }, undefined, false, undefined, this))]: 28,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1D"
+ }, undefined, false, undefined, this))]: 29,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1E"
+ }, undefined, false, undefined, this))]: 30,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1F"
+ }, undefined, false, undefined, this))]: 31,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: " "
+ }, undefined, false, undefined, this))]: 32,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "!"
+ }, undefined, false, undefined, this))]: 33,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: '"'
+ }, undefined, false, undefined, this))]: 34,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "#"
+ }, undefined, false, undefined, this))]: 35,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "$"
+ }, undefined, false, undefined, this))]: 36,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "%"
+ }, undefined, false, undefined, this))]: 37,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "&"
+ }, undefined, false, undefined, this))]: 38,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "'"
+ }, undefined, false, undefined, this))]: 39,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "("
+ }, undefined, false, undefined, this))]: 40,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ")"
+ }, undefined, false, undefined, this))]: 41,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "*"
+ }, undefined, false, undefined, this))]: 42,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "+"
+ }, undefined, false, undefined, this))]: 43,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ","
+ }, undefined, false, undefined, this))]: 44,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "-"
+ }, undefined, false, undefined, this))]: 45,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "."
+ }, undefined, false, undefined, this))]: 46,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "/"
+ }, undefined, false, undefined, this))]: 47,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "0"
+ }, undefined, false, undefined, this))]: 48,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "1"
+ }, undefined, false, undefined, this))]: 49,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "2"
+ }, undefined, false, undefined, this))]: 50,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "3"
+ }, undefined, false, undefined, this))]: 51,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "4"
+ }, undefined, false, undefined, this))]: 52,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "5"
+ }, undefined, false, undefined, this))]: 53,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "6"
+ }, undefined, false, undefined, this))]: 54,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "7"
+ }, undefined, false, undefined, this))]: 55,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "8"
+ }, undefined, false, undefined, this))]: 56,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "9"
+ }, undefined, false, undefined, this))]: 57,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ":"
+ }, undefined, false, undefined, this))]: 58,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ";"
+ }, undefined, false, undefined, this))]: 59,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "<"
+ }, undefined, false, undefined, this))]: 60,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "="
+ }, undefined, false, undefined, this))]: 61,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ">"
+ }, undefined, false, undefined, this))]: 62,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "?"
+ }, undefined, false, undefined, this))]: 63,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "@"
+ }, undefined, false, undefined, this))]: 64,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "A"
+ }, undefined, false, undefined, this))]: 65,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "B"
+ }, undefined, false, undefined, this))]: 66,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "C"
+ }, undefined, false, undefined, this))]: 67,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "D"
+ }, undefined, false, undefined, this))]: 68,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "E"
+ }, undefined, false, undefined, this))]: 69,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "F"
+ }, undefined, false, undefined, this))]: 70,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "G"
+ }, undefined, false, undefined, this))]: 71,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "H"
+ }, undefined, false, undefined, this))]: 72,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "I"
+ }, undefined, false, undefined, this))]: 73,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "J"
+ }, undefined, false, undefined, this))]: 74,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "K"
+ }, undefined, false, undefined, this))]: 75,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "L"
+ }, undefined, false, undefined, this))]: 76,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "M"
+ }, undefined, false, undefined, this))]: 77,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "N"
+ }, undefined, false, undefined, this))]: 78,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "O"
+ }, undefined, false, undefined, this))]: 79,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "P"
+ }, undefined, false, undefined, this))]: 80,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Q"
+ }, undefined, false, undefined, this))]: 81,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "R"
+ }, undefined, false, undefined, this))]: 82,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "S"
+ }, undefined, false, undefined, this))]: 83,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "T"
+ }, undefined, false, undefined, this))]: 84,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "U"
+ }, undefined, false, undefined, this))]: 85,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "V"
+ }, undefined, false, undefined, this))]: 86,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "W"
+ }, undefined, false, undefined, this))]: 87,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "X"
+ }, undefined, false, undefined, this))]: 88,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Y"
+ }, undefined, false, undefined, this))]: 89,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Z"
+ }, undefined, false, undefined, this))]: 90,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "["
+ }, undefined, false, undefined, this))]: 91,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\\"
+ }, undefined, false, undefined, this))]: 92,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "]"
+ }, undefined, false, undefined, this))]: 93,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "^"
+ }, undefined, false, undefined, this))]: 94,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "_"
+ }, undefined, false, undefined, this))]: 95,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "`"
+ }, undefined, false, undefined, this))]: 96,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "a"
+ }, undefined, false, undefined, this))]: 97,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "b"
+ }, undefined, false, undefined, this))]: 98,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "c"
+ }, undefined, false, undefined, this))]: 99,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "d"
+ }, undefined, false, undefined, this))]: 100,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "e"
+ }, undefined, false, undefined, this))]: 101,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "f"
+ }, undefined, false, undefined, this))]: 102,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "g"
+ }, undefined, false, undefined, this))]: 103,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "h"
+ }, undefined, false, undefined, this))]: 104,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "i"
+ }, undefined, false, undefined, this))]: 105,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "j"
+ }, undefined, false, undefined, this))]: 106,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "k"
+ }, undefined, false, undefined, this))]: 107,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "l"
+ }, undefined, false, undefined, this))]: 108,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "m"
+ }, undefined, false, undefined, this))]: 109,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "n"
+ }, undefined, false, undefined, this))]: 110,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "o"
+ }, undefined, false, undefined, this))]: 111,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "p"
+ }, undefined, false, undefined, this))]: 112,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "q"
+ }, undefined, false, undefined, this))]: 113,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "r"
+ }, undefined, false, undefined, this))]: 114,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "s"
+ }, undefined, false, undefined, this))]: 115,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "t"
+ }, undefined, false, undefined, this))]: 116,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "u"
+ }, undefined, false, undefined, this))]: 117,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "v"
+ }, undefined, false, undefined, this))]: 118,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "w"
+ }, undefined, false, undefined, this))]: 119,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "x"
+ }, undefined, false, undefined, this))]: 120,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "y"
+ }, undefined, false, undefined, this))]: 121,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "z"
+ }, undefined, false, undefined, this))]: 122,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "{"
+ }, undefined, false, undefined, this))]: 123,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "|"
+ }, undefined, false, undefined, this))]: 124,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "}"
+ }, undefined, false, undefined, this))]: 125,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "~"
+ }, undefined, false, undefined, this))]: 126,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x7F"
+ }, undefined, false, undefined, this))]: 127,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x80"
+ }, undefined, false, undefined, this))]: 128,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x81"
+ }, undefined, false, undefined, this))]: 129,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x82"
+ }, undefined, false, undefined, this))]: 130,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x83"
+ }, undefined, false, undefined, this))]: 131,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x84"
+ }, undefined, false, undefined, this))]: 132,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x85"
+ }, undefined, false, undefined, this))]: 133,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x86"
+ }, undefined, false, undefined, this))]: 134,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x87"
+ }, undefined, false, undefined, this))]: 135,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x88"
+ }, undefined, false, undefined, this))]: 136,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x89"
+ }, undefined, false, undefined, this))]: 137,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8A"
+ }, undefined, false, undefined, this))]: 138,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8B"
+ }, undefined, false, undefined, this))]: 139,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8C"
+ }, undefined, false, undefined, this))]: 140,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8D"
+ }, undefined, false, undefined, this))]: 141,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8E"
+ }, undefined, false, undefined, this))]: 142,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8F"
+ }, undefined, false, undefined, this))]: 143,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x90"
+ }, undefined, false, undefined, this))]: 144,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x91"
+ }, undefined, false, undefined, this))]: 145,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x92"
+ }, undefined, false, undefined, this))]: 146,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x93"
+ }, undefined, false, undefined, this))]: 147,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x94"
+ }, undefined, false, undefined, this))]: 148,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x95"
+ }, undefined, false, undefined, this))]: 149,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x96"
+ }, undefined, false, undefined, this))]: 150,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x97"
+ }, undefined, false, undefined, this))]: 151,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x98"
+ }, undefined, false, undefined, this))]: 152,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x99"
+ }, undefined, false, undefined, this))]: 153,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9A"
+ }, undefined, false, undefined, this))]: 154,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9B"
+ }, undefined, false, undefined, this))]: 155,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9C"
+ }, undefined, false, undefined, this))]: 156,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9D"
+ }, undefined, false, undefined, this))]: 157,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9E"
+ }, undefined, false, undefined, this))]: 158,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9F"
+ }, undefined, false, undefined, this))]: 159,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA0"
+ }, undefined, false, undefined, this))]: 160,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA1"
+ }, undefined, false, undefined, this))]: 161,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA2"
+ }, undefined, false, undefined, this))]: 162,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA3"
+ }, undefined, false, undefined, this))]: 163,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA4"
+ }, undefined, false, undefined, this))]: 164,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA5"
+ }, undefined, false, undefined, this))]: 165,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA6"
+ }, undefined, false, undefined, this))]: 166,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA7"
+ }, undefined, false, undefined, this))]: 167,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA8"
+ }, undefined, false, undefined, this))]: 168,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA9"
+ }, undefined, false, undefined, this))]: 169,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAA"
+ }, undefined, false, undefined, this))]: 170,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAB"
+ }, undefined, false, undefined, this))]: 171,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAC"
+ }, undefined, false, undefined, this))]: 172,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAD"
+ }, undefined, false, undefined, this))]: 173,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAE"
+ }, undefined, false, undefined, this))]: 174,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAF"
+ }, undefined, false, undefined, this))]: 175,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB0"
+ }, undefined, false, undefined, this))]: 176,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB1"
+ }, undefined, false, undefined, this))]: 177,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB2"
+ }, undefined, false, undefined, this))]: 178,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB3"
+ }, undefined, false, undefined, this))]: 179,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB4"
+ }, undefined, false, undefined, this))]: 180,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB5"
+ }, undefined, false, undefined, this))]: 181,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB6"
+ }, undefined, false, undefined, this))]: 182,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB7"
+ }, undefined, false, undefined, this))]: 183,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB8"
+ }, undefined, false, undefined, this))]: 184,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB9"
+ }, undefined, false, undefined, this))]: 185,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBA"
+ }, undefined, false, undefined, this))]: 186,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBB"
+ }, undefined, false, undefined, this))]: 187,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBC"
+ }, undefined, false, undefined, this))]: 188,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBD"
+ }, undefined, false, undefined, this))]: 189,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBE"
+ }, undefined, false, undefined, this))]: 190,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBF"
+ }, undefined, false, undefined, this))]: 191,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC0"
+ }, undefined, false, undefined, this))]: 192,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC1"
+ }, undefined, false, undefined, this))]: 193,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC2"
+ }, undefined, false, undefined, this))]: 194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC3"
+ }, undefined, false, undefined, this))]: 195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC4"
+ }, undefined, false, undefined, this))]: 196,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC5"
+ }, undefined, false, undefined, this))]: 197,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC6"
+ }, undefined, false, undefined, this))]: 198,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC7"
+ }, undefined, false, undefined, this))]: 199,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC8"
+ }, undefined, false, undefined, this))]: 200,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC9"
+ }, undefined, false, undefined, this))]: 201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCA"
+ }, undefined, false, undefined, this))]: 202,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCB"
+ }, undefined, false, undefined, this))]: 203,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCC"
+ }, undefined, false, undefined, this))]: 204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCD"
+ }, undefined, false, undefined, this))]: 205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCE"
+ }, undefined, false, undefined, this))]: 206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCF"
+ }, undefined, false, undefined, this))]: 207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD0"
+ }, undefined, false, undefined, this))]: 208,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD1"
+ }, undefined, false, undefined, this))]: 209,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD2"
+ }, undefined, false, undefined, this))]: 210,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD3"
+ }, undefined, false, undefined, this))]: 211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD4"
+ }, undefined, false, undefined, this))]: 212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD5"
+ }, undefined, false, undefined, this))]: 213,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD6"
+ }, undefined, false, undefined, this))]: 214,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD7"
+ }, undefined, false, undefined, this))]: 215,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD8"
+ }, undefined, false, undefined, this))]: 216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD9"
+ }, undefined, false, undefined, this))]: 217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDA"
+ }, undefined, false, undefined, this))]: 218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDB"
+ }, undefined, false, undefined, this))]: 219,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDC"
+ }, undefined, false, undefined, this))]: 220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDD"
+ }, undefined, false, undefined, this))]: 221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDE"
+ }, undefined, false, undefined, this))]: 222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDF"
+ }, undefined, false, undefined, this))]: 223,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE0"
+ }, undefined, false, undefined, this))]: 224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE1"
+ }, undefined, false, undefined, this))]: 225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE2"
+ }, undefined, false, undefined, this))]: 226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE3"
+ }, undefined, false, undefined, this))]: 227,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE4"
+ }, undefined, false, undefined, this))]: 228,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE5"
+ }, undefined, false, undefined, this))]: 229,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE6"
+ }, undefined, false, undefined, this))]: 230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE7"
+ }, undefined, false, undefined, this))]: 231,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE8"
+ }, undefined, false, undefined, this))]: 232,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE9"
+ }, undefined, false, undefined, this))]: 233,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEA"
+ }, undefined, false, undefined, this))]: 234,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEB"
+ }, undefined, false, undefined, this))]: 235,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEC"
+ }, undefined, false, undefined, this))]: 236,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xED"
+ }, undefined, false, undefined, this))]: 237,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEE"
+ }, undefined, false, undefined, this))]: 238,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEF"
+ }, undefined, false, undefined, this))]: 239,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF0"
+ }, undefined, false, undefined, this))]: 240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF1"
+ }, undefined, false, undefined, this))]: 241,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF2"
+ }, undefined, false, undefined, this))]: 242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF3"
+ }, undefined, false, undefined, this))]: 243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF4"
+ }, undefined, false, undefined, this))]: 244,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF5"
+ }, undefined, false, undefined, this))]: 245,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF6"
+ }, undefined, false, undefined, this))]: 246,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF7"
+ }, undefined, false, undefined, this))]: 247,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF8"
+ }, undefined, false, undefined, this))]: 248,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF9"
+ }, undefined, false, undefined, this))]: 249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFA"
+ }, undefined, false, undefined, this))]: 250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFB"
+ }, undefined, false, undefined, this))]: 251,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFC"
+ }, undefined, false, undefined, this))]: 252,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFD"
+ }, undefined, false, undefined, this))]: 253,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFE"
+ }, undefined, false, undefined, this))]: 254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFF"
+ }, undefined, false, undefined, this))]: 255,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0100"
+ }, undefined, false, undefined, this))]: 256,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0101"
+ }, undefined, false, undefined, this))]: 257,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0102"
+ }, undefined, false, undefined, this))]: 258,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0103"
+ }, undefined, false, undefined, this))]: 259,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0104"
+ }, undefined, false, undefined, this))]: 260,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0105"
+ }, undefined, false, undefined, this))]: 261,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0106"
+ }, undefined, false, undefined, this))]: 262,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0107"
+ }, undefined, false, undefined, this))]: 263,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0108"
+ }, undefined, false, undefined, this))]: 264,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0109"
+ }, undefined, false, undefined, this))]: 265,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010A"
+ }, undefined, false, undefined, this))]: 266,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010B"
+ }, undefined, false, undefined, this))]: 267,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010C"
+ }, undefined, false, undefined, this))]: 268,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010D"
+ }, undefined, false, undefined, this))]: 269,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010E"
+ }, undefined, false, undefined, this))]: 270,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010F"
+ }, undefined, false, undefined, this))]: 271,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0110"
+ }, undefined, false, undefined, this))]: 272,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0111"
+ }, undefined, false, undefined, this))]: 273,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0112"
+ }, undefined, false, undefined, this))]: 274,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0113"
+ }, undefined, false, undefined, this))]: 275,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0114"
+ }, undefined, false, undefined, this))]: 276,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0115"
+ }, undefined, false, undefined, this))]: 277,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0116"
+ }, undefined, false, undefined, this))]: 278,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0117"
+ }, undefined, false, undefined, this))]: 279,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0118"
+ }, undefined, false, undefined, this))]: 280,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0119"
+ }, undefined, false, undefined, this))]: 281,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011A"
+ }, undefined, false, undefined, this))]: 282,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011B"
+ }, undefined, false, undefined, this))]: 283,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011C"
+ }, undefined, false, undefined, this))]: 284,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011D"
+ }, undefined, false, undefined, this))]: 285,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011E"
+ }, undefined, false, undefined, this))]: 286,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011F"
+ }, undefined, false, undefined, this))]: 287,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0120"
+ }, undefined, false, undefined, this))]: 288,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0121"
+ }, undefined, false, undefined, this))]: 289,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0122"
+ }, undefined, false, undefined, this))]: 290,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0123"
+ }, undefined, false, undefined, this))]: 291,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0124"
+ }, undefined, false, undefined, this))]: 292,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0125"
+ }, undefined, false, undefined, this))]: 293,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0126"
+ }, undefined, false, undefined, this))]: 294,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0127"
+ }, undefined, false, undefined, this))]: 295,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0128"
+ }, undefined, false, undefined, this))]: 296,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0129"
+ }, undefined, false, undefined, this))]: 297,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012A"
+ }, undefined, false, undefined, this))]: 298,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012B"
+ }, undefined, false, undefined, this))]: 299,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012C"
+ }, undefined, false, undefined, this))]: 300,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012D"
+ }, undefined, false, undefined, this))]: 301,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012E"
+ }, undefined, false, undefined, this))]: 302,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012F"
+ }, undefined, false, undefined, this))]: 303,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0130"
+ }, undefined, false, undefined, this))]: 304,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0131"
+ }, undefined, false, undefined, this))]: 305,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0132"
+ }, undefined, false, undefined, this))]: 306,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0133"
+ }, undefined, false, undefined, this))]: 307,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0134"
+ }, undefined, false, undefined, this))]: 308,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0135"
+ }, undefined, false, undefined, this))]: 309,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0136"
+ }, undefined, false, undefined, this))]: 310,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0137"
+ }, undefined, false, undefined, this))]: 311,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0138"
+ }, undefined, false, undefined, this))]: 312,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0139"
+ }, undefined, false, undefined, this))]: 313,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013A"
+ }, undefined, false, undefined, this))]: 314,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013B"
+ }, undefined, false, undefined, this))]: 315,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013C"
+ }, undefined, false, undefined, this))]: 316,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013D"
+ }, undefined, false, undefined, this))]: 317,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013E"
+ }, undefined, false, undefined, this))]: 318,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013F"
+ }, undefined, false, undefined, this))]: 319,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0140"
+ }, undefined, false, undefined, this))]: 320,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0141"
+ }, undefined, false, undefined, this))]: 321,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0142"
+ }, undefined, false, undefined, this))]: 322,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0143"
+ }, undefined, false, undefined, this))]: 323,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0144"
+ }, undefined, false, undefined, this))]: 324,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0145"
+ }, undefined, false, undefined, this))]: 325,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0146"
+ }, undefined, false, undefined, this))]: 326,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0147"
+ }, undefined, false, undefined, this))]: 327,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0148"
+ }, undefined, false, undefined, this))]: 328,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0149"
+ }, undefined, false, undefined, this))]: 329,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014A"
+ }, undefined, false, undefined, this))]: 330,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014B"
+ }, undefined, false, undefined, this))]: 331,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014C"
+ }, undefined, false, undefined, this))]: 332,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014D"
+ }, undefined, false, undefined, this))]: 333,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014E"
+ }, undefined, false, undefined, this))]: 334,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014F"
+ }, undefined, false, undefined, this))]: 335,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0150"
+ }, undefined, false, undefined, this))]: 336,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0151"
+ }, undefined, false, undefined, this))]: 337,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0152"
+ }, undefined, false, undefined, this))]: 338,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0153"
+ }, undefined, false, undefined, this))]: 339,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0154"
+ }, undefined, false, undefined, this))]: 340,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0155"
+ }, undefined, false, undefined, this))]: 341,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0156"
+ }, undefined, false, undefined, this))]: 342,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0157"
+ }, undefined, false, undefined, this))]: 343,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0158"
+ }, undefined, false, undefined, this))]: 344,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0159"
+ }, undefined, false, undefined, this))]: 345,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015A"
+ }, undefined, false, undefined, this))]: 346,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015B"
+ }, undefined, false, undefined, this))]: 347,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015C"
+ }, undefined, false, undefined, this))]: 348,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015D"
+ }, undefined, false, undefined, this))]: 349,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015E"
+ }, undefined, false, undefined, this))]: 350,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015F"
+ }, undefined, false, undefined, this))]: 351,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0160"
+ }, undefined, false, undefined, this))]: 352,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0161"
+ }, undefined, false, undefined, this))]: 353,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0162"
+ }, undefined, false, undefined, this))]: 354,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0163"
+ }, undefined, false, undefined, this))]: 355,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0164"
+ }, undefined, false, undefined, this))]: 356,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0165"
+ }, undefined, false, undefined, this))]: 357,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0166"
+ }, undefined, false, undefined, this))]: 358,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0167"
+ }, undefined, false, undefined, this))]: 359,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0168"
+ }, undefined, false, undefined, this))]: 360,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0169"
+ }, undefined, false, undefined, this))]: 361,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016A"
+ }, undefined, false, undefined, this))]: 362,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016B"
+ }, undefined, false, undefined, this))]: 363,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016C"
+ }, undefined, false, undefined, this))]: 364,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016D"
+ }, undefined, false, undefined, this))]: 365,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016E"
+ }, undefined, false, undefined, this))]: 366,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016F"
+ }, undefined, false, undefined, this))]: 367,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0170"
+ }, undefined, false, undefined, this))]: 368,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0171"
+ }, undefined, false, undefined, this))]: 369,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0172"
+ }, undefined, false, undefined, this))]: 370,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0173"
+ }, undefined, false, undefined, this))]: 371,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0174"
+ }, undefined, false, undefined, this))]: 372,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0175"
+ }, undefined, false, undefined, this))]: 373,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0176"
+ }, undefined, false, undefined, this))]: 374,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0177"
+ }, undefined, false, undefined, this))]: 375,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0178"
+ }, undefined, false, undefined, this))]: 376,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0179"
+ }, undefined, false, undefined, this))]: 377,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017A"
+ }, undefined, false, undefined, this))]: 378,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017B"
+ }, undefined, false, undefined, this))]: 379,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017C"
+ }, undefined, false, undefined, this))]: 380,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017D"
+ }, undefined, false, undefined, this))]: 381,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017E"
+ }, undefined, false, undefined, this))]: 382,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017F"
+ }, undefined, false, undefined, this))]: 383,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0180"
+ }, undefined, false, undefined, this))]: 384,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0181"
+ }, undefined, false, undefined, this))]: 385,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0182"
+ }, undefined, false, undefined, this))]: 386,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0183"
+ }, undefined, false, undefined, this))]: 387,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0184"
+ }, undefined, false, undefined, this))]: 388,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0185"
+ }, undefined, false, undefined, this))]: 389,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0186"
+ }, undefined, false, undefined, this))]: 390,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0187"
+ }, undefined, false, undefined, this))]: 391,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0188"
+ }, undefined, false, undefined, this))]: 392,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0189"
+ }, undefined, false, undefined, this))]: 393,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018A"
+ }, undefined, false, undefined, this))]: 394,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018B"
+ }, undefined, false, undefined, this))]: 395,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018C"
+ }, undefined, false, undefined, this))]: 396,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018D"
+ }, undefined, false, undefined, this))]: 397,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018E"
+ }, undefined, false, undefined, this))]: 398,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018F"
+ }, undefined, false, undefined, this))]: 399,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0190"
+ }, undefined, false, undefined, this))]: 400,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0191"
+ }, undefined, false, undefined, this))]: 401,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0192"
+ }, undefined, false, undefined, this))]: 402,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0193"
+ }, undefined, false, undefined, this))]: 403,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0194"
+ }, undefined, false, undefined, this))]: 404,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0195"
+ }, undefined, false, undefined, this))]: 405,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0196"
+ }, undefined, false, undefined, this))]: 406,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0197"
+ }, undefined, false, undefined, this))]: 407,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0198"
+ }, undefined, false, undefined, this))]: 408,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0199"
+ }, undefined, false, undefined, this))]: 409,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019A"
+ }, undefined, false, undefined, this))]: 410,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019B"
+ }, undefined, false, undefined, this))]: 411,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019C"
+ }, undefined, false, undefined, this))]: 412,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019D"
+ }, undefined, false, undefined, this))]: 413,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019E"
+ }, undefined, false, undefined, this))]: 414,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019F"
+ }, undefined, false, undefined, this))]: 415,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A0"
+ }, undefined, false, undefined, this))]: 416,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A1"
+ }, undefined, false, undefined, this))]: 417,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A2"
+ }, undefined, false, undefined, this))]: 418,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A3"
+ }, undefined, false, undefined, this))]: 419,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A4"
+ }, undefined, false, undefined, this))]: 420,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A5"
+ }, undefined, false, undefined, this))]: 421,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A6"
+ }, undefined, false, undefined, this))]: 422,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A7"
+ }, undefined, false, undefined, this))]: 423,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A8"
+ }, undefined, false, undefined, this))]: 424,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A9"
+ }, undefined, false, undefined, this))]: 425,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AA"
+ }, undefined, false, undefined, this))]: 426,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AB"
+ }, undefined, false, undefined, this))]: 427,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AC"
+ }, undefined, false, undefined, this))]: 428,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AD"
+ }, undefined, false, undefined, this))]: 429,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AE"
+ }, undefined, false, undefined, this))]: 430,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AF"
+ }, undefined, false, undefined, this))]: 431,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B0"
+ }, undefined, false, undefined, this))]: 432,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B1"
+ }, undefined, false, undefined, this))]: 433,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B2"
+ }, undefined, false, undefined, this))]: 434,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B3"
+ }, undefined, false, undefined, this))]: 435,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B4"
+ }, undefined, false, undefined, this))]: 436,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B5"
+ }, undefined, false, undefined, this))]: 437,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B6"
+ }, undefined, false, undefined, this))]: 438,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B7"
+ }, undefined, false, undefined, this))]: 439,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B8"
+ }, undefined, false, undefined, this))]: 440,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B9"
+ }, undefined, false, undefined, this))]: 441,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BA"
+ }, undefined, false, undefined, this))]: 442,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BB"
+ }, undefined, false, undefined, this))]: 443,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BC"
+ }, undefined, false, undefined, this))]: 444,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BD"
+ }, undefined, false, undefined, this))]: 445,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BE"
+ }, undefined, false, undefined, this))]: 446,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BF"
+ }, undefined, false, undefined, this))]: 447,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C0"
+ }, undefined, false, undefined, this))]: 448,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C1"
+ }, undefined, false, undefined, this))]: 449,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C2"
+ }, undefined, false, undefined, this))]: 450,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C3"
+ }, undefined, false, undefined, this))]: 451,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C4"
+ }, undefined, false, undefined, this))]: 452,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C5"
+ }, undefined, false, undefined, this))]: 453,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C6"
+ }, undefined, false, undefined, this))]: 454,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C7"
+ }, undefined, false, undefined, this))]: 455,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C8"
+ }, undefined, false, undefined, this))]: 456,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C9"
+ }, undefined, false, undefined, this))]: 457,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CA"
+ }, undefined, false, undefined, this))]: 458,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CB"
+ }, undefined, false, undefined, this))]: 459,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CC"
+ }, undefined, false, undefined, this))]: 460,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CD"
+ }, undefined, false, undefined, this))]: 461,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CE"
+ }, undefined, false, undefined, this))]: 462,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CF"
+ }, undefined, false, undefined, this))]: 463,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D0"
+ }, undefined, false, undefined, this))]: 464,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D1"
+ }, undefined, false, undefined, this))]: 465,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D2"
+ }, undefined, false, undefined, this))]: 466,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D3"
+ }, undefined, false, undefined, this))]: 467,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D4"
+ }, undefined, false, undefined, this))]: 468,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D5"
+ }, undefined, false, undefined, this))]: 469,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D6"
+ }, undefined, false, undefined, this))]: 470,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D7"
+ }, undefined, false, undefined, this))]: 471,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D8"
+ }, undefined, false, undefined, this))]: 472,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D9"
+ }, undefined, false, undefined, this))]: 473,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DA"
+ }, undefined, false, undefined, this))]: 474,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DB"
+ }, undefined, false, undefined, this))]: 475,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DC"
+ }, undefined, false, undefined, this))]: 476,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DD"
+ }, undefined, false, undefined, this))]: 477,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DE"
+ }, undefined, false, undefined, this))]: 478,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DF"
+ }, undefined, false, undefined, this))]: 479,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E0"
+ }, undefined, false, undefined, this))]: 480,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E1"
+ }, undefined, false, undefined, this))]: 481,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E2"
+ }, undefined, false, undefined, this))]: 482,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E3"
+ }, undefined, false, undefined, this))]: 483,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E4"
+ }, undefined, false, undefined, this))]: 484,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E5"
+ }, undefined, false, undefined, this))]: 485,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E6"
+ }, undefined, false, undefined, this))]: 486,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E7"
+ }, undefined, false, undefined, this))]: 487,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E8"
+ }, undefined, false, undefined, this))]: 488,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E9"
+ }, undefined, false, undefined, this))]: 489,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EA"
+ }, undefined, false, undefined, this))]: 490,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EB"
+ }, undefined, false, undefined, this))]: 491,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EC"
+ }, undefined, false, undefined, this))]: 492,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01ED"
+ }, undefined, false, undefined, this))]: 493,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EE"
+ }, undefined, false, undefined, this))]: 494,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EF"
+ }, undefined, false, undefined, this))]: 495,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F0"
+ }, undefined, false, undefined, this))]: 496,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F1"
+ }, undefined, false, undefined, this))]: 497,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F2"
+ }, undefined, false, undefined, this))]: 498,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F3"
+ }, undefined, false, undefined, this))]: 499,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F4"
+ }, undefined, false, undefined, this))]: 500,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F5"
+ }, undefined, false, undefined, this))]: 501,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F6"
+ }, undefined, false, undefined, this))]: 502,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F7"
+ }, undefined, false, undefined, this))]: 503,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F8"
+ }, undefined, false, undefined, this))]: 504,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F9"
+ }, undefined, false, undefined, this))]: 505,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FA"
+ }, undefined, false, undefined, this))]: 506,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FB"
+ }, undefined, false, undefined, this))]: 507,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FC"
+ }, undefined, false, undefined, this))]: 508,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FD"
+ }, undefined, false, undefined, this))]: 509,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FE"
+ }, undefined, false, undefined, this))]: 510,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FF"
+ }, undefined, false, undefined, this))]: 511,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0200"
+ }, undefined, false, undefined, this))]: 512,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0201"
+ }, undefined, false, undefined, this))]: 513,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0202"
+ }, undefined, false, undefined, this))]: 514,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0203"
+ }, undefined, false, undefined, this))]: 515,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0204"
+ }, undefined, false, undefined, this))]: 516,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0205"
+ }, undefined, false, undefined, this))]: 517,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0206"
+ }, undefined, false, undefined, this))]: 518,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0207"
+ }, undefined, false, undefined, this))]: 519,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0208"
+ }, undefined, false, undefined, this))]: 520,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0209"
+ }, undefined, false, undefined, this))]: 521,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020A"
+ }, undefined, false, undefined, this))]: 522,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020B"
+ }, undefined, false, undefined, this))]: 523,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020C"
+ }, undefined, false, undefined, this))]: 524,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020D"
+ }, undefined, false, undefined, this))]: 525,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020E"
+ }, undefined, false, undefined, this))]: 526,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020F"
+ }, undefined, false, undefined, this))]: 527,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0210"
+ }, undefined, false, undefined, this))]: 528,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0211"
+ }, undefined, false, undefined, this))]: 529,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0212"
+ }, undefined, false, undefined, this))]: 530,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0213"
+ }, undefined, false, undefined, this))]: 531,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0214"
+ }, undefined, false, undefined, this))]: 532,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0215"
+ }, undefined, false, undefined, this))]: 533,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0216"
+ }, undefined, false, undefined, this))]: 534,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0217"
+ }, undefined, false, undefined, this))]: 535,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0218"
+ }, undefined, false, undefined, this))]: 536,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0219"
+ }, undefined, false, undefined, this))]: 537,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021A"
+ }, undefined, false, undefined, this))]: 538,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021B"
+ }, undefined, false, undefined, this))]: 539,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021C"
+ }, undefined, false, undefined, this))]: 540,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021D"
+ }, undefined, false, undefined, this))]: 541,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021E"
+ }, undefined, false, undefined, this))]: 542,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021F"
+ }, undefined, false, undefined, this))]: 543,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0220"
+ }, undefined, false, undefined, this))]: 544,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0221"
+ }, undefined, false, undefined, this))]: 545,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0222"
+ }, undefined, false, undefined, this))]: 546,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0223"
+ }, undefined, false, undefined, this))]: 547,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0224"
+ }, undefined, false, undefined, this))]: 548,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0225"
+ }, undefined, false, undefined, this))]: 549,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0226"
+ }, undefined, false, undefined, this))]: 550,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0227"
+ }, undefined, false, undefined, this))]: 551,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0228"
+ }, undefined, false, undefined, this))]: 552,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0229"
+ }, undefined, false, undefined, this))]: 553,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022A"
+ }, undefined, false, undefined, this))]: 554,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022B"
+ }, undefined, false, undefined, this))]: 555,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022C"
+ }, undefined, false, undefined, this))]: 556,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022D"
+ }, undefined, false, undefined, this))]: 557,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022E"
+ }, undefined, false, undefined, this))]: 558,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022F"
+ }, undefined, false, undefined, this))]: 559,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0230"
+ }, undefined, false, undefined, this))]: 560,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0231"
+ }, undefined, false, undefined, this))]: 561,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0232"
+ }, undefined, false, undefined, this))]: 562,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0233"
+ }, undefined, false, undefined, this))]: 563,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0234"
+ }, undefined, false, undefined, this))]: 564,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0235"
+ }, undefined, false, undefined, this))]: 565,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0236"
+ }, undefined, false, undefined, this))]: 566,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0237"
+ }, undefined, false, undefined, this))]: 567,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0238"
+ }, undefined, false, undefined, this))]: 568,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0239"
+ }, undefined, false, undefined, this))]: 569,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023A"
+ }, undefined, false, undefined, this))]: 570,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023B"
+ }, undefined, false, undefined, this))]: 571,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023C"
+ }, undefined, false, undefined, this))]: 572,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023D"
+ }, undefined, false, undefined, this))]: 573,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023E"
+ }, undefined, false, undefined, this))]: 574,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023F"
+ }, undefined, false, undefined, this))]: 575,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0240"
+ }, undefined, false, undefined, this))]: 576,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0241"
+ }, undefined, false, undefined, this))]: 577,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0242"
+ }, undefined, false, undefined, this))]: 578,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0243"
+ }, undefined, false, undefined, this))]: 579,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0244"
+ }, undefined, false, undefined, this))]: 580,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0245"
+ }, undefined, false, undefined, this))]: 581,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0246"
+ }, undefined, false, undefined, this))]: 582,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0247"
+ }, undefined, false, undefined, this))]: 583,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0248"
+ }, undefined, false, undefined, this))]: 584,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0249"
+ }, undefined, false, undefined, this))]: 585,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024A"
+ }, undefined, false, undefined, this))]: 586,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024B"
+ }, undefined, false, undefined, this))]: 587,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024C"
+ }, undefined, false, undefined, this))]: 588,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024D"
+ }, undefined, false, undefined, this))]: 589,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024E"
+ }, undefined, false, undefined, this))]: 590,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024F"
+ }, undefined, false, undefined, this))]: 591,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0250"
+ }, undefined, false, undefined, this))]: 592,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0251"
+ }, undefined, false, undefined, this))]: 593,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0252"
+ }, undefined, false, undefined, this))]: 594,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0253"
+ }, undefined, false, undefined, this))]: 595,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0254"
+ }, undefined, false, undefined, this))]: 596,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0255"
+ }, undefined, false, undefined, this))]: 597,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0256"
+ }, undefined, false, undefined, this))]: 598,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0257"
+ }, undefined, false, undefined, this))]: 599,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0258"
+ }, undefined, false, undefined, this))]: 600,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0259"
+ }, undefined, false, undefined, this))]: 601,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025A"
+ }, undefined, false, undefined, this))]: 602,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025B"
+ }, undefined, false, undefined, this))]: 603,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025C"
+ }, undefined, false, undefined, this))]: 604,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025D"
+ }, undefined, false, undefined, this))]: 605,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025E"
+ }, undefined, false, undefined, this))]: 606,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025F"
+ }, undefined, false, undefined, this))]: 607,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0260"
+ }, undefined, false, undefined, this))]: 608,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0261"
+ }, undefined, false, undefined, this))]: 609,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0262"
+ }, undefined, false, undefined, this))]: 610,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0263"
+ }, undefined, false, undefined, this))]: 611,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0264"
+ }, undefined, false, undefined, this))]: 612,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0265"
+ }, undefined, false, undefined, this))]: 613,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0266"
+ }, undefined, false, undefined, this))]: 614,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0267"
+ }, undefined, false, undefined, this))]: 615,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0268"
+ }, undefined, false, undefined, this))]: 616,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0269"
+ }, undefined, false, undefined, this))]: 617,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026A"
+ }, undefined, false, undefined, this))]: 618,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026B"
+ }, undefined, false, undefined, this))]: 619,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026C"
+ }, undefined, false, undefined, this))]: 620,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026D"
+ }, undefined, false, undefined, this))]: 621,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026E"
+ }, undefined, false, undefined, this))]: 622,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026F"
+ }, undefined, false, undefined, this))]: 623,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0270"
+ }, undefined, false, undefined, this))]: 624,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0271"
+ }, undefined, false, undefined, this))]: 625,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0272"
+ }, undefined, false, undefined, this))]: 626,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0273"
+ }, undefined, false, undefined, this))]: 627,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0274"
+ }, undefined, false, undefined, this))]: 628,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0275"
+ }, undefined, false, undefined, this))]: 629,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0276"
+ }, undefined, false, undefined, this))]: 630,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0277"
+ }, undefined, false, undefined, this))]: 631,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0278"
+ }, undefined, false, undefined, this))]: 632,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0279"
+ }, undefined, false, undefined, this))]: 633,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027A"
+ }, undefined, false, undefined, this))]: 634,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027B"
+ }, undefined, false, undefined, this))]: 635,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027C"
+ }, undefined, false, undefined, this))]: 636,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027D"
+ }, undefined, false, undefined, this))]: 637,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027E"
+ }, undefined, false, undefined, this))]: 638,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027F"
+ }, undefined, false, undefined, this))]: 639,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0280"
+ }, undefined, false, undefined, this))]: 640,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0281"
+ }, undefined, false, undefined, this))]: 641,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0282"
+ }, undefined, false, undefined, this))]: 642,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0283"
+ }, undefined, false, undefined, this))]: 643,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0284"
+ }, undefined, false, undefined, this))]: 644,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0285"
+ }, undefined, false, undefined, this))]: 645,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0286"
+ }, undefined, false, undefined, this))]: 646,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0287"
+ }, undefined, false, undefined, this))]: 647,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0288"
+ }, undefined, false, undefined, this))]: 648,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0289"
+ }, undefined, false, undefined, this))]: 649,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028A"
+ }, undefined, false, undefined, this))]: 650,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028B"
+ }, undefined, false, undefined, this))]: 651,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028C"
+ }, undefined, false, undefined, this))]: 652,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028D"
+ }, undefined, false, undefined, this))]: 653,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028E"
+ }, undefined, false, undefined, this))]: 654,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028F"
+ }, undefined, false, undefined, this))]: 655,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0290"
+ }, undefined, false, undefined, this))]: 656,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0291"
+ }, undefined, false, undefined, this))]: 657,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0292"
+ }, undefined, false, undefined, this))]: 658,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0293"
+ }, undefined, false, undefined, this))]: 659,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0294"
+ }, undefined, false, undefined, this))]: 660
+ };
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/jsx-entities.jsx.map
diff --git a/test/snapshots/jsx-entities.jsx b/test/snapshots/jsx-entities.jsx
new file mode 100644
index 000000000..9fd075bc6
--- /dev/null
+++ b/test/snapshots/jsx-entities.jsx
@@ -0,0 +1,2768 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+
+import * as $1f6f0e67 from "http://localhost:8080/node_modules/react-dom/server.browser.js";
+var ReactDOM = require($1f6f0e67);
+const elements = {
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: '"'
+ }, undefined, false, undefined, this))]: 34,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "&"
+ }, undefined, false, undefined, this))]: 38,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "'"
+ }, undefined, false, undefined, this))]: 39,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "<"
+ }, undefined, false, undefined, this))]: 60,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ">"
+ }, undefined, false, undefined, this))]: 62,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA0"
+ }, undefined, false, undefined, this))]: 160,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA1"
+ }, undefined, false, undefined, this))]: 161,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA2"
+ }, undefined, false, undefined, this))]: 162,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA3"
+ }, undefined, false, undefined, this))]: 163,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA4"
+ }, undefined, false, undefined, this))]: 164,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA5"
+ }, undefined, false, undefined, this))]: 165,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA6"
+ }, undefined, false, undefined, this))]: 166,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA7"
+ }, undefined, false, undefined, this))]: 167,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA8"
+ }, undefined, false, undefined, this))]: 168,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA9"
+ }, undefined, false, undefined, this))]: 169,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAA"
+ }, undefined, false, undefined, this))]: 170,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAB"
+ }, undefined, false, undefined, this))]: 171,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAC"
+ }, undefined, false, undefined, this))]: 172,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAD"
+ }, undefined, false, undefined, this))]: 173,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAE"
+ }, undefined, false, undefined, this))]: 174,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAF"
+ }, undefined, false, undefined, this))]: 175,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB0"
+ }, undefined, false, undefined, this))]: 176,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB1"
+ }, undefined, false, undefined, this))]: 177,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB2"
+ }, undefined, false, undefined, this))]: 178,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB3"
+ }, undefined, false, undefined, this))]: 179,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB4"
+ }, undefined, false, undefined, this))]: 180,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB5"
+ }, undefined, false, undefined, this))]: 181,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB6"
+ }, undefined, false, undefined, this))]: 182,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB7"
+ }, undefined, false, undefined, this))]: 183,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB8"
+ }, undefined, false, undefined, this))]: 184,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB9"
+ }, undefined, false, undefined, this))]: 185,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBA"
+ }, undefined, false, undefined, this))]: 186,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBB"
+ }, undefined, false, undefined, this))]: 187,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBC"
+ }, undefined, false, undefined, this))]: 188,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBD"
+ }, undefined, false, undefined, this))]: 189,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBE"
+ }, undefined, false, undefined, this))]: 190,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBF"
+ }, undefined, false, undefined, this))]: 191,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC0"
+ }, undefined, false, undefined, this))]: 192,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC1"
+ }, undefined, false, undefined, this))]: 193,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC2"
+ }, undefined, false, undefined, this))]: 194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC3"
+ }, undefined, false, undefined, this))]: 195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC4"
+ }, undefined, false, undefined, this))]: 196,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC5"
+ }, undefined, false, undefined, this))]: 197,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC6"
+ }, undefined, false, undefined, this))]: 198,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC7"
+ }, undefined, false, undefined, this))]: 199,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC8"
+ }, undefined, false, undefined, this))]: 200,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC9"
+ }, undefined, false, undefined, this))]: 201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCA"
+ }, undefined, false, undefined, this))]: 202,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCB"
+ }, undefined, false, undefined, this))]: 203,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCC"
+ }, undefined, false, undefined, this))]: 204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCD"
+ }, undefined, false, undefined, this))]: 205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCE"
+ }, undefined, false, undefined, this))]: 206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCF"
+ }, undefined, false, undefined, this))]: 207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD0"
+ }, undefined, false, undefined, this))]: 208,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD1"
+ }, undefined, false, undefined, this))]: 209,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD2"
+ }, undefined, false, undefined, this))]: 210,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD3"
+ }, undefined, false, undefined, this))]: 211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD4"
+ }, undefined, false, undefined, this))]: 212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD5"
+ }, undefined, false, undefined, this))]: 213,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD6"
+ }, undefined, false, undefined, this))]: 214,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD7"
+ }, undefined, false, undefined, this))]: 215,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD8"
+ }, undefined, false, undefined, this))]: 216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD9"
+ }, undefined, false, undefined, this))]: 217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDA"
+ }, undefined, false, undefined, this))]: 218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDB"
+ }, undefined, false, undefined, this))]: 219,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDC"
+ }, undefined, false, undefined, this))]: 220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDD"
+ }, undefined, false, undefined, this))]: 221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDE"
+ }, undefined, false, undefined, this))]: 222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDF"
+ }, undefined, false, undefined, this))]: 223,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE0"
+ }, undefined, false, undefined, this))]: 224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE1"
+ }, undefined, false, undefined, this))]: 225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE2"
+ }, undefined, false, undefined, this))]: 226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE3"
+ }, undefined, false, undefined, this))]: 227,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE4"
+ }, undefined, false, undefined, this))]: 228,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE5"
+ }, undefined, false, undefined, this))]: 229,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE6"
+ }, undefined, false, undefined, this))]: 230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE7"
+ }, undefined, false, undefined, this))]: 231,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE8"
+ }, undefined, false, undefined, this))]: 232,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE9"
+ }, undefined, false, undefined, this))]: 233,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEA"
+ }, undefined, false, undefined, this))]: 234,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEB"
+ }, undefined, false, undefined, this))]: 235,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEC"
+ }, undefined, false, undefined, this))]: 236,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xED"
+ }, undefined, false, undefined, this))]: 237,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEE"
+ }, undefined, false, undefined, this))]: 238,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEF"
+ }, undefined, false, undefined, this))]: 239,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF0"
+ }, undefined, false, undefined, this))]: 240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF1"
+ }, undefined, false, undefined, this))]: 241,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF2"
+ }, undefined, false, undefined, this))]: 242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF3"
+ }, undefined, false, undefined, this))]: 243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF4"
+ }, undefined, false, undefined, this))]: 244,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF5"
+ }, undefined, false, undefined, this))]: 245,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF6"
+ }, undefined, false, undefined, this))]: 246,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF7"
+ }, undefined, false, undefined, this))]: 247,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF8"
+ }, undefined, false, undefined, this))]: 248,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF9"
+ }, undefined, false, undefined, this))]: 249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFA"
+ }, undefined, false, undefined, this))]: 250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFB"
+ }, undefined, false, undefined, this))]: 251,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFC"
+ }, undefined, false, undefined, this))]: 252,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFD"
+ }, undefined, false, undefined, this))]: 253,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFE"
+ }, undefined, false, undefined, this))]: 254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFF"
+ }, undefined, false, undefined, this))]: 255,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0152"
+ }, undefined, false, undefined, this))]: 338,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0153"
+ }, undefined, false, undefined, this))]: 339,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0160"
+ }, undefined, false, undefined, this))]: 352,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0161"
+ }, undefined, false, undefined, this))]: 353,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0178"
+ }, undefined, false, undefined, this))]: 376,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0192"
+ }, undefined, false, undefined, this))]: 402,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u02C6"
+ }, undefined, false, undefined, this))]: 710,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u02DC"
+ }, undefined, false, undefined, this))]: 732,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0391"
+ }, undefined, false, undefined, this))]: 913,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0392"
+ }, undefined, false, undefined, this))]: 914,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0393"
+ }, undefined, false, undefined, this))]: 915,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0394"
+ }, undefined, false, undefined, this))]: 916,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0395"
+ }, undefined, false, undefined, this))]: 917,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0396"
+ }, undefined, false, undefined, this))]: 918,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0397"
+ }, undefined, false, undefined, this))]: 919,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0398"
+ }, undefined, false, undefined, this))]: 920,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0399"
+ }, undefined, false, undefined, this))]: 921,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039A"
+ }, undefined, false, undefined, this))]: 922,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039B"
+ }, undefined, false, undefined, this))]: 923,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039C"
+ }, undefined, false, undefined, this))]: 924,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039D"
+ }, undefined, false, undefined, this))]: 925,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039E"
+ }, undefined, false, undefined, this))]: 926,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u039F"
+ }, undefined, false, undefined, this))]: 927,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A0"
+ }, undefined, false, undefined, this))]: 928,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A1"
+ }, undefined, false, undefined, this))]: 929,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A3"
+ }, undefined, false, undefined, this))]: 931,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A4"
+ }, undefined, false, undefined, this))]: 932,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A5"
+ }, undefined, false, undefined, this))]: 933,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A6"
+ }, undefined, false, undefined, this))]: 934,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A7"
+ }, undefined, false, undefined, this))]: 935,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A8"
+ }, undefined, false, undefined, this))]: 936,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03A9"
+ }, undefined, false, undefined, this))]: 937,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B1"
+ }, undefined, false, undefined, this))]: 945,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B2"
+ }, undefined, false, undefined, this))]: 946,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B3"
+ }, undefined, false, undefined, this))]: 947,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B4"
+ }, undefined, false, undefined, this))]: 948,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B5"
+ }, undefined, false, undefined, this))]: 949,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B6"
+ }, undefined, false, undefined, this))]: 950,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B7"
+ }, undefined, false, undefined, this))]: 951,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B8"
+ }, undefined, false, undefined, this))]: 952,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03B9"
+ }, undefined, false, undefined, this))]: 953,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BA"
+ }, undefined, false, undefined, this))]: 954,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BB"
+ }, undefined, false, undefined, this))]: 955,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BC"
+ }, undefined, false, undefined, this))]: 956,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BD"
+ }, undefined, false, undefined, this))]: 957,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BE"
+ }, undefined, false, undefined, this))]: 958,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03BF"
+ }, undefined, false, undefined, this))]: 959,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C0"
+ }, undefined, false, undefined, this))]: 960,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C1"
+ }, undefined, false, undefined, this))]: 961,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C2"
+ }, undefined, false, undefined, this))]: 962,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C3"
+ }, undefined, false, undefined, this))]: 963,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C4"
+ }, undefined, false, undefined, this))]: 964,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C5"
+ }, undefined, false, undefined, this))]: 965,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C6"
+ }, undefined, false, undefined, this))]: 966,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C7"
+ }, undefined, false, undefined, this))]: 967,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C8"
+ }, undefined, false, undefined, this))]: 968,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03C9"
+ }, undefined, false, undefined, this))]: 969,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D1"
+ }, undefined, false, undefined, this))]: 977,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D2"
+ }, undefined, false, undefined, this))]: 978,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u03D6"
+ }, undefined, false, undefined, this))]: 982,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2002"
+ }, undefined, false, undefined, this))]: 8194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2003"
+ }, undefined, false, undefined, this))]: 8195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2009"
+ }, undefined, false, undefined, this))]: 8201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200C"
+ }, undefined, false, undefined, this))]: 8204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200D"
+ }, undefined, false, undefined, this))]: 8205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200E"
+ }, undefined, false, undefined, this))]: 8206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u200F"
+ }, undefined, false, undefined, this))]: 8207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2013"
+ }, undefined, false, undefined, this))]: 8211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2014"
+ }, undefined, false, undefined, this))]: 8212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2018"
+ }, undefined, false, undefined, this))]: 8216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2019"
+ }, undefined, false, undefined, this))]: 8217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201A"
+ }, undefined, false, undefined, this))]: 8218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201C"
+ }, undefined, false, undefined, this))]: 8220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201D"
+ }, undefined, false, undefined, this))]: 8221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u201E"
+ }, undefined, false, undefined, this))]: 8222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2020"
+ }, undefined, false, undefined, this))]: 8224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2021"
+ }, undefined, false, undefined, this))]: 8225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2022"
+ }, undefined, false, undefined, this))]: 8226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2026"
+ }, undefined, false, undefined, this))]: 8230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2030"
+ }, undefined, false, undefined, this))]: 8240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2032"
+ }, undefined, false, undefined, this))]: 8242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2033"
+ }, undefined, false, undefined, this))]: 8243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2039"
+ }, undefined, false, undefined, this))]: 8249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u203A"
+ }, undefined, false, undefined, this))]: 8250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u203E"
+ }, undefined, false, undefined, this))]: 8254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2044"
+ }, undefined, false, undefined, this))]: 8260,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u20AC"
+ }, undefined, false, undefined, this))]: 8364,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2111"
+ }, undefined, false, undefined, this))]: 8465,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2118"
+ }, undefined, false, undefined, this))]: 8472,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u211C"
+ }, undefined, false, undefined, this))]: 8476,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2122"
+ }, undefined, false, undefined, this))]: 8482,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2135"
+ }, undefined, false, undefined, this))]: 8501,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2190"
+ }, undefined, false, undefined, this))]: 8592,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2191"
+ }, undefined, false, undefined, this))]: 8593,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2192"
+ }, undefined, false, undefined, this))]: 8594,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2193"
+ }, undefined, false, undefined, this))]: 8595,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2194"
+ }, undefined, false, undefined, this))]: 8596,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21B5"
+ }, undefined, false, undefined, this))]: 8629,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D0"
+ }, undefined, false, undefined, this))]: 8656,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D1"
+ }, undefined, false, undefined, this))]: 8657,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D2"
+ }, undefined, false, undefined, this))]: 8658,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D3"
+ }, undefined, false, undefined, this))]: 8659,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u21D4"
+ }, undefined, false, undefined, this))]: 8660,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2200"
+ }, undefined, false, undefined, this))]: 8704,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2202"
+ }, undefined, false, undefined, this))]: 8706,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2203"
+ }, undefined, false, undefined, this))]: 8707,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2205"
+ }, undefined, false, undefined, this))]: 8709,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2207"
+ }, undefined, false, undefined, this))]: 8711,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2208"
+ }, undefined, false, undefined, this))]: 8712,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2209"
+ }, undefined, false, undefined, this))]: 8713,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u220B"
+ }, undefined, false, undefined, this))]: 8715,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u220F"
+ }, undefined, false, undefined, this))]: 8719,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2211"
+ }, undefined, false, undefined, this))]: 8721,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2212"
+ }, undefined, false, undefined, this))]: 8722,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2217"
+ }, undefined, false, undefined, this))]: 8727,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221A"
+ }, undefined, false, undefined, this))]: 8730,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221D"
+ }, undefined, false, undefined, this))]: 8733,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u221E"
+ }, undefined, false, undefined, this))]: 8734,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2220"
+ }, undefined, false, undefined, this))]: 8736,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2227"
+ }, undefined, false, undefined, this))]: 8743,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2228"
+ }, undefined, false, undefined, this))]: 8744,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2229"
+ }, undefined, false, undefined, this))]: 8745,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u222A"
+ }, undefined, false, undefined, this))]: 8746,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u222B"
+ }, undefined, false, undefined, this))]: 8747,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2234"
+ }, undefined, false, undefined, this))]: 8756,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u223C"
+ }, undefined, false, undefined, this))]: 8764,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2245"
+ }, undefined, false, undefined, this))]: 8773,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2248"
+ }, undefined, false, undefined, this))]: 8776,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2260"
+ }, undefined, false, undefined, this))]: 8800,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2261"
+ }, undefined, false, undefined, this))]: 8801,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2264"
+ }, undefined, false, undefined, this))]: 8804,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2265"
+ }, undefined, false, undefined, this))]: 8805,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2282"
+ }, undefined, false, undefined, this))]: 8834,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2283"
+ }, undefined, false, undefined, this))]: 8835,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2284"
+ }, undefined, false, undefined, this))]: 8836,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2286"
+ }, undefined, false, undefined, this))]: 8838,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2287"
+ }, undefined, false, undefined, this))]: 8839,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2295"
+ }, undefined, false, undefined, this))]: 8853,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2297"
+ }, undefined, false, undefined, this))]: 8855,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u22A5"
+ }, undefined, false, undefined, this))]: 8869,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u22C5"
+ }, undefined, false, undefined, this))]: 8901,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2308"
+ }, undefined, false, undefined, this))]: 8968,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2309"
+ }, undefined, false, undefined, this))]: 8969,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u230A"
+ }, undefined, false, undefined, this))]: 8970,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u230B"
+ }, undefined, false, undefined, this))]: 8971,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2329"
+ }, undefined, false, undefined, this))]: 9001,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u232A"
+ }, undefined, false, undefined, this))]: 9002,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u25CA"
+ }, undefined, false, undefined, this))]: 9674,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2660"
+ }, undefined, false, undefined, this))]: 9824,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2663"
+ }, undefined, false, undefined, this))]: 9827,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2665"
+ }, undefined, false, undefined, this))]: 9829,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u2666"
+ }, undefined, false, undefined, this))]: 9830,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x01"
+ }, undefined, false, undefined, this))]: 1,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x02"
+ }, undefined, false, undefined, this))]: 2,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x03"
+ }, undefined, false, undefined, this))]: 3,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x04"
+ }, undefined, false, undefined, this))]: 4,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x05"
+ }, undefined, false, undefined, this))]: 5,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x06"
+ }, undefined, false, undefined, this))]: 6,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x07"
+ }, undefined, false, undefined, this))]: 7,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\f"
+ }, undefined, false, undefined, this))]: 8,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\t"
+ }, undefined, false, undefined, this))]: 9,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: `
+`
+ }, undefined, false, undefined, this))]: 10,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\v"
+ }, undefined, false, undefined, this))]: 11,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\f"
+ }, undefined, false, undefined, this))]: 12,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: `\r`
+ }, undefined, false, undefined, this))]: 13,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x0E"
+ }, undefined, false, undefined, this))]: 14,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x0F"
+ }, undefined, false, undefined, this))]: 15,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x10"
+ }, undefined, false, undefined, this))]: 16,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x11"
+ }, undefined, false, undefined, this))]: 17,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x12"
+ }, undefined, false, undefined, this))]: 18,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x13"
+ }, undefined, false, undefined, this))]: 19,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x14"
+ }, undefined, false, undefined, this))]: 20,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x15"
+ }, undefined, false, undefined, this))]: 21,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x16"
+ }, undefined, false, undefined, this))]: 22,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x17"
+ }, undefined, false, undefined, this))]: 23,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x18"
+ }, undefined, false, undefined, this))]: 24,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x19"
+ }, undefined, false, undefined, this))]: 25,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1A"
+ }, undefined, false, undefined, this))]: 26,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1B"
+ }, undefined, false, undefined, this))]: 27,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1C"
+ }, undefined, false, undefined, this))]: 28,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1D"
+ }, undefined, false, undefined, this))]: 29,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1E"
+ }, undefined, false, undefined, this))]: 30,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x1F"
+ }, undefined, false, undefined, this))]: 31,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: " "
+ }, undefined, false, undefined, this))]: 32,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "!"
+ }, undefined, false, undefined, this))]: 33,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: '"'
+ }, undefined, false, undefined, this))]: 34,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "#"
+ }, undefined, false, undefined, this))]: 35,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "$"
+ }, undefined, false, undefined, this))]: 36,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "%"
+ }, undefined, false, undefined, this))]: 37,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "&"
+ }, undefined, false, undefined, this))]: 38,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "'"
+ }, undefined, false, undefined, this))]: 39,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "("
+ }, undefined, false, undefined, this))]: 40,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ")"
+ }, undefined, false, undefined, this))]: 41,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "*"
+ }, undefined, false, undefined, this))]: 42,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "+"
+ }, undefined, false, undefined, this))]: 43,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ","
+ }, undefined, false, undefined, this))]: 44,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "-"
+ }, undefined, false, undefined, this))]: 45,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "."
+ }, undefined, false, undefined, this))]: 46,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "/"
+ }, undefined, false, undefined, this))]: 47,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "0"
+ }, undefined, false, undefined, this))]: 48,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "1"
+ }, undefined, false, undefined, this))]: 49,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "2"
+ }, undefined, false, undefined, this))]: 50,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "3"
+ }, undefined, false, undefined, this))]: 51,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "4"
+ }, undefined, false, undefined, this))]: 52,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "5"
+ }, undefined, false, undefined, this))]: 53,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "6"
+ }, undefined, false, undefined, this))]: 54,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "7"
+ }, undefined, false, undefined, this))]: 55,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "8"
+ }, undefined, false, undefined, this))]: 56,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "9"
+ }, undefined, false, undefined, this))]: 57,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ":"
+ }, undefined, false, undefined, this))]: 58,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ";"
+ }, undefined, false, undefined, this))]: 59,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "<"
+ }, undefined, false, undefined, this))]: 60,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "="
+ }, undefined, false, undefined, this))]: 61,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: ">"
+ }, undefined, false, undefined, this))]: 62,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "?"
+ }, undefined, false, undefined, this))]: 63,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "@"
+ }, undefined, false, undefined, this))]: 64,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "A"
+ }, undefined, false, undefined, this))]: 65,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "B"
+ }, undefined, false, undefined, this))]: 66,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "C"
+ }, undefined, false, undefined, this))]: 67,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "D"
+ }, undefined, false, undefined, this))]: 68,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "E"
+ }, undefined, false, undefined, this))]: 69,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "F"
+ }, undefined, false, undefined, this))]: 70,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "G"
+ }, undefined, false, undefined, this))]: 71,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "H"
+ }, undefined, false, undefined, this))]: 72,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "I"
+ }, undefined, false, undefined, this))]: 73,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "J"
+ }, undefined, false, undefined, this))]: 74,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "K"
+ }, undefined, false, undefined, this))]: 75,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "L"
+ }, undefined, false, undefined, this))]: 76,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "M"
+ }, undefined, false, undefined, this))]: 77,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "N"
+ }, undefined, false, undefined, this))]: 78,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "O"
+ }, undefined, false, undefined, this))]: 79,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "P"
+ }, undefined, false, undefined, this))]: 80,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Q"
+ }, undefined, false, undefined, this))]: 81,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "R"
+ }, undefined, false, undefined, this))]: 82,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "S"
+ }, undefined, false, undefined, this))]: 83,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "T"
+ }, undefined, false, undefined, this))]: 84,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "U"
+ }, undefined, false, undefined, this))]: 85,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "V"
+ }, undefined, false, undefined, this))]: 86,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "W"
+ }, undefined, false, undefined, this))]: 87,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "X"
+ }, undefined, false, undefined, this))]: 88,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Y"
+ }, undefined, false, undefined, this))]: 89,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "Z"
+ }, undefined, false, undefined, this))]: 90,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "["
+ }, undefined, false, undefined, this))]: 91,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\\"
+ }, undefined, false, undefined, this))]: 92,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "]"
+ }, undefined, false, undefined, this))]: 93,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "^"
+ }, undefined, false, undefined, this))]: 94,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "_"
+ }, undefined, false, undefined, this))]: 95,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "`"
+ }, undefined, false, undefined, this))]: 96,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "a"
+ }, undefined, false, undefined, this))]: 97,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "b"
+ }, undefined, false, undefined, this))]: 98,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "c"
+ }, undefined, false, undefined, this))]: 99,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "d"
+ }, undefined, false, undefined, this))]: 100,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "e"
+ }, undefined, false, undefined, this))]: 101,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "f"
+ }, undefined, false, undefined, this))]: 102,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "g"
+ }, undefined, false, undefined, this))]: 103,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "h"
+ }, undefined, false, undefined, this))]: 104,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "i"
+ }, undefined, false, undefined, this))]: 105,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "j"
+ }, undefined, false, undefined, this))]: 106,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "k"
+ }, undefined, false, undefined, this))]: 107,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "l"
+ }, undefined, false, undefined, this))]: 108,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "m"
+ }, undefined, false, undefined, this))]: 109,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "n"
+ }, undefined, false, undefined, this))]: 110,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "o"
+ }, undefined, false, undefined, this))]: 111,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "p"
+ }, undefined, false, undefined, this))]: 112,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "q"
+ }, undefined, false, undefined, this))]: 113,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "r"
+ }, undefined, false, undefined, this))]: 114,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "s"
+ }, undefined, false, undefined, this))]: 115,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "t"
+ }, undefined, false, undefined, this))]: 116,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "u"
+ }, undefined, false, undefined, this))]: 117,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "v"
+ }, undefined, false, undefined, this))]: 118,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "w"
+ }, undefined, false, undefined, this))]: 119,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "x"
+ }, undefined, false, undefined, this))]: 120,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "y"
+ }, undefined, false, undefined, this))]: 121,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "z"
+ }, undefined, false, undefined, this))]: 122,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "{"
+ }, undefined, false, undefined, this))]: 123,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "|"
+ }, undefined, false, undefined, this))]: 124,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "}"
+ }, undefined, false, undefined, this))]: 125,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "~"
+ }, undefined, false, undefined, this))]: 126,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x7F"
+ }, undefined, false, undefined, this))]: 127,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x80"
+ }, undefined, false, undefined, this))]: 128,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x81"
+ }, undefined, false, undefined, this))]: 129,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x82"
+ }, undefined, false, undefined, this))]: 130,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x83"
+ }, undefined, false, undefined, this))]: 131,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x84"
+ }, undefined, false, undefined, this))]: 132,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x85"
+ }, undefined, false, undefined, this))]: 133,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x86"
+ }, undefined, false, undefined, this))]: 134,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x87"
+ }, undefined, false, undefined, this))]: 135,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x88"
+ }, undefined, false, undefined, this))]: 136,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x89"
+ }, undefined, false, undefined, this))]: 137,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8A"
+ }, undefined, false, undefined, this))]: 138,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8B"
+ }, undefined, false, undefined, this))]: 139,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8C"
+ }, undefined, false, undefined, this))]: 140,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8D"
+ }, undefined, false, undefined, this))]: 141,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8E"
+ }, undefined, false, undefined, this))]: 142,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x8F"
+ }, undefined, false, undefined, this))]: 143,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x90"
+ }, undefined, false, undefined, this))]: 144,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x91"
+ }, undefined, false, undefined, this))]: 145,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x92"
+ }, undefined, false, undefined, this))]: 146,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x93"
+ }, undefined, false, undefined, this))]: 147,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x94"
+ }, undefined, false, undefined, this))]: 148,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x95"
+ }, undefined, false, undefined, this))]: 149,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x96"
+ }, undefined, false, undefined, this))]: 150,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x97"
+ }, undefined, false, undefined, this))]: 151,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x98"
+ }, undefined, false, undefined, this))]: 152,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x99"
+ }, undefined, false, undefined, this))]: 153,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9A"
+ }, undefined, false, undefined, this))]: 154,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9B"
+ }, undefined, false, undefined, this))]: 155,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9C"
+ }, undefined, false, undefined, this))]: 156,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9D"
+ }, undefined, false, undefined, this))]: 157,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9E"
+ }, undefined, false, undefined, this))]: 158,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\x9F"
+ }, undefined, false, undefined, this))]: 159,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA0"
+ }, undefined, false, undefined, this))]: 160,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA1"
+ }, undefined, false, undefined, this))]: 161,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA2"
+ }, undefined, false, undefined, this))]: 162,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA3"
+ }, undefined, false, undefined, this))]: 163,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA4"
+ }, undefined, false, undefined, this))]: 164,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA5"
+ }, undefined, false, undefined, this))]: 165,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA6"
+ }, undefined, false, undefined, this))]: 166,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA7"
+ }, undefined, false, undefined, this))]: 167,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA8"
+ }, undefined, false, undefined, this))]: 168,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xA9"
+ }, undefined, false, undefined, this))]: 169,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAA"
+ }, undefined, false, undefined, this))]: 170,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAB"
+ }, undefined, false, undefined, this))]: 171,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAC"
+ }, undefined, false, undefined, this))]: 172,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAD"
+ }, undefined, false, undefined, this))]: 173,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAE"
+ }, undefined, false, undefined, this))]: 174,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xAF"
+ }, undefined, false, undefined, this))]: 175,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB0"
+ }, undefined, false, undefined, this))]: 176,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB1"
+ }, undefined, false, undefined, this))]: 177,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB2"
+ }, undefined, false, undefined, this))]: 178,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB3"
+ }, undefined, false, undefined, this))]: 179,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB4"
+ }, undefined, false, undefined, this))]: 180,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB5"
+ }, undefined, false, undefined, this))]: 181,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB6"
+ }, undefined, false, undefined, this))]: 182,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB7"
+ }, undefined, false, undefined, this))]: 183,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB8"
+ }, undefined, false, undefined, this))]: 184,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xB9"
+ }, undefined, false, undefined, this))]: 185,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBA"
+ }, undefined, false, undefined, this))]: 186,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBB"
+ }, undefined, false, undefined, this))]: 187,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBC"
+ }, undefined, false, undefined, this))]: 188,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBD"
+ }, undefined, false, undefined, this))]: 189,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBE"
+ }, undefined, false, undefined, this))]: 190,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xBF"
+ }, undefined, false, undefined, this))]: 191,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC0"
+ }, undefined, false, undefined, this))]: 192,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC1"
+ }, undefined, false, undefined, this))]: 193,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC2"
+ }, undefined, false, undefined, this))]: 194,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC3"
+ }, undefined, false, undefined, this))]: 195,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC4"
+ }, undefined, false, undefined, this))]: 196,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC5"
+ }, undefined, false, undefined, this))]: 197,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC6"
+ }, undefined, false, undefined, this))]: 198,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC7"
+ }, undefined, false, undefined, this))]: 199,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC8"
+ }, undefined, false, undefined, this))]: 200,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xC9"
+ }, undefined, false, undefined, this))]: 201,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCA"
+ }, undefined, false, undefined, this))]: 202,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCB"
+ }, undefined, false, undefined, this))]: 203,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCC"
+ }, undefined, false, undefined, this))]: 204,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCD"
+ }, undefined, false, undefined, this))]: 205,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCE"
+ }, undefined, false, undefined, this))]: 206,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xCF"
+ }, undefined, false, undefined, this))]: 207,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD0"
+ }, undefined, false, undefined, this))]: 208,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD1"
+ }, undefined, false, undefined, this))]: 209,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD2"
+ }, undefined, false, undefined, this))]: 210,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD3"
+ }, undefined, false, undefined, this))]: 211,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD4"
+ }, undefined, false, undefined, this))]: 212,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD5"
+ }, undefined, false, undefined, this))]: 213,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD6"
+ }, undefined, false, undefined, this))]: 214,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD7"
+ }, undefined, false, undefined, this))]: 215,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD8"
+ }, undefined, false, undefined, this))]: 216,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xD9"
+ }, undefined, false, undefined, this))]: 217,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDA"
+ }, undefined, false, undefined, this))]: 218,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDB"
+ }, undefined, false, undefined, this))]: 219,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDC"
+ }, undefined, false, undefined, this))]: 220,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDD"
+ }, undefined, false, undefined, this))]: 221,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDE"
+ }, undefined, false, undefined, this))]: 222,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xDF"
+ }, undefined, false, undefined, this))]: 223,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE0"
+ }, undefined, false, undefined, this))]: 224,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE1"
+ }, undefined, false, undefined, this))]: 225,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE2"
+ }, undefined, false, undefined, this))]: 226,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE3"
+ }, undefined, false, undefined, this))]: 227,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE4"
+ }, undefined, false, undefined, this))]: 228,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE5"
+ }, undefined, false, undefined, this))]: 229,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE6"
+ }, undefined, false, undefined, this))]: 230,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE7"
+ }, undefined, false, undefined, this))]: 231,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE8"
+ }, undefined, false, undefined, this))]: 232,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xE9"
+ }, undefined, false, undefined, this))]: 233,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEA"
+ }, undefined, false, undefined, this))]: 234,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEB"
+ }, undefined, false, undefined, this))]: 235,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEC"
+ }, undefined, false, undefined, this))]: 236,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xED"
+ }, undefined, false, undefined, this))]: 237,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEE"
+ }, undefined, false, undefined, this))]: 238,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xEF"
+ }, undefined, false, undefined, this))]: 239,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF0"
+ }, undefined, false, undefined, this))]: 240,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF1"
+ }, undefined, false, undefined, this))]: 241,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF2"
+ }, undefined, false, undefined, this))]: 242,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF3"
+ }, undefined, false, undefined, this))]: 243,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF4"
+ }, undefined, false, undefined, this))]: 244,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF5"
+ }, undefined, false, undefined, this))]: 245,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF6"
+ }, undefined, false, undefined, this))]: 246,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF7"
+ }, undefined, false, undefined, this))]: 247,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF8"
+ }, undefined, false, undefined, this))]: 248,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xF9"
+ }, undefined, false, undefined, this))]: 249,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFA"
+ }, undefined, false, undefined, this))]: 250,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFB"
+ }, undefined, false, undefined, this))]: 251,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFC"
+ }, undefined, false, undefined, this))]: 252,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFD"
+ }, undefined, false, undefined, this))]: 253,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFE"
+ }, undefined, false, undefined, this))]: 254,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\xFF"
+ }, undefined, false, undefined, this))]: 255,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0100"
+ }, undefined, false, undefined, this))]: 256,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0101"
+ }, undefined, false, undefined, this))]: 257,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0102"
+ }, undefined, false, undefined, this))]: 258,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0103"
+ }, undefined, false, undefined, this))]: 259,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0104"
+ }, undefined, false, undefined, this))]: 260,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0105"
+ }, undefined, false, undefined, this))]: 261,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0106"
+ }, undefined, false, undefined, this))]: 262,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0107"
+ }, undefined, false, undefined, this))]: 263,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0108"
+ }, undefined, false, undefined, this))]: 264,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0109"
+ }, undefined, false, undefined, this))]: 265,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010A"
+ }, undefined, false, undefined, this))]: 266,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010B"
+ }, undefined, false, undefined, this))]: 267,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010C"
+ }, undefined, false, undefined, this))]: 268,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010D"
+ }, undefined, false, undefined, this))]: 269,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010E"
+ }, undefined, false, undefined, this))]: 270,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u010F"
+ }, undefined, false, undefined, this))]: 271,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0110"
+ }, undefined, false, undefined, this))]: 272,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0111"
+ }, undefined, false, undefined, this))]: 273,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0112"
+ }, undefined, false, undefined, this))]: 274,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0113"
+ }, undefined, false, undefined, this))]: 275,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0114"
+ }, undefined, false, undefined, this))]: 276,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0115"
+ }, undefined, false, undefined, this))]: 277,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0116"
+ }, undefined, false, undefined, this))]: 278,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0117"
+ }, undefined, false, undefined, this))]: 279,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0118"
+ }, undefined, false, undefined, this))]: 280,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0119"
+ }, undefined, false, undefined, this))]: 281,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011A"
+ }, undefined, false, undefined, this))]: 282,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011B"
+ }, undefined, false, undefined, this))]: 283,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011C"
+ }, undefined, false, undefined, this))]: 284,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011D"
+ }, undefined, false, undefined, this))]: 285,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011E"
+ }, undefined, false, undefined, this))]: 286,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u011F"
+ }, undefined, false, undefined, this))]: 287,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0120"
+ }, undefined, false, undefined, this))]: 288,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0121"
+ }, undefined, false, undefined, this))]: 289,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0122"
+ }, undefined, false, undefined, this))]: 290,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0123"
+ }, undefined, false, undefined, this))]: 291,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0124"
+ }, undefined, false, undefined, this))]: 292,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0125"
+ }, undefined, false, undefined, this))]: 293,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0126"
+ }, undefined, false, undefined, this))]: 294,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0127"
+ }, undefined, false, undefined, this))]: 295,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0128"
+ }, undefined, false, undefined, this))]: 296,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0129"
+ }, undefined, false, undefined, this))]: 297,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012A"
+ }, undefined, false, undefined, this))]: 298,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012B"
+ }, undefined, false, undefined, this))]: 299,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012C"
+ }, undefined, false, undefined, this))]: 300,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012D"
+ }, undefined, false, undefined, this))]: 301,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012E"
+ }, undefined, false, undefined, this))]: 302,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u012F"
+ }, undefined, false, undefined, this))]: 303,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0130"
+ }, undefined, false, undefined, this))]: 304,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0131"
+ }, undefined, false, undefined, this))]: 305,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0132"
+ }, undefined, false, undefined, this))]: 306,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0133"
+ }, undefined, false, undefined, this))]: 307,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0134"
+ }, undefined, false, undefined, this))]: 308,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0135"
+ }, undefined, false, undefined, this))]: 309,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0136"
+ }, undefined, false, undefined, this))]: 310,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0137"
+ }, undefined, false, undefined, this))]: 311,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0138"
+ }, undefined, false, undefined, this))]: 312,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0139"
+ }, undefined, false, undefined, this))]: 313,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013A"
+ }, undefined, false, undefined, this))]: 314,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013B"
+ }, undefined, false, undefined, this))]: 315,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013C"
+ }, undefined, false, undefined, this))]: 316,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013D"
+ }, undefined, false, undefined, this))]: 317,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013E"
+ }, undefined, false, undefined, this))]: 318,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u013F"
+ }, undefined, false, undefined, this))]: 319,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0140"
+ }, undefined, false, undefined, this))]: 320,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0141"
+ }, undefined, false, undefined, this))]: 321,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0142"
+ }, undefined, false, undefined, this))]: 322,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0143"
+ }, undefined, false, undefined, this))]: 323,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0144"
+ }, undefined, false, undefined, this))]: 324,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0145"
+ }, undefined, false, undefined, this))]: 325,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0146"
+ }, undefined, false, undefined, this))]: 326,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0147"
+ }, undefined, false, undefined, this))]: 327,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0148"
+ }, undefined, false, undefined, this))]: 328,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0149"
+ }, undefined, false, undefined, this))]: 329,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014A"
+ }, undefined, false, undefined, this))]: 330,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014B"
+ }, undefined, false, undefined, this))]: 331,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014C"
+ }, undefined, false, undefined, this))]: 332,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014D"
+ }, undefined, false, undefined, this))]: 333,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014E"
+ }, undefined, false, undefined, this))]: 334,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u014F"
+ }, undefined, false, undefined, this))]: 335,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0150"
+ }, undefined, false, undefined, this))]: 336,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0151"
+ }, undefined, false, undefined, this))]: 337,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0152"
+ }, undefined, false, undefined, this))]: 338,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0153"
+ }, undefined, false, undefined, this))]: 339,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0154"
+ }, undefined, false, undefined, this))]: 340,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0155"
+ }, undefined, false, undefined, this))]: 341,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0156"
+ }, undefined, false, undefined, this))]: 342,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0157"
+ }, undefined, false, undefined, this))]: 343,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0158"
+ }, undefined, false, undefined, this))]: 344,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0159"
+ }, undefined, false, undefined, this))]: 345,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015A"
+ }, undefined, false, undefined, this))]: 346,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015B"
+ }, undefined, false, undefined, this))]: 347,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015C"
+ }, undefined, false, undefined, this))]: 348,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015D"
+ }, undefined, false, undefined, this))]: 349,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015E"
+ }, undefined, false, undefined, this))]: 350,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u015F"
+ }, undefined, false, undefined, this))]: 351,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0160"
+ }, undefined, false, undefined, this))]: 352,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0161"
+ }, undefined, false, undefined, this))]: 353,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0162"
+ }, undefined, false, undefined, this))]: 354,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0163"
+ }, undefined, false, undefined, this))]: 355,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0164"
+ }, undefined, false, undefined, this))]: 356,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0165"
+ }, undefined, false, undefined, this))]: 357,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0166"
+ }, undefined, false, undefined, this))]: 358,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0167"
+ }, undefined, false, undefined, this))]: 359,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0168"
+ }, undefined, false, undefined, this))]: 360,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0169"
+ }, undefined, false, undefined, this))]: 361,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016A"
+ }, undefined, false, undefined, this))]: 362,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016B"
+ }, undefined, false, undefined, this))]: 363,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016C"
+ }, undefined, false, undefined, this))]: 364,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016D"
+ }, undefined, false, undefined, this))]: 365,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016E"
+ }, undefined, false, undefined, this))]: 366,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u016F"
+ }, undefined, false, undefined, this))]: 367,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0170"
+ }, undefined, false, undefined, this))]: 368,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0171"
+ }, undefined, false, undefined, this))]: 369,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0172"
+ }, undefined, false, undefined, this))]: 370,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0173"
+ }, undefined, false, undefined, this))]: 371,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0174"
+ }, undefined, false, undefined, this))]: 372,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0175"
+ }, undefined, false, undefined, this))]: 373,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0176"
+ }, undefined, false, undefined, this))]: 374,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0177"
+ }, undefined, false, undefined, this))]: 375,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0178"
+ }, undefined, false, undefined, this))]: 376,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0179"
+ }, undefined, false, undefined, this))]: 377,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017A"
+ }, undefined, false, undefined, this))]: 378,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017B"
+ }, undefined, false, undefined, this))]: 379,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017C"
+ }, undefined, false, undefined, this))]: 380,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017D"
+ }, undefined, false, undefined, this))]: 381,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017E"
+ }, undefined, false, undefined, this))]: 382,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u017F"
+ }, undefined, false, undefined, this))]: 383,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0180"
+ }, undefined, false, undefined, this))]: 384,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0181"
+ }, undefined, false, undefined, this))]: 385,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0182"
+ }, undefined, false, undefined, this))]: 386,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0183"
+ }, undefined, false, undefined, this))]: 387,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0184"
+ }, undefined, false, undefined, this))]: 388,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0185"
+ }, undefined, false, undefined, this))]: 389,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0186"
+ }, undefined, false, undefined, this))]: 390,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0187"
+ }, undefined, false, undefined, this))]: 391,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0188"
+ }, undefined, false, undefined, this))]: 392,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0189"
+ }, undefined, false, undefined, this))]: 393,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018A"
+ }, undefined, false, undefined, this))]: 394,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018B"
+ }, undefined, false, undefined, this))]: 395,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018C"
+ }, undefined, false, undefined, this))]: 396,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018D"
+ }, undefined, false, undefined, this))]: 397,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018E"
+ }, undefined, false, undefined, this))]: 398,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u018F"
+ }, undefined, false, undefined, this))]: 399,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0190"
+ }, undefined, false, undefined, this))]: 400,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0191"
+ }, undefined, false, undefined, this))]: 401,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0192"
+ }, undefined, false, undefined, this))]: 402,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0193"
+ }, undefined, false, undefined, this))]: 403,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0194"
+ }, undefined, false, undefined, this))]: 404,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0195"
+ }, undefined, false, undefined, this))]: 405,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0196"
+ }, undefined, false, undefined, this))]: 406,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0197"
+ }, undefined, false, undefined, this))]: 407,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0198"
+ }, undefined, false, undefined, this))]: 408,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0199"
+ }, undefined, false, undefined, this))]: 409,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019A"
+ }, undefined, false, undefined, this))]: 410,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019B"
+ }, undefined, false, undefined, this))]: 411,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019C"
+ }, undefined, false, undefined, this))]: 412,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019D"
+ }, undefined, false, undefined, this))]: 413,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019E"
+ }, undefined, false, undefined, this))]: 414,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u019F"
+ }, undefined, false, undefined, this))]: 415,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A0"
+ }, undefined, false, undefined, this))]: 416,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A1"
+ }, undefined, false, undefined, this))]: 417,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A2"
+ }, undefined, false, undefined, this))]: 418,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A3"
+ }, undefined, false, undefined, this))]: 419,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A4"
+ }, undefined, false, undefined, this))]: 420,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A5"
+ }, undefined, false, undefined, this))]: 421,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A6"
+ }, undefined, false, undefined, this))]: 422,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A7"
+ }, undefined, false, undefined, this))]: 423,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A8"
+ }, undefined, false, undefined, this))]: 424,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01A9"
+ }, undefined, false, undefined, this))]: 425,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AA"
+ }, undefined, false, undefined, this))]: 426,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AB"
+ }, undefined, false, undefined, this))]: 427,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AC"
+ }, undefined, false, undefined, this))]: 428,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AD"
+ }, undefined, false, undefined, this))]: 429,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AE"
+ }, undefined, false, undefined, this))]: 430,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01AF"
+ }, undefined, false, undefined, this))]: 431,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B0"
+ }, undefined, false, undefined, this))]: 432,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B1"
+ }, undefined, false, undefined, this))]: 433,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B2"
+ }, undefined, false, undefined, this))]: 434,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B3"
+ }, undefined, false, undefined, this))]: 435,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B4"
+ }, undefined, false, undefined, this))]: 436,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B5"
+ }, undefined, false, undefined, this))]: 437,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B6"
+ }, undefined, false, undefined, this))]: 438,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B7"
+ }, undefined, false, undefined, this))]: 439,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B8"
+ }, undefined, false, undefined, this))]: 440,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01B9"
+ }, undefined, false, undefined, this))]: 441,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BA"
+ }, undefined, false, undefined, this))]: 442,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BB"
+ }, undefined, false, undefined, this))]: 443,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BC"
+ }, undefined, false, undefined, this))]: 444,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BD"
+ }, undefined, false, undefined, this))]: 445,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BE"
+ }, undefined, false, undefined, this))]: 446,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01BF"
+ }, undefined, false, undefined, this))]: 447,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C0"
+ }, undefined, false, undefined, this))]: 448,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C1"
+ }, undefined, false, undefined, this))]: 449,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C2"
+ }, undefined, false, undefined, this))]: 450,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C3"
+ }, undefined, false, undefined, this))]: 451,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C4"
+ }, undefined, false, undefined, this))]: 452,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C5"
+ }, undefined, false, undefined, this))]: 453,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C6"
+ }, undefined, false, undefined, this))]: 454,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C7"
+ }, undefined, false, undefined, this))]: 455,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C8"
+ }, undefined, false, undefined, this))]: 456,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01C9"
+ }, undefined, false, undefined, this))]: 457,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CA"
+ }, undefined, false, undefined, this))]: 458,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CB"
+ }, undefined, false, undefined, this))]: 459,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CC"
+ }, undefined, false, undefined, this))]: 460,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CD"
+ }, undefined, false, undefined, this))]: 461,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CE"
+ }, undefined, false, undefined, this))]: 462,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01CF"
+ }, undefined, false, undefined, this))]: 463,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D0"
+ }, undefined, false, undefined, this))]: 464,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D1"
+ }, undefined, false, undefined, this))]: 465,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D2"
+ }, undefined, false, undefined, this))]: 466,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D3"
+ }, undefined, false, undefined, this))]: 467,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D4"
+ }, undefined, false, undefined, this))]: 468,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D5"
+ }, undefined, false, undefined, this))]: 469,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D6"
+ }, undefined, false, undefined, this))]: 470,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D7"
+ }, undefined, false, undefined, this))]: 471,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D8"
+ }, undefined, false, undefined, this))]: 472,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01D9"
+ }, undefined, false, undefined, this))]: 473,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DA"
+ }, undefined, false, undefined, this))]: 474,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DB"
+ }, undefined, false, undefined, this))]: 475,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DC"
+ }, undefined, false, undefined, this))]: 476,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DD"
+ }, undefined, false, undefined, this))]: 477,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DE"
+ }, undefined, false, undefined, this))]: 478,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01DF"
+ }, undefined, false, undefined, this))]: 479,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E0"
+ }, undefined, false, undefined, this))]: 480,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E1"
+ }, undefined, false, undefined, this))]: 481,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E2"
+ }, undefined, false, undefined, this))]: 482,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E3"
+ }, undefined, false, undefined, this))]: 483,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E4"
+ }, undefined, false, undefined, this))]: 484,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E5"
+ }, undefined, false, undefined, this))]: 485,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E6"
+ }, undefined, false, undefined, this))]: 486,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E7"
+ }, undefined, false, undefined, this))]: 487,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E8"
+ }, undefined, false, undefined, this))]: 488,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01E9"
+ }, undefined, false, undefined, this))]: 489,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EA"
+ }, undefined, false, undefined, this))]: 490,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EB"
+ }, undefined, false, undefined, this))]: 491,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EC"
+ }, undefined, false, undefined, this))]: 492,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01ED"
+ }, undefined, false, undefined, this))]: 493,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EE"
+ }, undefined, false, undefined, this))]: 494,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01EF"
+ }, undefined, false, undefined, this))]: 495,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F0"
+ }, undefined, false, undefined, this))]: 496,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F1"
+ }, undefined, false, undefined, this))]: 497,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F2"
+ }, undefined, false, undefined, this))]: 498,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F3"
+ }, undefined, false, undefined, this))]: 499,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F4"
+ }, undefined, false, undefined, this))]: 500,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F5"
+ }, undefined, false, undefined, this))]: 501,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F6"
+ }, undefined, false, undefined, this))]: 502,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F7"
+ }, undefined, false, undefined, this))]: 503,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F8"
+ }, undefined, false, undefined, this))]: 504,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01F9"
+ }, undefined, false, undefined, this))]: 505,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FA"
+ }, undefined, false, undefined, this))]: 506,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FB"
+ }, undefined, false, undefined, this))]: 507,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FC"
+ }, undefined, false, undefined, this))]: 508,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FD"
+ }, undefined, false, undefined, this))]: 509,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FE"
+ }, undefined, false, undefined, this))]: 510,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u01FF"
+ }, undefined, false, undefined, this))]: 511,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0200"
+ }, undefined, false, undefined, this))]: 512,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0201"
+ }, undefined, false, undefined, this))]: 513,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0202"
+ }, undefined, false, undefined, this))]: 514,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0203"
+ }, undefined, false, undefined, this))]: 515,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0204"
+ }, undefined, false, undefined, this))]: 516,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0205"
+ }, undefined, false, undefined, this))]: 517,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0206"
+ }, undefined, false, undefined, this))]: 518,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0207"
+ }, undefined, false, undefined, this))]: 519,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0208"
+ }, undefined, false, undefined, this))]: 520,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0209"
+ }, undefined, false, undefined, this))]: 521,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020A"
+ }, undefined, false, undefined, this))]: 522,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020B"
+ }, undefined, false, undefined, this))]: 523,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020C"
+ }, undefined, false, undefined, this))]: 524,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020D"
+ }, undefined, false, undefined, this))]: 525,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020E"
+ }, undefined, false, undefined, this))]: 526,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u020F"
+ }, undefined, false, undefined, this))]: 527,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0210"
+ }, undefined, false, undefined, this))]: 528,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0211"
+ }, undefined, false, undefined, this))]: 529,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0212"
+ }, undefined, false, undefined, this))]: 530,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0213"
+ }, undefined, false, undefined, this))]: 531,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0214"
+ }, undefined, false, undefined, this))]: 532,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0215"
+ }, undefined, false, undefined, this))]: 533,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0216"
+ }, undefined, false, undefined, this))]: 534,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0217"
+ }, undefined, false, undefined, this))]: 535,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0218"
+ }, undefined, false, undefined, this))]: 536,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0219"
+ }, undefined, false, undefined, this))]: 537,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021A"
+ }, undefined, false, undefined, this))]: 538,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021B"
+ }, undefined, false, undefined, this))]: 539,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021C"
+ }, undefined, false, undefined, this))]: 540,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021D"
+ }, undefined, false, undefined, this))]: 541,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021E"
+ }, undefined, false, undefined, this))]: 542,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u021F"
+ }, undefined, false, undefined, this))]: 543,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0220"
+ }, undefined, false, undefined, this))]: 544,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0221"
+ }, undefined, false, undefined, this))]: 545,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0222"
+ }, undefined, false, undefined, this))]: 546,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0223"
+ }, undefined, false, undefined, this))]: 547,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0224"
+ }, undefined, false, undefined, this))]: 548,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0225"
+ }, undefined, false, undefined, this))]: 549,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0226"
+ }, undefined, false, undefined, this))]: 550,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0227"
+ }, undefined, false, undefined, this))]: 551,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0228"
+ }, undefined, false, undefined, this))]: 552,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0229"
+ }, undefined, false, undefined, this))]: 553,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022A"
+ }, undefined, false, undefined, this))]: 554,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022B"
+ }, undefined, false, undefined, this))]: 555,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022C"
+ }, undefined, false, undefined, this))]: 556,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022D"
+ }, undefined, false, undefined, this))]: 557,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022E"
+ }, undefined, false, undefined, this))]: 558,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u022F"
+ }, undefined, false, undefined, this))]: 559,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0230"
+ }, undefined, false, undefined, this))]: 560,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0231"
+ }, undefined, false, undefined, this))]: 561,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0232"
+ }, undefined, false, undefined, this))]: 562,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0233"
+ }, undefined, false, undefined, this))]: 563,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0234"
+ }, undefined, false, undefined, this))]: 564,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0235"
+ }, undefined, false, undefined, this))]: 565,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0236"
+ }, undefined, false, undefined, this))]: 566,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0237"
+ }, undefined, false, undefined, this))]: 567,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0238"
+ }, undefined, false, undefined, this))]: 568,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0239"
+ }, undefined, false, undefined, this))]: 569,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023A"
+ }, undefined, false, undefined, this))]: 570,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023B"
+ }, undefined, false, undefined, this))]: 571,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023C"
+ }, undefined, false, undefined, this))]: 572,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023D"
+ }, undefined, false, undefined, this))]: 573,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023E"
+ }, undefined, false, undefined, this))]: 574,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u023F"
+ }, undefined, false, undefined, this))]: 575,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0240"
+ }, undefined, false, undefined, this))]: 576,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0241"
+ }, undefined, false, undefined, this))]: 577,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0242"
+ }, undefined, false, undefined, this))]: 578,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0243"
+ }, undefined, false, undefined, this))]: 579,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0244"
+ }, undefined, false, undefined, this))]: 580,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0245"
+ }, undefined, false, undefined, this))]: 581,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0246"
+ }, undefined, false, undefined, this))]: 582,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0247"
+ }, undefined, false, undefined, this))]: 583,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0248"
+ }, undefined, false, undefined, this))]: 584,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0249"
+ }, undefined, false, undefined, this))]: 585,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024A"
+ }, undefined, false, undefined, this))]: 586,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024B"
+ }, undefined, false, undefined, this))]: 587,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024C"
+ }, undefined, false, undefined, this))]: 588,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024D"
+ }, undefined, false, undefined, this))]: 589,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024E"
+ }, undefined, false, undefined, this))]: 590,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u024F"
+ }, undefined, false, undefined, this))]: 591,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0250"
+ }, undefined, false, undefined, this))]: 592,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0251"
+ }, undefined, false, undefined, this))]: 593,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0252"
+ }, undefined, false, undefined, this))]: 594,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0253"
+ }, undefined, false, undefined, this))]: 595,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0254"
+ }, undefined, false, undefined, this))]: 596,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0255"
+ }, undefined, false, undefined, this))]: 597,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0256"
+ }, undefined, false, undefined, this))]: 598,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0257"
+ }, undefined, false, undefined, this))]: 599,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0258"
+ }, undefined, false, undefined, this))]: 600,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0259"
+ }, undefined, false, undefined, this))]: 601,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025A"
+ }, undefined, false, undefined, this))]: 602,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025B"
+ }, undefined, false, undefined, this))]: 603,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025C"
+ }, undefined, false, undefined, this))]: 604,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025D"
+ }, undefined, false, undefined, this))]: 605,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025E"
+ }, undefined, false, undefined, this))]: 606,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u025F"
+ }, undefined, false, undefined, this))]: 607,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0260"
+ }, undefined, false, undefined, this))]: 608,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0261"
+ }, undefined, false, undefined, this))]: 609,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0262"
+ }, undefined, false, undefined, this))]: 610,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0263"
+ }, undefined, false, undefined, this))]: 611,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0264"
+ }, undefined, false, undefined, this))]: 612,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0265"
+ }, undefined, false, undefined, this))]: 613,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0266"
+ }, undefined, false, undefined, this))]: 614,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0267"
+ }, undefined, false, undefined, this))]: 615,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0268"
+ }, undefined, false, undefined, this))]: 616,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0269"
+ }, undefined, false, undefined, this))]: 617,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026A"
+ }, undefined, false, undefined, this))]: 618,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026B"
+ }, undefined, false, undefined, this))]: 619,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026C"
+ }, undefined, false, undefined, this))]: 620,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026D"
+ }, undefined, false, undefined, this))]: 621,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026E"
+ }, undefined, false, undefined, this))]: 622,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u026F"
+ }, undefined, false, undefined, this))]: 623,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0270"
+ }, undefined, false, undefined, this))]: 624,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0271"
+ }, undefined, false, undefined, this))]: 625,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0272"
+ }, undefined, false, undefined, this))]: 626,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0273"
+ }, undefined, false, undefined, this))]: 627,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0274"
+ }, undefined, false, undefined, this))]: 628,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0275"
+ }, undefined, false, undefined, this))]: 629,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0276"
+ }, undefined, false, undefined, this))]: 630,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0277"
+ }, undefined, false, undefined, this))]: 631,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0278"
+ }, undefined, false, undefined, this))]: 632,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0279"
+ }, undefined, false, undefined, this))]: 633,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027A"
+ }, undefined, false, undefined, this))]: 634,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027B"
+ }, undefined, false, undefined, this))]: 635,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027C"
+ }, undefined, false, undefined, this))]: 636,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027D"
+ }, undefined, false, undefined, this))]: 637,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027E"
+ }, undefined, false, undefined, this))]: 638,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u027F"
+ }, undefined, false, undefined, this))]: 639,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0280"
+ }, undefined, false, undefined, this))]: 640,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0281"
+ }, undefined, false, undefined, this))]: 641,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0282"
+ }, undefined, false, undefined, this))]: 642,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0283"
+ }, undefined, false, undefined, this))]: 643,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0284"
+ }, undefined, false, undefined, this))]: 644,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0285"
+ }, undefined, false, undefined, this))]: 645,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0286"
+ }, undefined, false, undefined, this))]: 646,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0287"
+ }, undefined, false, undefined, this))]: 647,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0288"
+ }, undefined, false, undefined, this))]: 648,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0289"
+ }, undefined, false, undefined, this))]: 649,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028A"
+ }, undefined, false, undefined, this))]: 650,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028B"
+ }, undefined, false, undefined, this))]: 651,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028C"
+ }, undefined, false, undefined, this))]: 652,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028D"
+ }, undefined, false, undefined, this))]: 653,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028E"
+ }, undefined, false, undefined, this))]: 654,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u028F"
+ }, undefined, false, undefined, this))]: 655,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0290"
+ }, undefined, false, undefined, this))]: 656,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0291"
+ }, undefined, false, undefined, this))]: 657,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0292"
+ }, undefined, false, undefined, this))]: 658,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0293"
+ }, undefined, false, undefined, this))]: 659,
+ [ReactDOM.renderToString(jsx(JSXFrag, {
+ children: "\u0294"
+ }, undefined, false, undefined, this))]: 660
+};
+
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/jsx-entities.jsx.map
diff --git a/test/snapshots/jsx-spacing.debug.jsx b/test/snapshots/jsx-spacing.debug.jsx
new file mode 100644
index 000000000..bfbcab92f
--- /dev/null
+++ b/test/snapshots/jsx-spacing.debug.jsx
@@ -0,0 +1,49 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+
+import * as $1f6f0e67 from "http://localhost:8080/node_modules/react-dom/server.browser.js";
+var ReactDOM = require($1f6f0e67);
+const ReturnDescriptionAsString = ({ description }) => description;
+
+export function test() {
+ const _bun = ReactDOM.renderToString(jsx(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
+`
+ }, undefined, false, undefined, this));
+ const el = document.createElement("textarea");
+ el.innerHTML = _bun;
+ const bun = el.value;
+ const esbuild = `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
+`;
+ const tsc = `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
+`;
+ console.assert(bun === esbuild && bun === tsc, `strings did not match: ${JSON.stringify({
+ received: bun,
+ expected: esbuild
+ }, null, 2)}`);
+ testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/jsx-spacing.jsx.map
diff --git a/test/snapshots/jsx-spacing.hmr.debug.jsx b/test/snapshots/jsx-spacing.hmr.debug.jsx
new file mode 100644
index 000000000..d9ec4e204
--- /dev/null
+++ b/test/snapshots/jsx-spacing.hmr.debug.jsx
@@ -0,0 +1,74 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+
+import * as $1f6f0e67 from "http://localhost:8080/node_modules/react-dom/server.browser.js";
+var ReactDOM = require($1f6f0e67);
+var hmr = new FastHMR(3614189736, "jsx-spacing.jsx", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ const ReturnDescriptionAsString = ({ description }) => description;
+ function test() {
+ const _bun = ReactDOM.renderToString(jsx(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
+`
+ }, undefined, false, undefined, this));
+ const el = document.createElement("textarea");
+ el.innerHTML = _bun;
+ const bun = el.value;
+ const esbuild = `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
+`;
+ const tsc = `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
+`;
+ console.assert(bun === esbuild && bun === tsc, `strings did not match: ${JSON.stringify({
+ received: bun,
+ expected: esbuild
+ }, null, 2)}`);
+ testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/jsx-spacing.jsx.map
diff --git a/test/snapshots/jsx-spacing.hmr.jsx b/test/snapshots/jsx-spacing.hmr.jsx
new file mode 100644
index 000000000..59287257b
--- /dev/null
+++ b/test/snapshots/jsx-spacing.hmr.jsx
@@ -0,0 +1,71 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+import * as $1f6f0e67 from "http://localhost:8080/node_modules/react-dom/server.browser.js";
+var ReactDOM = require($1f6f0e67);
+var hmr = new FastHMR(3614189736, "jsx-spacing.jsx", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ const ReturnDescriptionAsString = ({ description }) => description;
+ function test() {
+ const _bun = ReactDOM.renderToString(jsx(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
+`
+ }, undefined, false, undefined, this));
+ const el = document.createElement("textarea");
+ el.innerHTML = _bun;
+ const bun = el.value;
+ const esbuild = `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
+`;
+ const tsc = `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
+`;
+ console.assert(bun === esbuild && bun === tsc, `strings did not match: ${JSON.stringify({
+ received: bun,
+ expected: esbuild
+ }, null, 2)}`);
+ testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/jsx-spacing.jsx.map
diff --git a/test/snapshots/jsx-spacing.jsx b/test/snapshots/jsx-spacing.jsx
new file mode 100644
index 000000000..bfbcab92f
--- /dev/null
+++ b/test/snapshots/jsx-spacing.jsx
@@ -0,0 +1,49 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+
+import * as $1f6f0e67 from "http://localhost:8080/node_modules/react-dom/server.browser.js";
+var ReactDOM = require($1f6f0e67);
+const ReturnDescriptionAsString = ({ description }) => description;
+
+export function test() {
+ const _bun = ReactDOM.renderToString(jsx(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
+`
+ }, undefined, false, undefined, this));
+ const el = document.createElement("textarea");
+ el.innerHTML = _bun;
+ const bun = el.value;
+ const esbuild = `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
+`;
+ const tsc = `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
+`;
+ console.assert(bun === esbuild && bun === tsc, `strings did not match: ${JSON.stringify({
+ received: bun,
+ expected: esbuild
+ }, null, 2)}`);
+ testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/jsx-spacing.jsx.map
diff --git a/test/snapshots/latin1-chars-in-regexp.debug.js b/test/snapshots/latin1-chars-in-regexp.debug.js
new file mode 100644
index 000000000..108874c39
--- /dev/null
+++ b/test/snapshots/latin1-chars-in-regexp.debug.js
@@ -0,0 +1,69 @@
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/latin1-chars-in-regexp.js.map
diff --git a/test/snapshots/latin1-chars-in-regexp.hmr.debug.js b/test/snapshots/latin1-chars-in-regexp.hmr.debug.js
new file mode 100644
index 000000000..fee5714a2
--- /dev/null
+++ b/test/snapshots/latin1-chars-in-regexp.hmr.debug.js
@@ -0,0 +1,101 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(1430071586, "latin1-chars-in-regexp.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
+ 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`;
+ 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);
+ }
+ hmr.exportAll({
+ re_utob: () => re_utob,
+ re_btou: () => re_btou,
+ test: () => test
+ });
+})();
+var $$hmr_re_utob = hmr.exports.re_utob, $$hmr_re_btou = hmr.exports.re_btou, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_re_utob = exports.re_utob;
+ $$hmr_re_btou = exports.re_btou;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_re_utob as re_utob,
+ $$hmr_re_btou as re_btou,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/latin1-chars-in-regexp.js.map
diff --git a/test/snapshots/latin1-chars-in-regexp.hmr.js b/test/snapshots/latin1-chars-in-regexp.hmr.js
new file mode 100644
index 000000000..afd3b813e
--- /dev/null
+++ b/test/snapshots/latin1-chars-in-regexp.hmr.js
@@ -0,0 +1,99 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(1430071586, "latin1-chars-in-regexp.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
+ 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`;
+ 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);
+ }
+ hmr.exportAll({
+ re_utob: () => re_utob,
+ re_btou: () => re_btou,
+ test: () => test
+ });
+})();
+var $$hmr_re_utob = hmr.exports.re_utob, $$hmr_re_btou = hmr.exports.re_btou, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_re_utob = exports.re_utob;
+ $$hmr_re_btou = exports.re_btou;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_re_utob as re_utob,
+ $$hmr_re_btou as re_btou,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/latin1-chars-in-regexp.js.map
diff --git a/test/snapshots/latin1-chars-in-regexp.js b/test/snapshots/latin1-chars-in-regexp.js
new file mode 100644
index 000000000..108874c39
--- /dev/null
+++ b/test/snapshots/latin1-chars-in-regexp.js
@@ -0,0 +1,69 @@
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/latin1-chars-in-regexp.js.map
diff --git a/test/snapshots/lodash-regexp.debug.js b/test/snapshots/lodash-regexp.debug.js
new file mode 100644
index 000000000..b1566fb6d
--- /dev/null
+++ b/test/snapshots/lodash-regexp.debug.js
@@ -0,0 +1,23 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $60f52dc2 from "http://localhost:8080/node_modules/lodash/lodash.js";
+var { shuffle} = require($60f52dc2);
+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);
+}
+
+
+//# sourceMappingURL=http://localhost:8080/lodash-regexp.js.map
diff --git a/test/snapshots/lodash-regexp.hmr.debug.js b/test/snapshots/lodash-regexp.hmr.debug.js
new file mode 100644
index 000000000..959e9e9c1
--- /dev/null
+++ b/test/snapshots/lodash-regexp.hmr.debug.js
@@ -0,0 +1,47 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import * as $60f52dc2 from "http://localhost:8080/node_modules/lodash/lodash.js";
+var { shuffle} = require($60f52dc2);
+var hmr = new FastHMR(2158065009, "lodash-regexp.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/lodash-regexp.js.map
diff --git a/test/snapshots/lodash-regexp.hmr.js b/test/snapshots/lodash-regexp.hmr.js
new file mode 100644
index 000000000..e5d6b9130
--- /dev/null
+++ b/test/snapshots/lodash-regexp.hmr.js
@@ -0,0 +1,45 @@
+import {
+__require as require
+} from "http://localhost:3000/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+import * as $60f52dc2 from "http://localhost:3000/node_modules/lodash/lodash.js";
+var { shuffle} = require($60f52dc2);
+var hmr = new FastHMR(2158065009, "lodash-regexp.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/lodash-regexp.js.map
diff --git a/test/snapshots/lodash-regexp.js b/test/snapshots/lodash-regexp.js
new file mode 100644
index 000000000..b1566fb6d
--- /dev/null
+++ b/test/snapshots/lodash-regexp.js
@@ -0,0 +1,23 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $60f52dc2 from "http://localhost:8080/node_modules/lodash/lodash.js";
+var { shuffle} = require($60f52dc2);
+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);
+}
+
+
+//# sourceMappingURL=http://localhost:8080/lodash-regexp.js.map
diff --git a/test/snapshots/multiple-imports.debug.js b/test/snapshots/multiple-imports.debug.js
new file mode 100644
index 000000000..af9396b46
--- /dev/null
+++ b/test/snapshots/multiple-imports.debug.js
@@ -0,0 +1,25 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+
+var { default: React} = require($bbcd215f);
+var { default: React2} = require($bbcd215f);
+const bacon = React;
+
+const bacon2 = jsx(JSXFrag, {
+ children: "hello"
+}, undefined, false, undefined, this);
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/multiple-imports.js.map
diff --git a/test/snapshots/multiple-imports.hmr.debug.js b/test/snapshots/multiple-imports.hmr.debug.js
new file mode 100644
index 000000000..5cca375b2
--- /dev/null
+++ b/test/snapshots/multiple-imports.hmr.debug.js
@@ -0,0 +1,50 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+
+var { default: React} = require($bbcd215f);
+var { default: React2} = require($bbcd215f);
+var hmr = new FastHMR(2165509932, "multiple-imports.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ const bacon = React;
+ const bacon2 = jsx(JSXFrag, {
+ children: "hello"
+ }, undefined, false, undefined, this);
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/multiple-imports.js.map
diff --git a/test/snapshots/multiple-imports.hmr.js b/test/snapshots/multiple-imports.hmr.js
new file mode 100644
index 000000000..59d620c07
--- /dev/null
+++ b/test/snapshots/multiple-imports.hmr.js
@@ -0,0 +1,47 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__require as require
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import * as $2f488e5b from "http://localhost:3000/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:3000/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+var { default: React} = require($bbcd215f);
+var { default: React2} = require($bbcd215f);
+var hmr = new FastHMR(2165509932, "multiple-imports.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ const bacon = React;
+ const bacon2 = jsx(JSXFrag, {
+ children: "hello"
+ }, undefined, false, undefined, this);
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/multiple-imports.js.map
diff --git a/test/snapshots/multiple-imports.js b/test/snapshots/multiple-imports.js
new file mode 100644
index 000000000..af9396b46
--- /dev/null
+++ b/test/snapshots/multiple-imports.js
@@ -0,0 +1,25 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+
+var { default: React} = require($bbcd215f);
+var { default: React2} = require($bbcd215f);
+const bacon = React;
+
+const bacon2 = jsx(JSXFrag, {
+ children: "hello"
+}, undefined, false, undefined, this);
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/multiple-imports.js.map
diff --git a/test/snapshots/multiple-var.debug.js b/test/snapshots/multiple-var.debug.js
new file mode 100644
index 000000000..56d31d53e
--- /dev/null
+++ b/test/snapshots/multiple-var.debug.js
@@ -0,0 +1,11 @@
+var foo = true;
+globalThis.TRUE_BUT_WE_CANT_TREESHAKE_IT = true;
+if (globalThis.TRUE_BUT_WE_CANT_TREESHAKE_IT)
+ ({ foo } = { foo: false });
+var foo;
+export function test() {
+ console.assert(foo === false, "foo should be false");
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/multiple-var.js.map
diff --git a/test/snapshots/multiple-var.hmr.debug.js b/test/snapshots/multiple-var.hmr.debug.js
new file mode 100644
index 000000000..a5298f462
--- /dev/null
+++ b/test/snapshots/multiple-var.hmr.debug.js
@@ -0,0 +1,37 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(2883558553, "multiple-var.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var foo = true;
+ globalThis.TRUE_BUT_WE_CANT_TREESHAKE_IT = true;
+ if (globalThis.TRUE_BUT_WE_CANT_TREESHAKE_IT)
+ ({ foo } = { foo: false });
+ var foo;
+ function test() {
+ console.assert(foo === false, "foo should be false");
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/multiple-var.js.map
diff --git a/test/snapshots/multiple-var.hmr.js b/test/snapshots/multiple-var.hmr.js
new file mode 100644
index 000000000..3acb5b8d3
--- /dev/null
+++ b/test/snapshots/multiple-var.hmr.js
@@ -0,0 +1,35 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(2883558553, "multiple-var.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var foo = true;
+ globalThis.TRUE_BUT_WE_CANT_TREESHAKE_IT = true;
+ if (globalThis.TRUE_BUT_WE_CANT_TREESHAKE_IT)
+ ({ foo } = { foo: false });
+ var foo;
+ function test() {
+ console.assert(foo === false, "foo should be false");
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/multiple-var.js.map
diff --git a/test/snapshots/multiple-var.js b/test/snapshots/multiple-var.js
new file mode 100644
index 000000000..56d31d53e
--- /dev/null
+++ b/test/snapshots/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)
+ ({ foo } = { foo: false });
+var foo;
+export function test() {
+ console.assert(foo === false, "foo should be false");
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/multiple-var.js.map
diff --git a/test/snapshots/number-literal-bug.debug.js b/test/snapshots/number-literal-bug.debug.js
new file mode 100644
index 000000000..fb763061d
--- /dev/null
+++ b/test/snapshots/number-literal-bug.debug.js
@@ -0,0 +1,11 @@
+export function test() {
+ const precision = 10;
+ try {
+ parseFloat(0 .toPrecision(precision) + "1");
+ } catch (exception) {
+ throw new Error("Test Failed", exception);
+ }
+ testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/number-literal-bug.js.map
diff --git a/test/snapshots/number-literal-bug.hmr.debug.js b/test/snapshots/number-literal-bug.hmr.debug.js
new file mode 100644
index 000000000..852aef372
--- /dev/null
+++ b/test/snapshots/number-literal-bug.hmr.debug.js
@@ -0,0 +1,37 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(583570002, "number-literal-bug.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ function test() {
+ const precision = 10;
+ try {
+ parseFloat(0 .toPrecision(precision) + "1");
+ } catch (exception) {
+ throw new Error("Test Failed", exception);
+ }
+ testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/number-literal-bug.js.map
diff --git a/test/snapshots/number-literal-bug.hmr.js b/test/snapshots/number-literal-bug.hmr.js
new file mode 100644
index 000000000..cdb63994d
--- /dev/null
+++ b/test/snapshots/number-literal-bug.hmr.js
@@ -0,0 +1,35 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(583570002, "number-literal-bug.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ function test() {
+ const precision = 10;
+ try {
+ parseFloat(0 .toPrecision(precision) + "1");
+ } catch (exception) {
+ throw new Error("Test Failed", exception);
+ }
+ testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/number-literal-bug.js.map
diff --git a/test/snapshots/number-literal-bug.js b/test/snapshots/number-literal-bug.js
new file mode 100644
index 000000000..fb763061d
--- /dev/null
+++ b/test/snapshots/number-literal-bug.js
@@ -0,0 +1,11 @@
+export function test() {
+ const precision = 10;
+ try {
+ parseFloat(0 .toPrecision(precision) + "1");
+ } catch (exception) {
+ throw new Error("Test Failed", exception);
+ }
+ testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/number-literal-bug.js.map
diff --git a/test/snapshots/optional-chain-with-function.debug.js b/test/snapshots/optional-chain-with-function.debug.js
new file mode 100644
index 000000000..4b53bb5ed
--- /dev/null
+++ b/test/snapshots/optional-chain-with-function.debug.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);
+}
+
+//# sourceMappingURL=http://localhost:8080/optional-chain-with-function.js.map
diff --git a/test/snapshots/optional-chain-with-function.hmr.debug.js b/test/snapshots/optional-chain-with-function.hmr.debug.js
new file mode 100644
index 000000000..e7f97cb3f
--- /dev/null
+++ b/test/snapshots/optional-chain-with-function.hmr.debug.js
@@ -0,0 +1,41 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(3608848620, "optional-chain-with-function.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/optional-chain-with-function.js.map
diff --git a/test/snapshots/optional-chain-with-function.hmr.js b/test/snapshots/optional-chain-with-function.hmr.js
new file mode 100644
index 000000000..e9a89a827
--- /dev/null
+++ b/test/snapshots/optional-chain-with-function.hmr.js
@@ -0,0 +1,39 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(3608848620, "optional-chain-with-function.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/optional-chain-with-function.js.map
diff --git a/test/snapshots/optional-chain-with-function.js b/test/snapshots/optional-chain-with-function.js
new file mode 100644
index 000000000..4b53bb5ed
--- /dev/null
+++ b/test/snapshots/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);
+}
+
+//# sourceMappingURL=http://localhost:8080/optional-chain-with-function.js.map
diff --git a/test/snapshots/package-json-exports/index.debug.js b/test/snapshots/package-json-exports/index.debug.js
new file mode 100644
index 000000000..3d41a7985
--- /dev/null
+++ b/test/snapshots/package-json-exports/index.debug.js
@@ -0,0 +1,22 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $4068f25b from "http://localhost:8080/package-json-exports/node_modules/inexact/browser/index.js";
+var InexactRoot = require($4068f25b);
+import * as $d2a171d2 from "http://localhost:8080/package-json-exports/node_modules/inexact/browser/dir/file.js";
+var InexactFile = require($d2a171d2);
+import * as $522c6d1f from "http://localhost:8080/package-json-exports/node_modules/inexact/browser/foo.js";
+var ExactFile = require($522c6d1f);
+import * as $fce83cd7 from "http://localhost:8080/package-json-exports/node_modules/js-only-exports/browser/js-file.js";
+var JSFileExtensionOnly = require($fce83cd7);
+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);
+}
+
+
+//# sourceMappingURL=http://localhost:8080/package-json-exports/index.js.map
diff --git a/test/snapshots/package-json-exports/index.hmr.debug.js b/test/snapshots/package-json-exports/index.hmr.debug.js
new file mode 100644
index 000000000..e6cdaefba
--- /dev/null
+++ b/test/snapshots/package-json-exports/index.hmr.debug.js
@@ -0,0 +1,46 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import * as $4068f25b from "http://localhost:8080/package-json-exports/node_modules/inexact/browser/index.js";
+var InexactRoot = require($4068f25b);
+import * as $d2a171d2 from "http://localhost:8080/package-json-exports/node_modules/inexact/browser/dir/file.js";
+var InexactFile = require($d2a171d2);
+import * as $522c6d1f from "http://localhost:8080/package-json-exports/node_modules/inexact/browser/foo.js";
+var ExactFile = require($522c6d1f);
+import * as $fce83cd7 from "http://localhost:8080/package-json-exports/node_modules/js-only-exports/browser/js-file.js";
+var JSFileExtensionOnly = require($fce83cd7);
+var hmr = new FastHMR(1953708113, "package-json-exports/index.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/package-json-exports/index.js.map
diff --git a/test/snapshots/package-json-exports/index.hmr.js b/test/snapshots/package-json-exports/index.hmr.js
new file mode 100644
index 000000000..69efa5194
--- /dev/null
+++ b/test/snapshots/package-json-exports/index.hmr.js
@@ -0,0 +1,44 @@
+import {
+__require as require
+} from "http://localhost:3000/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+import * as $4068f25b from "http://localhost:3000/package-json-exports/node_modules/inexact/browser/index.js";
+var InexactRoot = require($4068f25b);
+import * as $d2a171d2 from "http://localhost:3000/package-json-exports/node_modules/inexact/browser/dir/file.js";
+var InexactFile = require($d2a171d2);
+import * as $522c6d1f from "http://localhost:3000/package-json-exports/node_modules/inexact/browser/foo.js";
+var ExactFile = require($522c6d1f);
+import * as $fce83cd7 from "http://localhost:3000/package-json-exports/node_modules/js-only-exports/browser/js-file.js";
+var JSFileExtensionOnly = require($fce83cd7);
+var hmr = new FastHMR(1953708113, "package-json-exports/index.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/package-json-exports/index.js.map
diff --git a/test/snapshots/package-json-exports/index.js b/test/snapshots/package-json-exports/index.js
new file mode 100644
index 000000000..3d41a7985
--- /dev/null
+++ b/test/snapshots/package-json-exports/index.js
@@ -0,0 +1,22 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $4068f25b from "http://localhost:8080/package-json-exports/node_modules/inexact/browser/index.js";
+var InexactRoot = require($4068f25b);
+import * as $d2a171d2 from "http://localhost:8080/package-json-exports/node_modules/inexact/browser/dir/file.js";
+var InexactFile = require($d2a171d2);
+import * as $522c6d1f from "http://localhost:8080/package-json-exports/node_modules/inexact/browser/foo.js";
+var ExactFile = require($522c6d1f);
+import * as $fce83cd7 from "http://localhost:8080/package-json-exports/node_modules/js-only-exports/browser/js-file.js";
+var JSFileExtensionOnly = require($fce83cd7);
+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);
+}
+
+
+//# sourceMappingURL=http://localhost:8080/package-json-exports/index.js.map
diff --git a/test/snapshots/package-json-utf8.debug.js b/test/snapshots/package-json-utf8.debug.js
new file mode 100644
index 000000000..8845090f0
--- /dev/null
+++ b/test/snapshots/package-json-utf8.debug.js
@@ -0,0 +1,9 @@
+import pkg from "http://localhost:8080/utf8-package-json.json";
+export function test() {
+ console.assert(!!pkg.author);
+
+ return testDone(import.meta.url);
+}
+
+
+//# sourceMappingURL=http://localhost:8080/package-json-utf8.js.map
diff --git a/test/snapshots/package-json-utf8.hmr.debug.js b/test/snapshots/package-json-utf8.hmr.debug.js
new file mode 100644
index 000000000..fe11070c2
--- /dev/null
+++ b/test/snapshots/package-json-utf8.hmr.debug.js
@@ -0,0 +1,33 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import pkg from "http://localhost:8080/utf8-package-json.json";
+var hmr = new FastHMR(4111115104, "package-json-utf8.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ function test() {
+ console.assert(!!pkg.author);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/package-json-utf8.js.map
diff --git a/test/snapshots/package-json-utf8.hmr.js b/test/snapshots/package-json-utf8.hmr.js
new file mode 100644
index 000000000..5676d6477
--- /dev/null
+++ b/test/snapshots/package-json-utf8.hmr.js
@@ -0,0 +1,31 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import pkg from "http://localhost:8080/utf8-package-json.json";
+var hmr = new FastHMR(4111115104, "package-json-utf8.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ function test() {
+ console.assert(!!pkg.author);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/package-json-utf8.js.map
diff --git a/test/snapshots/package-json-utf8.js b/test/snapshots/package-json-utf8.js
new file mode 100644
index 000000000..8845090f0
--- /dev/null
+++ b/test/snapshots/package-json-utf8.js
@@ -0,0 +1,9 @@
+import pkg from "http://localhost:8080/utf8-package-json.json";
+export function test() {
+ console.assert(!!pkg.author);
+
+ return testDone(import.meta.url);
+}
+
+
+//# sourceMappingURL=http://localhost:8080/package-json-utf8.js.map
diff --git a/test/snapshots/react-context-value-func.debug.tsx b/test/snapshots/react-context-value-func.debug.tsx
new file mode 100644
index 000000000..71b5e5f60
--- /dev/null
+++ b/test/snapshots/react-context-value-func.debug.tsx
@@ -0,0 +1,38 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var { default: React} = require($bbcd215f);
+const Context = React.createContext({});
+
+const ContextProvider = ({ children }) => {
+ const [cb, setCB] = React.useState(function() {
+ });
+ const foo = true;
+ return jsx(Context.Provider, {
+ value: cb,
+ children: children(foo)
+ }, undefined, false, undefined, this);
+};
+const ContextValue = ({}) => jsx(Context.Consumer, {
+ children: (foo) => {
+ if (foo)
+ return jsx("div", {
+ children: "Worked!"
+ }, undefined, false, undefined, this);
+ throw `Value "${foo}"" should be true`;
+ }
+}, undefined, false, undefined, this);
+const TestComponent = () => jsx(ContextProvider, {
+ children: jsx(ContextValue, {}, undefined, false, undefined, this)
+}, undefined, false, undefined, this);
+export function test() {
+ const foo = jsx(TestComponent, {}, undefined, false, undefined, this);
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/react-context-value-func.tsx.map
diff --git a/test/snapshots/react-context-value-func.hmr.debug.tsx b/test/snapshots/react-context-value-func.hmr.debug.tsx
new file mode 100644
index 000000000..d17a8fa88
--- /dev/null
+++ b/test/snapshots/react-context-value-func.hmr.debug.tsx
@@ -0,0 +1,63 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var { default: React} = require($bbcd215f);
+var hmr = new FastHMR(3514348331, "react-context-value-func.tsx", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ const Context = React.createContext({});
+ const ContextProvider = ({ children }) => {
+ const [cb, setCB] = React.useState(function() {
+ });
+ const foo = true;
+ return jsx(Context.Provider, {
+ value: cb,
+ children: children(foo)
+ }, undefined, false, undefined, this);
+ };
+ const ContextValue = ({}) => jsx(Context.Consumer, {
+ children: (foo) => {
+ if (foo)
+ return jsx("div", {
+ children: "Worked!"
+ }, undefined, false, undefined, this);
+ throw `Value "${foo}"" should be true`;
+ }
+ }, undefined, false, undefined, this);
+ const TestComponent = () => jsx(ContextProvider, {
+ children: jsx(ContextValue, {}, undefined, false, undefined, this)
+ }, undefined, false, undefined, this);
+ function test() {
+ const foo = jsx(TestComponent, {}, undefined, false, undefined, this);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/react-context-value-func.tsx.map
diff --git a/test/snapshots/react-context-value-func.hmr.tsx b/test/snapshots/react-context-value-func.hmr.tsx
new file mode 100644
index 000000000..0c751a7a9
--- /dev/null
+++ b/test/snapshots/react-context-value-func.hmr.tsx
@@ -0,0 +1,60 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var { default: React} = require($bbcd215f);
+var hmr = new FastHMR(3514348331, "react-context-value-func.tsx", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ const Context = React.createContext({});
+ const ContextProvider = ({ children }) => {
+ const [cb, setCB] = React.useState(function() {
+ });
+ const foo = true;
+ return jsx(Context.Provider, {
+ value: cb,
+ children: children(foo)
+ }, undefined, false, undefined, this);
+ };
+ const ContextValue = ({}) => jsx(Context.Consumer, {
+ children: (foo) => {
+ if (foo)
+ return jsx("div", {
+ children: "Worked!"
+ }, undefined, false, undefined, this);
+ throw `Value "${foo}"" should be true`;
+ }
+ }, undefined, false, undefined, this);
+ const TestComponent = () => jsx(ContextProvider, {
+ children: jsx(ContextValue, {}, undefined, false, undefined, this)
+ }, undefined, false, undefined, this);
+ function test() {
+ const foo = jsx(TestComponent, {}, undefined, false, undefined, this);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/react-context-value-func.tsx.map
diff --git a/test/snapshots/react-context-value-func.tsx b/test/snapshots/react-context-value-func.tsx
new file mode 100644
index 000000000..71b5e5f60
--- /dev/null
+++ b/test/snapshots/react-context-value-func.tsx
@@ -0,0 +1,38 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var { default: React} = require($bbcd215f);
+const Context = React.createContext({});
+
+const ContextProvider = ({ children }) => {
+ const [cb, setCB] = React.useState(function() {
+ });
+ const foo = true;
+ return jsx(Context.Provider, {
+ value: cb,
+ children: children(foo)
+ }, undefined, false, undefined, this);
+};
+const ContextValue = ({}) => jsx(Context.Consumer, {
+ children: (foo) => {
+ if (foo)
+ return jsx("div", {
+ children: "Worked!"
+ }, undefined, false, undefined, this);
+ throw `Value "${foo}"" should be true`;
+ }
+}, undefined, false, undefined, this);
+const TestComponent = () => jsx(ContextProvider, {
+ children: jsx(ContextValue, {}, undefined, false, undefined, this)
+}, undefined, false, undefined, this);
+export function test() {
+ const foo = jsx(TestComponent, {}, undefined, false, undefined, this);
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/react-context-value-func.tsx.map
diff --git a/test/snapshots/spread_with_key.debug.tsx b/test/snapshots/spread_with_key.debug.tsx
new file mode 100644
index 000000000..e096a76c8
--- /dev/null
+++ b/test/snapshots/spread_with_key.debug.tsx
@@ -0,0 +1,29 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, jsxEl = require(JSXClassic).createElement;
+
+var { default: React} = require($bbcd215f);
+export function SpreadWithTheKey({ className }) {
+ const rest = {};
+
+ return jsxEl("div", {
+ className,
+ ...rest,
+ onClick: () => console.log("click"),
+ key: "spread-with-the-key"
+ }, "Rendered component containing warning");
+}
+
+export function test() {
+ console.assert(React.isValidElement(jsx(SpreadWithTheKey, {
+ className: "foo"
+ }, undefined, false, undefined, this)));
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/spread_with_key.tsx.map
diff --git a/test/snapshots/spread_with_key.hmr.debug.tsx b/test/snapshots/spread_with_key.hmr.debug.tsx
new file mode 100644
index 000000000..0123867ee
--- /dev/null
+++ b/test/snapshots/spread_with_key.hmr.debug.tsx
@@ -0,0 +1,56 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, jsxEl = require(JSXClassic).createElement;
+
+var { default: React} = require($bbcd215f);
+var hmr = new FastHMR(2717584935, "spread_with_key.tsx", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ function SpreadWithTheKey({ className }) {
+ const rest = {};
+ return jsxEl("div", {
+ className,
+ ...rest,
+ onClick: () => console.log("click"),
+ key: "spread-with-the-key"
+ }, "Rendered component containing warning");
+ }
+ function test() {
+ console.assert(React.isValidElement(jsx(SpreadWithTheKey, {
+ className: "foo"
+ }, undefined, false, undefined, this)));
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ SpreadWithTheKey: () => SpreadWithTheKey,
+ test: () => test
+ });
+})();
+var $$hmr_SpreadWithTheKey = hmr.exports.SpreadWithTheKey, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_SpreadWithTheKey = exports.SpreadWithTheKey;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_SpreadWithTheKey as SpreadWithTheKey,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/spread_with_key.tsx.map
diff --git a/test/snapshots/spread_with_key.hmr.tsx b/test/snapshots/spread_with_key.hmr.tsx
new file mode 100644
index 000000000..37cb57b34
--- /dev/null
+++ b/test/snapshots/spread_with_key.hmr.tsx
@@ -0,0 +1,53 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, jsxEl = require(JSXClassic).createElement;
+var { default: React} = require($bbcd215f);
+var hmr = new FastHMR(2717584935, "spread_with_key.tsx", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ function SpreadWithTheKey({ className }) {
+ const rest = {};
+ return jsxEl("div", {
+ className,
+ ...rest,
+ onClick: () => console.log("click"),
+ key: "spread-with-the-key"
+ }, "Rendered component containing warning");
+ }
+ function test() {
+ console.assert(React.isValidElement(jsx(SpreadWithTheKey, {
+ className: "foo"
+ }, undefined, false, undefined, this)));
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ SpreadWithTheKey: () => SpreadWithTheKey,
+ test: () => test
+ });
+})();
+var $$hmr_SpreadWithTheKey = hmr.exports.SpreadWithTheKey, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_SpreadWithTheKey = exports.SpreadWithTheKey;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_SpreadWithTheKey as SpreadWithTheKey,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/spread_with_key.tsx.map
diff --git a/test/snapshots/spread_with_key.tsx b/test/snapshots/spread_with_key.tsx
new file mode 100644
index 000000000..e096a76c8
--- /dev/null
+++ b/test/snapshots/spread_with_key.tsx
@@ -0,0 +1,29 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, jsxEl = require(JSXClassic).createElement;
+
+var { default: React} = require($bbcd215f);
+export function SpreadWithTheKey({ className }) {
+ const rest = {};
+
+ return jsxEl("div", {
+ className,
+ ...rest,
+ onClick: () => console.log("click"),
+ key: "spread-with-the-key"
+ }, "Rendered component containing warning");
+}
+
+export function test() {
+ console.assert(React.isValidElement(jsx(SpreadWithTheKey, {
+ className: "foo"
+ }, undefined, false, undefined, this)));
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/spread_with_key.tsx.map
diff --git a/test/snapshots/string-escapes.debug.js b/test/snapshots/string-escapes.debug.js
new file mode 100644
index 000000000..9084bc362
--- /dev/null
+++ b/test/snapshots/string-escapes.debug.js
@@ -0,0 +1,463 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+
+var tab = "\t";
+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\xA0null byte",
+ "\uD83D\uDE0A": "\uD83D\uDE0A",
+ "\uD83D\uDE03": "\uD83D\uDE03",
+ "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F": "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F",
+ "\u32E1": "\u32E1",
+ "\u263A": "\u263A",
+ "γ‚·": "\u30B7",
+ "\uD83D\uDC4B": "\uD83D\uDC4B",
+ f,
+ "\u2639": "\u2639",
+ "\u263B": "\u263B",
+ 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 = jsx(JSXFrag, {
+ children: [
+ '"\\r\\n": "\\r\\n", "\\n": "\\n", "\\t": "\\t", "\\f": "\\f", "\\v": "\\v", "\\u2028": "\\u2028", "\\u2029": "\\u2029", "\uD83D\uDE0A": "\uD83D\uDE0A", "\uD83D\uDE03": "\uD83D\uDE03", "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F": "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F", "\u32E1": "\u32E1", "\u263A": "\u263A", \u30B7: "\u30B7", "\uD83D\uDC4B": "\uD83D\uDC4B", f: f, "\u2639": "\u2639", "\u263B": "\u263B", children: 123,',
+ jsx("div", {
+ data: "\r\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\t"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\f"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\v"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\\u2028"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\\u2029"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDE0A"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDE03"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u32E1"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u263A"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u30B7"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDC4B"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u2639"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u263B"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "123"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\r\n", false, undefined, this),
+ jsx("div", {
+ children: "\r\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\n", false, undefined, this),
+ jsx("div", {
+ children: "\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\t", false, undefined, this),
+ jsx("div", {
+ children: "\t"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\f", false, undefined, this),
+ jsx("div", {
+ children: "\f"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\v", false, undefined, this),
+ jsx("div", {
+ children: "\v"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\\u2028", false, undefined, this),
+ jsx("div", {
+ children: "\u2028"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\\u2029", false, undefined, this),
+ jsx("div", {
+ children: "\u2029"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDE0A", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDE0A"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDE03", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDE03"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u32E1", false, undefined, this),
+ jsx("div", {
+ children: "\u32E1"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u263A", false, undefined, this),
+ jsx("div", {
+ children: "\u263A"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u30B7", false, undefined, this),
+ jsx("div", {
+ children: "\u30B7"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDC4B", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDC4B"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u2639", false, undefined, this),
+ jsx("div", {
+ children: "\u2639"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u263B", false, undefined, this),
+ jsx("div", {
+ children: "\u263B"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "123", false, undefined, this),
+ jsx("div", {
+ children: "123"
+ }, undefined, false, undefined, this)
+ ]
+}, undefined, true, undefined, this);
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/string-escapes.js.map
diff --git a/test/snapshots/string-escapes.hmr.debug.js b/test/snapshots/string-escapes.hmr.debug.js
new file mode 100644
index 000000000..a247fc16d
--- /dev/null
+++ b/test/snapshots/string-escapes.hmr.debug.js
@@ -0,0 +1,492 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+
+var hmr = new FastHMR(2482749838, "string-escapes.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var tab = "\t";
+ 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\xA0null byte",
+ "\uD83D\uDE0A": "\uD83D\uDE0A",
+ "\uD83D\uDE03": "\uD83D\uDE03",
+ "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F": "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F",
+ "\u32E1": "\u32E1",
+ "\u263A": "\u263A",
+ "γ‚·": "\u30B7",
+ "\uD83D\uDC4B": "\uD83D\uDC4B",
+ f,
+ "\u2639": "\u2639",
+ "\u263B": "\u263B",
+ 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
+ ];
+ var jsxVariants = jsx(JSXFrag, {
+ children: [
+ '"\\r\\n": "\\r\\n", "\\n": "\\n", "\\t": "\\t", "\\f": "\\f", "\\v": "\\v", "\\u2028": "\\u2028", "\\u2029": "\\u2029", "\uD83D\uDE0A": "\uD83D\uDE0A", "\uD83D\uDE03": "\uD83D\uDE03", "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F": "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F", "\u32E1": "\u32E1", "\u263A": "\u263A", \u30B7: "\u30B7", "\uD83D\uDC4B": "\uD83D\uDC4B", f: f, "\u2639": "\u2639", "\u263B": "\u263B", children: 123,',
+ jsx("div", {
+ data: "\r\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\t"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\f"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\v"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\\u2028"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\\u2029"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDE0A"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDE03"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u32E1"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u263A"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u30B7"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDC4B"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u2639"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u263B"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "123"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\r\n", false, undefined, this),
+ jsx("div", {
+ children: "\r\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\n", false, undefined, this),
+ jsx("div", {
+ children: "\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\t", false, undefined, this),
+ jsx("div", {
+ children: "\t"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\f", false, undefined, this),
+ jsx("div", {
+ children: "\f"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\v", false, undefined, this),
+ jsx("div", {
+ children: "\v"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\\u2028", false, undefined, this),
+ jsx("div", {
+ children: "\u2028"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\\u2029", false, undefined, this),
+ jsx("div", {
+ children: "\u2029"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDE0A", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDE0A"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDE03", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDE03"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u32E1", false, undefined, this),
+ jsx("div", {
+ children: "\u32E1"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u263A", false, undefined, this),
+ jsx("div", {
+ children: "\u263A"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u30B7", false, undefined, this),
+ jsx("div", {
+ children: "\u30B7"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDC4B", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDC4B"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u2639", false, undefined, this),
+ jsx("div", {
+ children: "\u2639"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u263B", false, undefined, this),
+ jsx("div", {
+ children: "\u263B"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "123", false, undefined, this),
+ jsx("div", {
+ children: "123"
+ }, undefined, false, undefined, this)
+ ]
+ }, undefined, true, undefined, this);
+ const foo = () => {
+ };
+ const Bar = foo("a", {
+ children: 123
+ });
+ const carriage = obj["\r\n"];
+ const newline = obj["\n"];
+ 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);
+ }
+ hmr.exportAll({
+ jsxVariants: () => jsxVariants,
+ obj: () => obj,
+ test: () => test
+ });
+})();
+var $$hmr_jsxVariants = hmr.exports.jsxVariants, $$hmr_obj = hmr.exports.obj, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_jsxVariants = exports.jsxVariants;
+ $$hmr_obj = exports.obj;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_jsxVariants as jsxVariants,
+ $$hmr_obj as obj,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/string-escapes.js.map
diff --git a/test/snapshots/string-escapes.hmr.js b/test/snapshots/string-escapes.hmr.js
new file mode 100644
index 000000000..5847bdf97
--- /dev/null
+++ b/test/snapshots/string-escapes.hmr.js
@@ -0,0 +1,490 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__require as require
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import * as $2f488e5b from "http://localhost:3000/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:3000/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+var hmr = new FastHMR(2482749838, "string-escapes.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var tab = "\t";
+ 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\xA0null byte",
+ "\uD83D\uDE0A": "\uD83D\uDE0A",
+ "\uD83D\uDE03": "\uD83D\uDE03",
+ "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F": "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F",
+ "\u32E1": "\u32E1",
+ "\u263A": "\u263A",
+ "γ‚·": "\u30B7",
+ "\uD83D\uDC4B": "\uD83D\uDC4B",
+ f,
+ "\u2639": "\u2639",
+ "\u263B": "\u263B",
+ 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
+ ];
+ var jsxVariants = jsx(JSXFrag, {
+ children: [
+ '"\\r\\n": "\\r\\n", "\\n": "\\n", "\\t": "\\t", "\\f": "\\f", "\\v": "\\v", "\\u2028": "\\u2028", "\\u2029": "\\u2029", "\uD83D\uDE0A": "\uD83D\uDE0A", "\uD83D\uDE03": "\uD83D\uDE03", "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F": "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F", "\u32E1": "\u32E1", "\u263A": "\u263A", \u30B7: "\u30B7", "\uD83D\uDC4B": "\uD83D\uDC4B", f: f, "\u2639": "\u2639", "\u263B": "\u263B", children: 123,',
+ jsx("div", {
+ data: "\r\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\t"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\f"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\v"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\\u2028"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\\u2029"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDE0A"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDE03"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u32E1"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u263A"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u30B7"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDC4B"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u2639"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u263B"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "123"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\r\n", false, undefined, this),
+ jsx("div", {
+ children: "\r\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\n", false, undefined, this),
+ jsx("div", {
+ children: "\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\t", false, undefined, this),
+ jsx("div", {
+ children: "\t"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\f", false, undefined, this),
+ jsx("div", {
+ children: "\f"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\v", false, undefined, this),
+ jsx("div", {
+ children: "\v"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\\u2028", false, undefined, this),
+ jsx("div", {
+ children: "\u2028"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\\u2029", false, undefined, this),
+ jsx("div", {
+ children: "\u2029"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDE0A", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDE0A"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDE03", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDE03"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u32E1", false, undefined, this),
+ jsx("div", {
+ children: "\u32E1"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u263A", false, undefined, this),
+ jsx("div", {
+ children: "\u263A"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u30B7", false, undefined, this),
+ jsx("div", {
+ children: "\u30B7"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDC4B", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDC4B"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u2639", false, undefined, this),
+ jsx("div", {
+ children: "\u2639"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u263B", false, undefined, this),
+ jsx("div", {
+ children: "\u263B"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "123", false, undefined, this),
+ jsx("div", {
+ children: "123"
+ }, undefined, false, undefined, this)
+ ]
+ }, undefined, true, undefined, this);
+ const foo = () => {
+ };
+ const Bar = foo("a", {
+ children: 123
+ });
+ const carriage = obj["\r\n"];
+ const newline = obj["\n"];
+ 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);
+ }
+ hmr.exportAll({
+ jsxVariants: () => jsxVariants,
+ obj: () => obj,
+ test: () => test
+ });
+})();
+var $$hmr_jsxVariants = hmr.exports.jsxVariants, $$hmr_obj = hmr.exports.obj, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_jsxVariants = exports.jsxVariants;
+ $$hmr_obj = exports.obj;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_jsxVariants as jsxVariants,
+ $$hmr_obj as obj,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/string-escapes.js.map
diff --git a/test/snapshots/string-escapes.js b/test/snapshots/string-escapes.js
new file mode 100644
index 000000000..9084bc362
--- /dev/null
+++ b/test/snapshots/string-escapes.js
@@ -0,0 +1,463 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var JSXClassic = require($bbcd215f);
+var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
+
+var tab = "\t";
+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\xA0null byte",
+ "\uD83D\uDE0A": "\uD83D\uDE0A",
+ "\uD83D\uDE03": "\uD83D\uDE03",
+ "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F": "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F",
+ "\u32E1": "\u32E1",
+ "\u263A": "\u263A",
+ "γ‚·": "\u30B7",
+ "\uD83D\uDC4B": "\uD83D\uDC4B",
+ f,
+ "\u2639": "\u2639",
+ "\u263B": "\u263B",
+ 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 = jsx(JSXFrag, {
+ children: [
+ '"\\r\\n": "\\r\\n", "\\n": "\\n", "\\t": "\\t", "\\f": "\\f", "\\v": "\\v", "\\u2028": "\\u2028", "\\u2029": "\\u2029", "\uD83D\uDE0A": "\uD83D\uDE0A", "\uD83D\uDE03": "\uD83D\uDE03", "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F": "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F", "\u32E1": "\u32E1", "\u263A": "\u263A", \u30B7: "\u30B7", "\uD83D\uDC4B": "\uD83D\uDC4B", f: f, "\u2639": "\u2639", "\u263B": "\u263B", children: 123,',
+ jsx("div", {
+ data: "\r\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\t"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\f"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\v"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\\u2028"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\\u2029"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDE0A"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDE03"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u32E1"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u263A"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u30B7"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\uD83D\uDC4B"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u2639"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "\u263B"
+ }, undefined, false, undefined, this),
+ jsx("div", {
+ data: "123"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\r\n", false, undefined, this),
+ jsx("div", {
+ children: "\r\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\n", false, undefined, this),
+ jsx("div", {
+ children: "\n"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\t", false, undefined, this),
+ jsx("div", {
+ children: "\t"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\f", false, undefined, this),
+ jsx("div", {
+ children: "\f"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\v", false, undefined, this),
+ jsx("div", {
+ children: "\v"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\\u2028", false, undefined, this),
+ jsx("div", {
+ children: "\u2028"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\\u2029", false, undefined, this),
+ jsx("div", {
+ children: "\u2029"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDE0A", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDE0A"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDE03", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDE03"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDD75\uD83C\uDFFD\u200D\u2642\uFE0F"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u32E1", false, undefined, this),
+ jsx("div", {
+ children: "\u32E1"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u263A", false, undefined, this),
+ jsx("div", {
+ children: "\u263A"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u30B7", false, undefined, this),
+ jsx("div", {
+ children: "\u30B7"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\uD83D\uDC4B", false, undefined, this),
+ jsx("div", {
+ children: "\uD83D\uDC4B"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u2639", false, undefined, this),
+ jsx("div", {
+ children: "\u2639"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "\u263B", false, undefined, this),
+ jsx("div", {
+ children: "\u263B"
+ }, undefined, false, undefined, this),
+ jsx("div", {}, "123", false, undefined, this),
+ jsx("div", {
+ children: "123"
+ }, undefined, false, undefined, this)
+ ]
+}, undefined, true, undefined, this);
+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);
+}
+
+//# sourceMappingURL=http://localhost:8080/string-escapes.js.map
diff --git a/test/snapshots/styled-components-output.hmr.js b/test/snapshots/styled-components-output.hmr.js
new file mode 100644
index 000000000..1bf09ed2d
--- /dev/null
+++ b/test/snapshots/styled-components-output.hmr.js
@@ -0,0 +1,67 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/__runtime.js";
+import {
+__require as require
+} from "http://localhost:8080/__runtime.js";
+import {
+__HMRModule as HMR
+} from "http://localhost:8080/__runtime.js";
+import * as JSX from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var jsx = require(JSX).jsxDEV, fileName = "styled-components-output.js";
+
+import * as $3b6c9f54 from "http://localhost:8080/node_modules/styled-components/dist/styled-components.esm.js";
+var { default: styled} = require($3b6c9f54);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var { default: React} = require($bbcd215f);
+Bun.activate(false);
+
+var hmr = new HMR(2972367994, "styled-components-output.js"), exports = hmr.exports;
+(hmr._load = function() {
+ 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;
+ }
+`;
+ function test() {
+ console.assert(React.isValidElement(jsx(ErrorScreenRoot, {}, undefined, true, {
+ fileName,
+ lineNumber: 698
+ }, this)));
+ testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
diff --git a/test/snapshots/styledcomponents-output.debug.js b/test/snapshots/styledcomponents-output.debug.js
new file mode 100644
index 000000000..f3a59d365
--- /dev/null
+++ b/test/snapshots/styledcomponents-output.debug.js
@@ -0,0 +1,63 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+
+import * as $d4051a2e from "http://localhost:8080/node_modules/styled-components/dist/styled-components.browser.esm.js";
+var { default: styled} = require($d4051a2e);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var { default: React} = require($bbcd215f);
+import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
+var { default: ReactDOM} = require($5b3cea55);
+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(jsx(ErrorScreenRoot, {
+ id: "error-el",
+ children: "The react child should have this text"
+ }, undefined, false, undefined, this), 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);
+}
+
+//# sourceMappingURL=http://localhost:8080/styledcomponents-output.js.map
diff --git a/test/snapshots/styledcomponents-output.hmr.debug.js b/test/snapshots/styledcomponents-output.hmr.debug.js
new file mode 100644
index 000000000..027d5f35b
--- /dev/null
+++ b/test/snapshots/styledcomponents-output.hmr.debug.js
@@ -0,0 +1,88 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+
+import * as $d4051a2e from "http://localhost:8080/node_modules/styled-components/dist/styled-components.browser.esm.js";
+var { default: styled} = require($d4051a2e);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var { default: React} = require($bbcd215f);
+import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
+var { default: ReactDOM} = require($5b3cea55);
+var hmr = new FastHMR(1290604342, "styledcomponents-output.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ 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;
+ }
+`;
+ function test() {
+ if (typeof window !== "undefined") {
+ const reactEl = document.createElement("div");
+ document.body.appendChild(reactEl);
+ ReactDOM.render(jsx(ErrorScreenRoot, {
+ id: "error-el",
+ children: "The react child should have this text"
+ }, undefined, false, undefined, this), 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/styledcomponents-output.js.map
diff --git a/test/snapshots/styledcomponents-output.hmr.js b/test/snapshots/styledcomponents-output.hmr.js
new file mode 100644
index 000000000..b39adb87c
--- /dev/null
+++ b/test/snapshots/styledcomponents-output.hmr.js
@@ -0,0 +1,85 @@
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+import * as $d4051a2e from "http://localhost:8080/node_modules/styled-components/dist/styled-components.browser.esm.js";
+var { default: styled} = require($d4051a2e);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var { default: React} = require($bbcd215f);
+import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
+var { default: ReactDOM} = require($5b3cea55);
+var hmr = new FastHMR(1290604342, "styledcomponents-output.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ 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;
+ }
+`;
+ function test() {
+ if (typeof window !== "undefined") {
+ const reactEl = document.createElement("div");
+ document.body.appendChild(reactEl);
+ ReactDOM.render(jsx(ErrorScreenRoot, {
+ id: "error-el",
+ children: "The react child should have this text"
+ }, undefined, false, undefined, this), 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/styledcomponents-output.js.map
diff --git a/test/snapshots/styledcomponents-output.js b/test/snapshots/styledcomponents-output.js
new file mode 100644
index 000000000..f3a59d365
--- /dev/null
+++ b/test/snapshots/styledcomponents-output.js
@@ -0,0 +1,63 @@
+import {
+__require as require
+} from "http://localhost:8080/bun:wrap";
+import * as $2f488e5b from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
+var JSX = require($2f488e5b);
+var jsx = require(JSX).jsxDEV;
+
+import * as $d4051a2e from "http://localhost:8080/node_modules/styled-components/dist/styled-components.browser.esm.js";
+var { default: styled} = require($d4051a2e);
+import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
+var { default: React} = require($bbcd215f);
+import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
+var { default: ReactDOM} = require($5b3cea55);
+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(jsx(ErrorScreenRoot, {
+ id: "error-el",
+ children: "The react child should have this text"
+ }, undefined, false, undefined, this), 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);
+}
+
+//# sourceMappingURL=http://localhost:8080/styledcomponents-output.js.map
diff --git a/test/snapshots/template-literal.debug.js b/test/snapshots/template-literal.debug.js
new file mode 100644
index 000000000..2c0d55e8e
--- /dev/null
+++ b/test/snapshots/template-literal.debug.js
@@ -0,0 +1,39 @@
+const css = (templ) => templ.toString();
+const fooNoBracesUTF8 = css`
+ before
+ /* */
+ after
+`;
+const fooNoBracesUT16 = css`
+ before
+ \uD83D\uDE43
+ after
+`;
+const fooUTF8 = css`
+ before
+ ${true}
+ after
+
+`;
+const fooUTF16 = css`
+ before
+ \uD83D\uDE43 ${true}
+ after
+
+`;
+const templateLiteralWhichDefinesAFunction = ((...args) => args[args.length - 1]().toString())`
+ before
+ \uD83D\uDE43 ${() => 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);
+}
+
+//# sourceMappingURL=http://localhost:8080/template-literal.js.map
diff --git a/test/snapshots/template-literal.hmr.debug.js b/test/snapshots/template-literal.hmr.debug.js
new file mode 100644
index 000000000..b5a8ac52b
--- /dev/null
+++ b/test/snapshots/template-literal.hmr.debug.js
@@ -0,0 +1,65 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(2201713056, "template-literal.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ const css = (templ) => templ.toString();
+ const fooNoBracesUTF8 = css`
+ before
+ /* */
+ after
+`;
+ const fooNoBracesUT16 = css`
+ before
+ \uD83D\uDE43
+ after
+`;
+ const fooUTF8 = css`
+ before
+ ${true}
+ after
+
+`;
+ const fooUTF16 = css`
+ before
+ \uD83D\uDE43 ${true}
+ after
+
+`;
+ const templateLiteralWhichDefinesAFunction = ((...args) => args[args.length - 1]().toString())`
+ before
+ \uD83D\uDE43 ${() => true}
+ after
+
+`;
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/template-literal.js.map
diff --git a/test/snapshots/template-literal.hmr.js b/test/snapshots/template-literal.hmr.js
new file mode 100644
index 000000000..0baee2be1
--- /dev/null
+++ b/test/snapshots/template-literal.hmr.js
@@ -0,0 +1,63 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(2201713056, "template-literal.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ const css = (templ) => templ.toString();
+ const fooNoBracesUTF8 = css`
+ before
+ /* */
+ after
+`;
+ const fooNoBracesUT16 = css`
+ before
+ \uD83D\uDE43
+ after
+`;
+ const fooUTF8 = css`
+ before
+ ${true}
+ after
+
+`;
+ const fooUTF16 = css`
+ before
+ \uD83D\uDE43 ${true}
+ after
+
+`;
+ const templateLiteralWhichDefinesAFunction = ((...args) => args[args.length - 1]().toString())`
+ before
+ \uD83D\uDE43 ${() => true}
+ after
+
+`;
+ 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);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/template-literal.js.map
diff --git a/test/snapshots/template-literal.js b/test/snapshots/template-literal.js
new file mode 100644
index 000000000..2c0d55e8e
--- /dev/null
+++ b/test/snapshots/template-literal.js
@@ -0,0 +1,39 @@
+const css = (templ) => templ.toString();
+const fooNoBracesUTF8 = css`
+ before
+ /* */
+ after
+`;
+const fooNoBracesUT16 = css`
+ before
+ \uD83D\uDE43
+ after
+`;
+const fooUTF8 = css`
+ before
+ ${true}
+ after
+
+`;
+const fooUTF16 = css`
+ before
+ \uD83D\uDE43 ${true}
+ after
+
+`;
+const templateLiteralWhichDefinesAFunction = ((...args) => args[args.length - 1]().toString())`
+ before
+ \uD83D\uDE43 ${() => 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);
+}
+
+//# sourceMappingURL=http://localhost:8080/template-literal.js.map
diff --git a/test/snapshots/ts-fallback-rewrite-works.debug.js b/test/snapshots/ts-fallback-rewrite-works.debug.js
new file mode 100644
index 000000000..4b0789922
--- /dev/null
+++ b/test/snapshots/ts-fallback-rewrite-works.debug.js
@@ -0,0 +1,5 @@
+export function test() {
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/ts-fallback-rewrite-works.js.map
diff --git a/test/snapshots/ts-fallback-rewrite-works.hmr.debug.js b/test/snapshots/ts-fallback-rewrite-works.hmr.debug.js
new file mode 100644
index 000000000..1d59ba0d5
--- /dev/null
+++ b/test/snapshots/ts-fallback-rewrite-works.hmr.debug.js
@@ -0,0 +1,28 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__HMRModule as HMR
+} from "http://localhost:8080/bun:wrap";
+var hmr = new HMR(421762902, "ts-fallback-rewrite-works.ts"), exports = hmr.exports;
+
+(hmr._load = function() {
+ function test() {
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/ts-fallback-rewrite-works.js.map
diff --git a/test/snapshots/ts-fallback-rewrite-works.hmr.js b/test/snapshots/ts-fallback-rewrite-works.hmr.js
new file mode 100644
index 000000000..09f26c952
--- /dev/null
+++ b/test/snapshots/ts-fallback-rewrite-works.hmr.js
@@ -0,0 +1,26 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__HMRModule as HMR
+} from "http://localhost:3000/bun:wrap";
+var hmr = new HMR(421762902, "ts-fallback-rewrite-works.ts"), exports = hmr.exports;
+(hmr._load = function() {
+ function test() {
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/ts-fallback-rewrite-works.js.map
diff --git a/test/snapshots/ts-fallback-rewrite-works.js b/test/snapshots/ts-fallback-rewrite-works.js
new file mode 100644
index 000000000..4b0789922
--- /dev/null
+++ b/test/snapshots/ts-fallback-rewrite-works.js
@@ -0,0 +1,5 @@
+export function test() {
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/ts-fallback-rewrite-works.js.map
diff --git a/test/snapshots/tsx-fallback-rewrite-works.debug.js b/test/snapshots/tsx-fallback-rewrite-works.debug.js
new file mode 100644
index 000000000..5de13ced2
--- /dev/null
+++ b/test/snapshots/tsx-fallback-rewrite-works.debug.js
@@ -0,0 +1,5 @@
+export function test() {
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/tsx-fallback-rewrite-works.js.map
diff --git a/test/snapshots/tsx-fallback-rewrite-works.hmr.debug.js b/test/snapshots/tsx-fallback-rewrite-works.hmr.debug.js
new file mode 100644
index 000000000..ea15fc922
--- /dev/null
+++ b/test/snapshots/tsx-fallback-rewrite-works.hmr.debug.js
@@ -0,0 +1,31 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(2117426367, "tsx-fallback-rewrite-works.tsx", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ function test() {
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/tsx-fallback-rewrite-works.js.map
diff --git a/test/snapshots/tsx-fallback-rewrite-works.hmr.js b/test/snapshots/tsx-fallback-rewrite-works.hmr.js
new file mode 100644
index 000000000..b33df25c4
--- /dev/null
+++ b/test/snapshots/tsx-fallback-rewrite-works.hmr.js
@@ -0,0 +1,29 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+var hmr = new FastHMR(2117426367, "tsx-fallback-rewrite-works.tsx", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ function test() {
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/tsx-fallback-rewrite-works.js.map
diff --git a/test/snapshots/tsx-fallback-rewrite-works.js b/test/snapshots/tsx-fallback-rewrite-works.js
new file mode 100644
index 000000000..5de13ced2
--- /dev/null
+++ b/test/snapshots/tsx-fallback-rewrite-works.js
@@ -0,0 +1,5 @@
+export function test() {
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/tsx-fallback-rewrite-works.js.map
diff --git a/test/snapshots/type-only-imports.debug.ts b/test/snapshots/type-only-imports.debug.ts
new file mode 100644
index 000000000..0a1eb4249
--- /dev/null
+++ b/test/snapshots/type-only-imports.debug.ts
@@ -0,0 +1,9 @@
+export const baconator = true;
+export const SilentSymbolCollisionsAreOkayInTypeScript = true;
+export function test() {
+ console.assert(SilentSymbolCollisionsAreOkayInTypeScript);
+ console.assert(baconator);
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/type-only-imports.ts.map
diff --git a/test/snapshots/type-only-imports.hmr.debug.ts b/test/snapshots/type-only-imports.hmr.debug.ts
new file mode 100644
index 000000000..ff8f4864b
--- /dev/null
+++ b/test/snapshots/type-only-imports.hmr.debug.ts
@@ -0,0 +1,38 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__HMRModule as HMR
+} from "http://localhost:8080/bun:wrap";
+var hmr = new HMR(650094581, "type-only-imports.ts"), exports = hmr.exports;
+
+(hmr._load = function() {
+ var baconator = true;
+ var SilentSymbolCollisionsAreOkayInTypeScript = true;
+ function test() {
+ console.assert(SilentSymbolCollisionsAreOkayInTypeScript);
+ console.assert(baconator);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ baconator: () => baconator,
+ SilentSymbolCollisionsAreOkayInTypeScript: () => SilentSymbolCollisionsAreOkayInTypeScript,
+ test: () => test
+ });
+})();
+var $$hmr_baconator = hmr.exports.baconator, $$hmr_SilentSymbolCollisionsAreOkayInTypeScript = hmr.exports.SilentSymbolCollisionsAreOkayInTypeScript, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_baconator = exports.baconator;
+ $$hmr_SilentSymbolCollisionsAreOkayInTypeScript = exports.SilentSymbolCollisionsAreOkayInTypeScript;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_baconator as baconator,
+ $$hmr_SilentSymbolCollisionsAreOkayInTypeScript as SilentSymbolCollisionsAreOkayInTypeScript,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/type-only-imports.ts.map
diff --git a/test/snapshots/type-only-imports.hmr.ts b/test/snapshots/type-only-imports.hmr.ts
new file mode 100644
index 000000000..f732881b7
--- /dev/null
+++ b/test/snapshots/type-only-imports.hmr.ts
@@ -0,0 +1,36 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__HMRModule as HMR
+} from "http://localhost:3000/bun:wrap";
+var hmr = new HMR(650094581, "type-only-imports.ts"), exports = hmr.exports;
+(hmr._load = function() {
+ var baconator = true;
+ var SilentSymbolCollisionsAreOkayInTypeScript = true;
+ function test() {
+ console.assert(SilentSymbolCollisionsAreOkayInTypeScript);
+ console.assert(baconator);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ baconator: () => baconator,
+ SilentSymbolCollisionsAreOkayInTypeScript: () => SilentSymbolCollisionsAreOkayInTypeScript,
+ test: () => test
+ });
+})();
+var $$hmr_baconator = hmr.exports.baconator, $$hmr_SilentSymbolCollisionsAreOkayInTypeScript = hmr.exports.SilentSymbolCollisionsAreOkayInTypeScript, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_baconator = exports.baconator;
+ $$hmr_SilentSymbolCollisionsAreOkayInTypeScript = exports.SilentSymbolCollisionsAreOkayInTypeScript;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_baconator as baconator,
+ $$hmr_SilentSymbolCollisionsAreOkayInTypeScript as SilentSymbolCollisionsAreOkayInTypeScript,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/type-only-imports.ts.map
diff --git a/test/snapshots/type-only-imports.ts b/test/snapshots/type-only-imports.ts
new file mode 100644
index 000000000..0a1eb4249
--- /dev/null
+++ b/test/snapshots/type-only-imports.ts
@@ -0,0 +1,9 @@
+export const baconator = true;
+export const SilentSymbolCollisionsAreOkayInTypeScript = true;
+export function test() {
+ console.assert(SilentSymbolCollisionsAreOkayInTypeScript);
+ console.assert(baconator);
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/type-only-imports.ts.map
diff --git a/test/snapshots/unicode-identifiers.debug.js b/test/snapshots/unicode-identifiers.debug.js
new file mode 100644
index 000000000..85b76376e
--- /dev/null
+++ b/test/snapshots/unicode-identifiers.debug.js
@@ -0,0 +1,16 @@
+var Ξ΅ = 0.000001;
+var Ξ΅2 = Ξ΅ * Ξ΅;
+var Ο€ = Math.PI;
+var Ο„ = 2 * Ο€;
+var τΡ = Ο„ - Ξ΅;
+var halfΟ€ = Ο€ / 2;
+var d3_radians = Ο€ / 180;
+var d3_degrees = 180 / Ο€;
+
+export { d3_radians };
+export function test() {
+ console.assert(Ξ΅ === 0.000001);
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/unicode-identifiers.js.map
diff --git a/test/snapshots/unicode-identifiers.hmr.debug.js b/test/snapshots/unicode-identifiers.hmr.debug.js
new file mode 100644
index 000000000..53fbb30d5
--- /dev/null
+++ b/test/snapshots/unicode-identifiers.hmr.debug.js
@@ -0,0 +1,43 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(1398361736, "unicode-identifiers.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var Ξ΅ = 0.000001;
+ var Ξ΅2 = Ξ΅ * Ξ΅;
+ var Ο€ = Math.PI;
+ var Ο„ = 2 * Ο€;
+ var τΡ = Ο„ - Ξ΅;
+ var halfΟ€ = Ο€ / 2;
+ var d3_radians = Ο€ / 180;
+ var d3_degrees = 180 / Ο€;
+ function test() {
+ console.assert(Ξ΅ === 0.000001);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ d3_radians: () => d3_radians,
+ test: () => test
+ });
+})();
+var $$hmr_d3_radians = hmr.exports.d3_radians, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_d3_radians = exports.d3_radians;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_d3_radians as d3_radians,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/unicode-identifiers.js.map
diff --git a/test/snapshots/unicode-identifiers.hmr.js b/test/snapshots/unicode-identifiers.hmr.js
new file mode 100644
index 000000000..be84e436e
--- /dev/null
+++ b/test/snapshots/unicode-identifiers.hmr.js
@@ -0,0 +1,41 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:3000/bun:wrap";
+Bun.activate(true);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:3000/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:3000/bun:wrap";
+var hmr = new FastHMR(1398361736, "unicode-identifiers.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var Ξ΅ = 0.000001;
+ var Ξ΅2 = Ξ΅ * Ξ΅;
+ var Ο€ = Math.PI;
+ var Ο„ = 2 * Ο€;
+ var τΡ = Ο„ - Ξ΅;
+ var halfΟ€ = Ο€ / 2;
+ var d3_radians = Ο€ / 180;
+ var d3_degrees = 180 / Ο€;
+ function test() {
+ console.assert(Ξ΅ === 0.000001);
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ d3_radians: () => d3_radians,
+ test: () => test
+ });
+})();
+var $$hmr_d3_radians = hmr.exports.d3_radians, $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_d3_radians = exports.d3_radians;
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_d3_radians as d3_radians,
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:3000/unicode-identifiers.js.map
diff --git a/test/snapshots/unicode-identifiers.js b/test/snapshots/unicode-identifiers.js
new file mode 100644
index 000000000..85b76376e
--- /dev/null
+++ b/test/snapshots/unicode-identifiers.js
@@ -0,0 +1,16 @@
+var Ξ΅ = 0.000001;
+var Ξ΅2 = Ξ΅ * Ξ΅;
+var Ο€ = Math.PI;
+var Ο„ = 2 * Ο€;
+var τΡ = Ο„ - Ξ΅;
+var halfΟ€ = Ο€ / 2;
+var d3_radians = Ο€ / 180;
+var d3_degrees = 180 / Ο€;
+
+export { d3_radians };
+export function test() {
+ console.assert(Ξ΅ === 0.000001);
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/unicode-identifiers.js.map
diff --git a/test/snapshots/void-shouldnt-delete-call-expressions.debug.js b/test/snapshots/void-shouldnt-delete-call-expressions.debug.js
new file mode 100644
index 000000000..5620ead56
--- /dev/null
+++ b/test/snapshots/void-shouldnt-delete-call-expressions.debug.js
@@ -0,0 +1,12 @@
+var was_called = false;
+function thisShouldBeCalled() {
+ was_called = true;
+}
+thisShouldBeCalled();
+export function test() {
+ if (!was_called)
+ throw new Error("Expected thisShouldBeCalled to be called");
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/void-shouldnt-delete-call-expressions.js.map
diff --git a/test/snapshots/void-shouldnt-delete-call-expressions.hmr.debug.js b/test/snapshots/void-shouldnt-delete-call-expressions.hmr.debug.js
new file mode 100644
index 000000000..bbb0a451c
--- /dev/null
+++ b/test/snapshots/void-shouldnt-delete-call-expressions.hmr.debug.js
@@ -0,0 +1,38 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(true);
+
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(635901064, "void-shouldnt-delete-call-expressions.js", FastRefresh), exports = hmr.exports;
+
+(hmr._load = function() {
+ var was_called = false;
+ function thisShouldBeCalled() {
+ was_called = true;
+ }
+ thisShouldBeCalled();
+ function test() {
+ if (!was_called)
+ throw new Error("Expected thisShouldBeCalled to be called");
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/void-shouldnt-delete-call-expressions.js.map
diff --git a/test/snapshots/void-shouldnt-delete-call-expressions.hmr.js b/test/snapshots/void-shouldnt-delete-call-expressions.hmr.js
new file mode 100644
index 000000000..f2a1dbf18
--- /dev/null
+++ b/test/snapshots/void-shouldnt-delete-call-expressions.hmr.js
@@ -0,0 +1,36 @@
+import {
+__HMRClient as Bun
+} from "http://localhost:8080/bun:wrap";
+Bun.activate(false);
+import {
+__FastRefreshModule as FastHMR
+} from "http://localhost:8080/bun:wrap";
+import {
+__FastRefreshRuntime as FastRefresh
+} from "http://localhost:8080/bun:wrap";
+var hmr = new FastHMR(635901064, "void-shouldnt-delete-call-expressions.js", FastRefresh), exports = hmr.exports;
+(hmr._load = function() {
+ var was_called = false;
+ function thisShouldBeCalled() {
+ was_called = true;
+ }
+ thisShouldBeCalled();
+ function test() {
+ if (!was_called)
+ throw new Error("Expected thisShouldBeCalled to be called");
+ return testDone(import.meta.url);
+ }
+ hmr.exportAll({
+ test: () => test
+ });
+})();
+var $$hmr_test = hmr.exports.test;
+hmr._update = function(exports) {
+ $$hmr_test = exports.test;
+};
+
+export {
+ $$hmr_test as test
+};
+
+//# sourceMappingURL=http://localhost:8080/void-shouldnt-delete-call-expressions.js.map
diff --git a/test/snapshots/void-shouldnt-delete-call-expressions.js b/test/snapshots/void-shouldnt-delete-call-expressions.js
new file mode 100644
index 000000000..5620ead56
--- /dev/null
+++ b/test/snapshots/void-shouldnt-delete-call-expressions.js
@@ -0,0 +1,12 @@
+var was_called = false;
+function thisShouldBeCalled() {
+ was_called = true;
+}
+thisShouldBeCalled();
+export function test() {
+ if (!was_called)
+ throw new Error("Expected thisShouldBeCalled to be called");
+ return testDone(import.meta.url);
+}
+
+//# sourceMappingURL=http://localhost:8080/void-shouldnt-delete-call-expressions.js.map
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";