Compare commits

...

179 Commits

Author SHA1 Message Date
Jarred Sumner
4ee2fdf1c6 uname 2021-10-06 19:32:32 -07:00
Jarred Sumner
cd273daa1b Missing @TypeOf 2021-10-06 19:31:19 -07:00
Jarred Sumner
c2e9d49f69 oops 2021-10-06 19:29:50 -07:00
Jarred Sumner
38a9c92eec Bump it 2021-10-06 19:28:44 -07:00
Jarred Sumner
1d0f442718 📷 2021-10-06 19:26:43 -07:00
Jarred Sumner
1e8babe185 HTTP paths must resolve from ./$PROJECT_ROOT unless explicitly marked absolute.
This fixes the issue with deeply nested PNPM workspace packages. Happened when using @emotion/react inside a PNPM workspace when @emotion/react was hoisted to the workspace root but react was in a child node_modules folder. It would fail to resolve `"react/jsx-dev-runtime"` because it didn't exist in any node_modules folder relative to `@emotion/react`'s real path.
2021-10-06 19:26:28 -07:00
Jarred Sumner
69d3b5ca60 Update browser.js 2021-10-06 19:21:34 -07:00
Jarred Sumner
a493c18193 Fix JSX transform edgecase with static children 2021-10-06 19:21:26 -07:00
Jarred Sumner
5370ea71c0 Add support for reading JSX config from tsconfig.json 2021-10-06 16:49:26 -07:00
Jarred Sumner
0afec7739b Update README.md 2021-10-05 23:09:57 -07:00
Jarred Sumner
a7173d54ce Update README.md 2021-10-05 23:08:11 -07:00
Jarred Sumner
3b10cfae80 analytics is good enough for now 2021-10-05 23:08:06 -07:00
Jarred Sumner
bd14ad9e6e Async analytics works now
Requests are ~60 bytes and the thread mostly sleeps, so it should be pretty low overhead overall.
2021-10-05 17:50:05 -07:00
Jarred Sumner
9507cd8ed6 [fetch] Fix bug with HTTP request bodies 2021-10-05 17:45:32 -07:00
Jarred Sumner
dfe74cb5c4 Add BUN_DISABLE_ANALYTICS flag to disable analytics and automatically disable analytics when running inside hyperfine 2021-10-05 03:11:35 -07:00
Jarred Sumner
00e7b7c3d5 Simple analytics 2021-10-05 02:27:49 -07:00
Jarred SUmner
d2be50bf4d Merge branch 'main' of github.com:Jarred-Sumner/bun into main 2021-10-04 20:42:17 -07:00
Jarred SUmner
f0f3d6d4eb Statically link libicu on Linux so it doesn't require installing icu separately.
this doubles the binary size :(
2021-10-04 20:41:27 -07:00
Jarred SUmner
21d918921a memfd experiment did not yield perf gains on Linux
I suspect the reason why is because we were already using tmpfs. So it was already writing to an in-memory file. O_TMPFILE doesn't seem to do anything for us either here.
2021-10-04 20:01:05 -07:00
Jarred Sumner
55095edee6 Don't pass O_EXCL 2021-10-04 19:07:19 -07:00
Jarred Sumner
6a7deab74d O_TMPFILE 2021-10-04 19:00:18 -07:00
Jarred Sumner
7db27f11d0 memfd_create does not actually make it faster 2021-10-04 18:58:31 -07:00
Jarred Sumner
3ebb4feb98 Attempt to optimize bun bun on Linux by using memfd_create and copying the resulting file via sendfile() 2021-10-04 18:37:51 -07:00
Jarred Sumner
e8dab9bfcf Fix moving files across mount points 2021-10-04 15:35:08 -07:00
Jarred Sumner
dc3eee44a9 Bump 2021-10-04 04:54:23 -07:00
Jarred Sumner
9e8463af33 Bump 2021-10-04 04:31:43 -07:00
Jarred Sumner
dd2bdd09db Bump 2021-10-04 03:33:54 -07:00
Jarred Sumner
0eb3c1d393 Improve Bun's performance by 5%
By making E.Identifier not a pointer, we improve performance by 5%. Heap allocations are bad
2021-10-04 03:28:55 -07:00
Jarred SUmner
cb6a1b7225 Use covid19 example 2021-10-03 23:53:57 -07:00
Jarred SUmner
38c73788e1 Bump 2021-10-03 21:55:50 -07:00
Jarred Sumner
2c89122ce9 Update Makefile 2021-10-03 21:53:21 -07:00
Jarred Sumner
2eae013ebf Update Makefile 2021-10-03 21:50:27 -07:00
Jarred Sumner
1247a9c93d Update Makefile 2021-10-03 21:49:26 -07:00
Jarred Sumner
5c6dd19826 Update Makefile 2021-10-03 21:49:11 -07:00
Jarred Sumner
9d0ee5c5cd Update Makefile 2021-10-03 21:47:34 -07:00
Jarred Sumner
3affc2a2d8 Update Makefile 2021-10-03 21:46:13 -07:00
Jarred Sumner
02bdaa6d10 Fix tmpdir on linux 2021-10-03 21:43:10 -07:00
Jarred Sumner
aee263d050 Update linux build instructions 2021-10-03 21:21:54 -07:00
Jarred Sumner
7ac4abf8a0 Create separate profile binary and strip debug symbols 2021-10-03 20:40:04 -07:00
Jarred Sumner
139622e0b8 llvm-strip 2021-10-03 20:36:59 -07:00
Jarred Sumner
aaa4aaf53f Fix makefile issue 2021-10-03 20:33:47 -07:00
Jarred Sumner
73c27a9a25 Fix various macOS-specific compile errors and run zig fmt 2021-10-03 20:26:54 -07:00
Jarred SUmner
82bf89a946 1% perf improvements on Linux 2021-10-03 18:49:31 -07:00
Jarred SUmner
f4a4e793aa Add Three.js benchmark 2021-10-03 02:22:00 -07:00
Jarred SUmner
cdabcfd9d0 Linux works now. 2021-10-02 22:54:19 -07:00
Jarred Sumner
ac7a96b088 Add support for INotify-based filesystem watcher 2021-10-01 22:41:59 -07:00
Jarred Sumner
6932f3d543 Merge branch 'jarred/linux' of github.com:Jarred-Sumner/bun into jarred/linux 2021-10-01 15:08:14 -07:00
Jarred SUmner
222027991f Build stuff 2021-10-01 15:05:34 -07:00
Jarred Sumner
5bb5091fe0 Bump webkit 2021-10-01 15:02:17 -07:00
Jarred Sumner
c8127d0ae6 Split out the macOS specific parts 2021-10-01 02:06:35 -07:00
Jarred Sumner
8764fa6d4e Update README.md 2021-09-30 23:37:33 -07:00
Jarred Sumner
86b7b5b8d8 Update README.md 2021-09-30 23:37:03 -07:00
Jarred Sumner
127426f506 Update README.md 2021-09-30 23:34:20 -07:00
Jarred Sumner
09cc970b9e Update README.md 2021-09-30 23:33:28 -07:00
Jarred Sumner
03f7c5be1f Fix up readme 2021-09-30 23:29:19 -07:00
Jarred Sumner
4ecf513662 Bump version 2021-09-30 23:22:35 -07:00
Jarred Sumner
76b450386f Add a readme 2021-09-30 23:22:28 -07:00
Jarred Sumner
38a54898a3 Bump build-id 2021-09-30 22:38:03 -07:00
Jarred Sumner
147d1f3951 runtime.version 2021-09-30 22:37:57 -07:00
Jarred Sumner
d47419f471 Snapshots 2021-09-30 22:37:46 -07:00
Jarred Sumner
367f9c9674 Add test that void doesn't delete call expressions 2021-09-30 22:36:06 -07:00
Jarred Sumner
f9a906873e bun-macro-relay works now! 2021-09-30 22:35:34 -07:00
Jarred Sumner
4be8aaeab8 Pass MacroContext in more places 2021-09-30 22:35:20 -07:00
Jarred Sumner
5fdaad9a2f Pass macro_context when appropriate. This needs to be refactored more. 2021-09-30 22:34:54 -07:00
Jarred Sumner
5855fb7cc6 Make sure VM initializes with BUN_* defines 2021-09-30 22:34:36 -07:00
Jarred Sumner
f226f52200 Fix edgecase with cjs -> esm interop runtime code when module.exports was marked as not extensible 2021-09-30 22:34:17 -07:00
Jarred Sumner
db24a27e61 Fix potential infinite loop on calling macros 2021-09-30 22:33:36 -07:00
Jarred Sumner
f8297aee4d Fix jsxDEV transform bug that occurred when not including source and the component rendered an exception 2021-09-30 22:32:03 -07:00
Jarred Sumner
b267aace71 Fix dead-code elimination edgecase with call expressions 2021-09-30 22:30:32 -07:00
Jarred Sumner
b4bd8e4169 Fix edgecase with parsing .env 2021-09-30 22:29:33 -07:00
Jarred Sumner
fdda1078f8 Support remapping macro paths 2021-09-30 18:58:39 -07:00
Jarred Sumner
88e7e12a50 Fix all the compile errors 2021-09-30 14:20:45 -07:00
Jarred Sumner
4cdc8939ab Wire up macro-injected imports and move some structs above the gigantic parser type to reduce bun compile time a little 2021-09-30 13:49:46 -07:00
Jarred Sumner
ec256209a8 flatten fragments 2021-09-30 01:54:53 -07:00
Jarred Sumner
74db7809eb Most of the code & API changes necessary for supporting Relay (GraphQL) 2021-09-29 23:28:54 -07:00
Jarred Sumner
5dac4e6108 Cleanup 2021-09-27 21:25:12 -07:00
Jarred Sumner
e51155d8e6 Remove 2021-09-27 21:25:06 -07:00
Jarred Sumner
2bb7f71b9c Fix up examples 2021-09-27 21:21:51 -07:00
Jarred Sumner
2f8be4f13f () 2021-09-27 21:05:20 -07:00
Jarred Sumner
8e9d85f10f Add fetchCSV() example macro 2021-09-27 21:04:30 -07:00
Jarred Sumner
70bae801dc Bump 2021-09-27 21:03:09 -07:00
Jarred Sumner
37ffe4501c Ignore leading invalid unicode characters in response bodies in Response.text() 2021-09-27 21:03:00 -07:00
Jarred Sumner
13f6297312 Access object properties from macros 2021-09-27 21:01:34 -07:00
Jarred Sumner
f9dfa226a5 Fix bug in string eql check that was never used before 2021-09-27 20:53:57 -07:00
Jarred Sumner
0da19a25cf u16 isn't big enough 2021-09-27 16:28:04 -07:00
Jarred Sumner
3b92a867e2 Pass User-Agent in fetch() by default (but allow overriding) 2021-09-27 16:09:17 -07:00
Jarred Sumner
1ada4a2c67 Fix bug in URL parser 2021-09-27 16:08:57 -07:00
Jarred Sumner
97ad21dc68 Fix typo in error 2021-09-27 16:08:34 -07:00
Jarred Sumner
54dc9cfc8b upgrade 2021-09-27 01:45:53 -07:00
Jarred Sumner
1ed51e8866 Commit build 2021-09-27 01:35:37 -07:00
Jarred Sumner
9e0511995a Merge branch 'jarred/ast-again' 2021-09-27 01:34:12 -07:00
Jarred Sumner
62d51f7d2e Set macros enabled 2021-09-27 01:33:53 -07:00
Jarred Sumner
4f9558dd71 Bundling ignores macros 2021-09-27 01:33:23 -07:00
Jarred Sumner
86109dcfd0 Add a few macros examples 2021-09-27 01:33:15 -07:00
Jarred Sumner
adf22db8b6 bounds checking 2021-09-27 00:40:44 -07:00
Jarred Sumner
eb3473125c Allow nested arrays 2021-09-26 23:04:07 -07:00
Jarred Sumner
b3894994c0 Fix getting object properties 2021-09-26 21:21:51 -07:00
Jarred Sumner
e1306be4be Update Bun.readFileAsBytes and Bun.readFile to also accept an array of filepaths to join
For example:
```
Bun.readFileAsString([Bun.main, "../pages/hi.tsx"]);
```
2021-09-26 20:06:10 -07:00
Jarred Sumner
002d46d0c4 Add JSArrayIterator, don't call JSC::Options after JSC already loaded once (that causes a crash) 2021-09-26 20:04:26 -07:00
Jarred Sumner
018ba2c83b Most of macro implementation 2021-09-26 20:03:49 -07:00
Jarred Sumner
66ed7c1f30 Basic macro impl 2021-09-26 00:14:15 -07:00
Jarred Sumner
a113603f10 Merge pull request #29 from alexkuz/patch-1 2021-09-25 18:03:23 -07:00
Alexander Kuznetsov
6f6d62d915 Check requirements for the build 2021-09-26 03:56:02 +03:00
Jarred Sumner
ff8393ce32 WIP 2021-09-25 14:16:05 -07:00
Jarred Sumner
8b209aecf9 fix incorrect comment 2021-09-25 14:16:05 -07:00
Jarred Sumner
a515a2d039 Add .git 2021-09-25 14:14:33 -07:00
Jarred Sumner
d0fec462c9 Snapshots & package.json 2021-09-25 02:12:01 -07:00
Jarred Sumner
20e2040e7e Add integration test that checks styled-components renders successfully and no incorrect unicode characters are present in the style tag 2021-09-25 02:06:06 -07:00
Jarred Sumner
538f73b2fa Bump version 2021-09-25 02:05:15 -07:00
Jarred Sumner
a0fb04d6e5 Fix bug with resolving "browser" field in package.json
It was resolving from the parent directory of the result instead of the browser scope.
2021-09-25 02:05:01 -07:00
Jarred Sumner
44497ef384 Fix lexing bug with the \f form feed character (used in Emotion & Styled Components) 2021-09-25 02:03:59 -07:00
Jarred Sumner
5fb38b92d9 Fix crashing edgecase when both JSX automatic and JSX classic imports are necessary and unbundled 2021-09-25 02:03:27 -07:00
Jarred Sumner
4737588aac Bump version 2021-09-25 00:35:39 -07:00
Jarred Sumner
a5d3ce4e96 Add integration test for <JSX key="foo" {...spread} onClick={() => {}} /> 2021-09-25 00:34:30 -07:00
Jarred Sumner
66b29654c0 Fix visiting bug when using JSX with a spread prop and a key and one of the props is an anonymous function
More specifically, Bun shouldn't be visiting the same properties more than once. That was the cause.
2021-09-25 00:33:45 -07:00
Jarred Sumner
940570af59 skeleton code 2021-09-24 16:41:45 -07:00
Jarred Sumner
bdfb5a91b1 macro 2021-09-24 15:33:02 -07:00
Jarred Sumner
29b986684d 🍧 2021-09-24 15:28:30 -07:00
Jarred Sumner
e48a0877ef @setCold 2021-09-24 15:26:55 -07:00
Jarred Sumner
22837d69b7 Remove cache_files since it's not used and causes slower Bun compilation times 2021-09-24 15:23:55 -07:00
Jarred Sumner
af306b523b Update README.md 2021-09-24 14:49:17 -07:00
Jarred Sumner
ba20fd7566 Update README.md 2021-09-24 14:28:12 -07:00
Jarred Sumner
6d1330d601 Update README.md 2021-09-24 14:26:54 -07:00
Jarred Sumner
f3be0c79c2 Update README.md 2021-09-24 14:26:05 -07:00
Jarred Sumner
10c01af692 Update README.md 2021-09-23 23:28:45 -07:00
Jarred Sumner
a68a1983cf Update README.md 2021-09-23 23:28:25 -07:00
Jarred Sumner
90a647fb72 Update README.md 2021-09-23 23:22:41 -07:00
Jarred Sumner
3cbf209d5b clarify 2021-09-23 23:18:38 -07:00
Jarred Sumner
bee45c4fdc add the other tests 2021-09-23 22:54:38 -07:00
Jarred Sumner
61202cb464 Update README.md 2021-09-23 22:46:43 -07:00
Jarred Sumner
0091944161 Elaborate on bun bun a little 2021-09-23 22:43:20 -07:00
Jarred Sumner
78cd857bf6 Add link to webpack doc 2021-09-23 22:09:41 -07:00
Jarred Sumner
4fe1b4df1c Bump version 2021-09-23 22:02:13 -07:00
Jarred Sumner
2a1235c9db 🏃 2021-09-23 22:01:43 -07:00
Jarred Sumner
4bb41b95a8 📷 2021-09-23 22:01:34 -07:00
Jarred Sumner
f78f4854a4 Handle more edgecases in our CJS2ESM conversion code 2021-09-23 21:45:15 -07:00
Jarred Sumner
ff01dfa03d When bundling JSON, only use JSON.parse when the input is ASCII.
We don't want to add an extra pass over the input to convert it to UTF16. And JS engines storing strings as UTF-16 is more expensive anyway, so the runtime win here probably isn't as big (though open to evidence to the contrary!)
2021-09-23 21:43:37 -07:00
Jarred Sumner
638b204d1e Add __exportValue and __exportDefault to runtime 2021-09-23 19:20:33 -07:00
Jarred Sumner
58e88c4aed When bundling, parse the JSON to verify correctness, but print it as a string for better runtime performance 2021-09-23 19:20:07 -07:00
Jarred Sumner
8433919342 Safer export default transform for bundled code 2021-09-23 19:19:32 -07:00
Jarred Sumner
8150b9aeba Fix crash when loading JS fails really quickly 2021-09-23 17:40:25 -07:00
Jarred Sumner
01601fc8a7 Globally define require() so that UMD modules which check for the existence of require() to determine if it's CommonJS use the CommonJS code path instead of the globalThis code path 2021-09-23 17:36:49 -07:00
Jarred Sumner
7b24042d5f Embed regeneratorRuntime so that things which expect it to be a global still work 2021-09-23 17:36:04 -07:00
Jarred Sumner
2177dda242 Fix bug when multiple-levels of nested exports when bundled have a boolean .default value 2021-09-23 17:34:54 -07:00
Jarred Sumner
0585c86390 Support alwaysBundle for workspace packages 2021-09-23 17:33:20 -07:00
Jarred Sumner
528caab47c Add a pointer to the parent package_json for a directory. This reduces pointer chasing 2021-09-23 17:33:01 -07:00
Jarred Sumner
b150df34e0 Fix another simplification bug 2021-09-23 17:32:39 -07:00
Jarred Sumner
da80c3b309 Fix a simplification bug 2021-09-23 17:32:29 -07:00
Jarred Sumner
e8804bd80f Use the package_json hash for matching bundled modules instead of searching strings (should improve perf a little) 2021-09-23 17:31:59 -07:00
Jarred Sumner
2300886008 Symlinks work 2021-09-23 13:29:51 -07:00
Jarred Sumner
57ed3c89a2 Add "bun": { "alwaysBundle": ["packageName"] }, to package.json
This is for monorepos that symlink directories into node_modules. For example, if you have a design system in your monorepo, you probably want to always bundle that.
2021-09-23 00:17:06 -07:00
Jarred Sumner
1a284a1c94 Extremely minor perf improvements 2021-09-22 18:12:18 -07:00
Jarred Sumner
f12dd51c00 Update query_string_map.zig 2021-09-22 16:19:25 -07:00
Jarred Sumner
e00c1e99d6 Allow URLs containing absolute filepaths in imports if they match specific file extensions
This is to support ../../ imports

Allowlisting to specific file extensions prevents common webserver security vulnerabilities like reading /etc/passwd
2021-09-22 16:19:16 -07:00
Jarred Sumner
39323b46ba Fix edgecase with whether to wrap arrow expressions in parentheses when printing 2021-09-22 16:13:44 -07:00
Jarred Sumner
9dff80aeee Fix edgecase with bare imports inside .bun 2021-09-22 16:13:14 -07:00
Jarred Sumner
9f7d05bab4 Print how many lines of code was parsed in bun bun 2021-09-22 04:08:40 -07:00
Jarred Sumner
53c0a4b568 Add disabled status to ESM resolution 2021-09-22 02:17:13 -07:00
Jarred Sumner
8f460a9be3 Fix parsing bug with arrays that have default values 2021-09-22 02:16:31 -07:00
Jarred Sumner
204b07f46b package json exports seems to work now!!! 2021-09-22 01:03:06 -07:00
Jarred Sumner
a48a02bade Switch to a single directory for storing snapshots and explicitly note whats a debug snapshot and a non-debug snapshot 2021-09-22 01:02:32 -07:00
Jarred Sumner
2326a1e105 Fix the compiler errors 2021-09-21 23:28:05 -07:00
Jarred Sumner
c4dc6d9bff Resolve "exports" field in package.json (doesn't work yet) 2021-09-21 22:52:40 -07:00
Jarred Sumner
6213a73e6f Add "exports" to PackageJSON 2021-09-21 21:53:38 -07:00
Jarred Sumner
9c109b744f Most of the ESM resolution algorithm (still untested) 2021-09-21 21:49:32 -07:00
Jarred Sumner
42c1d54b3f endsWithAny -> endsWithAnyComptime 2021-09-21 18:07:23 -07:00
Jarred Sumner
5e634cd612 Parse "exports" field from package.json (WIP) 2021-09-21 18:05:42 -07:00
Jarred Sumner
79c7fe0f7a [Bun.js] Add Bun.readFileBytes() to get a Uint8Array of the file's contents without copying. 2021-09-21 15:39:52 -07:00
Jarred Sumner
8e86d2cf1d Add comment explaining failed package.json parsing optimization 2021-09-21 14:40:19 -07:00
Jarred Sumner
4e12a4c013 [Bun.js] Add support for console.time, console.timeEnd 2021-09-21 00:58:55 -07:00
Jarred Sumner
e869cdca9f Slightly improve .env loader string inference 2021-09-20 22:37:39 -07:00
Jarred Sumner
ab565f1a3c Fix parsing/printing unicode identifiers, switch to UTF-8 for prefilled strings, remove eagerly loading identifier_name 2021-09-20 22:37:22 -07:00
Jarred Sumner
90cd3bf4cb Fix how error lines with strings are highlighted 2021-09-20 18:04:45 -07:00
Jarred Sumner
9752ee8819 Always log errors when generating node_modules.server.bun 2021-09-20 17:40:09 -07:00
Jarred Sumner
9f1e0660dd Fix handling when file metadata store stored exceeds statically allocated count (at time of writing, 16k) 2021-09-20 17:39:39 -07:00
Jarred Sumner
7c05bb7d1d Merge pull request #27 from DAlperin/main 2021-09-17 20:33:48 -07:00
Dov Alperin
bb0faacf06 All deps now build on linux
Move CC and CXX into variables
Fix some capitalization
+A few other portability improvements
2021-09-17 23:21:06 -04:00
Jarred Sumner
9ae35ec581 Slightly improve JSX decoding perf 2021-09-17 18:37:26 -07:00
Jarred Sumner
b1ca1eb228 Package.json 2021-09-17 17:42:01 -07:00
212 changed files with 20548 additions and 6881 deletions

14
.dockerignore Normal file
View File

@@ -0,0 +1,14 @@
node_modules
**/node_modules
src/javascript/jsc/WebKit/LayoutTests
zig-out
zig-build
**/*.o
**/*.a
examples
**/.next
.git
src/javascript/jsc/WebKit/WebKitBuild
**/CMakeCache.txt

4
.gitmodules vendored
View File

@@ -3,7 +3,7 @@
# url = https://github.com/Hejsil/zig-clap
[submodule "src/deps/picohttpparser"]
path = src/deps/picohttpparser
url = https://github.com/h2o/picohttpparser/
url = https://github.com/h2o/picohttpparser.git
ignore = dirty
[submodule "src/javascript/jsc/WebKit"]
path = src/javascript/jsc/WebKit
@@ -11,5 +11,5 @@
ignore = dirty
[submodule "src/deps/mimalloc"]
path = src/deps/mimalloc
url = https://github.com/microsoft/mimalloc
url = https://github.com/microsoft/mimalloc.git
ignore = dirty

9
.vscode/launch.json vendored
View File

@@ -79,6 +79,15 @@
"cwd": "${workspaceFolder}/src/test/fixtures",
"console": "internalConsole"
},
{
"type": "lldb",
"request": "launch",
"name": "Linux Launch",
"program": "${workspaceFolder}/packages/debug-bun-cli-linux-x64/bin/bun-debug",
"args": ["--origin=http://jarred-desktop.local:3000/"],
"cwd": "${workspaceFolder}/examples/hello-next",
"console": "internalConsole"
},
{
"type": "lldb",

52
Dockerfile.zig Normal file
View File

@@ -0,0 +1,52 @@
FROM ubuntu:latest
RUN apt-get update && apt-get install --no-install-recommends -y wget gnupg2 curl lsb-release wget software-properties-common
RUN curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
RUN wget https://apt.llvm.org/llvm.sh --no-check-certificate
RUN chmod +x llvm.sh
RUN ./llvm.sh 12
RUN apt-get update && apt-get install --no-install-recommends -y \
ca-certificates \
curl \
gnupg2 \
software-properties-common \
cmake \
build-essential \
git \
libssl-dev \
ruby \
liblld-12-dev \
libclang-12-dev \
nodejs \
gcc \
g++ \
npm \
clang-12 \
clang-format-12 \
libc++-12-dev \
libc++abi-12-dev \
lld-12 \
libicu-dev
RUN update-alternatives --install /usr/bin/ld ld /usr/bin/lld-12 90 && \
update-alternatives --install /usr/bin/cc cc /usr/bin/clang-12 90 && \
update-alternatives --install /usr/bin/cpp cpp /usr/bin/clang++-12 90 && \
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-12 90
ENV CC=clang-12
ENV CXX=clang++-12
# Compile zig
RUN mkdir -p /home/ubuntu/zig; cd /home/ubuntu; git clone https://github.com/jarred-sumner/zig.git; cd /home/ubuntu/zig && git checkout jarred/zig-sloppy-with-small-structs && cmake . -DCMAKE_BUILD_TYPE=Release && make -j$(nproc)
ENV PATH="/home/ubuntu/zig:$PATH"
RUN npm install -g esbuild

263
Makefile
View File

@@ -1,23 +1,86 @@
OS_NAME := $(shell uname -s | tr '[:upper:]' '[:lower:]')
ARCH_NAME_DENORAMLZIED_1 := $(shell uname -m)
ARCH_NAME_DENORAMLZIED_2 := $(shell tr '[_]' '[--]' <<< $(ARCH_NAME_DENORAMLZIED_1))
ARCH_NAME_DENORAMLZIED_3 := $(shell sed s/x86-64/x64/ <<< $(ARCH_NAME_DENORAMLZIED_2))
ARCH_NAME := $(shell sed s/arm64/aarch64/ <<< $(ARCH_NAME_DENORAMLZIED_3))
ARCH_NAME_RAW := $(shell uname -m)
ARCH_NAME :=
ifeq ($(ARCH_NAME_RAW),arm64)
ARCH_NAME = aarch64
else
ARCH_NAME = x64
endif
TRIPLET := $(OS_NAME)-$(ARCH_NAME)
PACKAGE_DIR := packages/bun-cli-$(TRIPLET)
DEBUG_PACKAGE_DIR := packages/debug-bun-cli-$(TRIPLET)
PACKAGE_NAME := bun-cli-$(TRIPLET)
PACKAGES_REALPATH := $(shell realpath packages)
PACKAGE_DIR := $(PACKAGES_REALPATH)/$(PACKAGE_NAME)
DEBUG_PACKAGE_DIR := $(PACKAGES_REALPATH)/debug-$(PACKAGE_NAME)
BIN_DIR := $(PACKAGE_DIR)/bin
RELEASE_BUN := $(shell realpath $(PACKAGE_DIR)/bin/bun)
RELEASE_BUN := $(PACKAGE_DIR)/bin/bun
DEBUG_BIN := $(DEBUG_PACKAGE_DIR)/bin
DEBUG_BIN_REALPATH := $(shell realpath $(DEBUG_PACKAGE_DIR)/bin)
DEBUG_BUN := $(shell realpath $(DEBUG_BIN)/bun-debug)
DEBUG_BUN := $(DEBUG_BIN)/bun-debug
BUILD_ID := $(shell cat ./build-id)
PACKAGE_JSON_VERSION := 0.0.$(BUILD_ID)
BUN_BUILD_TAG := bun-v$(PACKAGE_JSON_VERSION)
CC := clang
CXX := clang++
BUN_TMP_DIR := /tmp/make-bun
DEFAULT_USE_BMALLOC := 1
# ifeq ($(OS_NAME),linux)
# DEFAULT_USE_BMALLOC = 0
# endif
USE_BMALLOC ?= DEFAULT_USE_BMALLOC
JSC_BASE_DIR ?= ${HOME}/webkit-build
DEFAULT_JSC_LIB :=
ifeq ($(OS_NAME),linux)
DEFAULT_JSC_LIB = $(JSC_BASE_DIR)/lib
endif
ifeq ($(OS_NAME),darwin)
DEFAULT_JSC_LIB = src/deps
endif
JSC_LIB ?= $(DEFAULT_JSC_LIB)
JSC_INCLUDE_DIR ?= $(JSC_BASE_DIR)/include
JSC_FILES := $(JSC_LIB)/libJavaScriptCore.a $(JSC_LIB)/libWTF.a $(JSC_LIB)/libbmalloc.a
JSC_BUILD_STEPS :=
ifeq ($(OS_NAME),linux)
JSC_BUILD_STEPS += jsc-check
endif
ifeq ($(OS_NAME),darwin)
JSC_BUILD_STEPS += jsc-build-mac jsc-copy-headers
endif
STRIP ?= $(shell which llvm-strip || which llvm-strip-12 || echo "Missing llvm-strip. Please pass it in the STRIP environment var"; exit 1;)
ifeq ($(OS_NAME),darwin)
HOMEBREW_PREFIX := $(shell brew --prefix)/
endif
bun: vendor build-obj bun-link-lld-release
vendor: api node-fallbacks runtime_js fallback_decoder bun_error mimalloc picohttp jsc
vendor-without-check: api analytics node-fallbacks runtime_js fallback_decoder bun_error mimalloc picohttp
vendor: require init-submodules vendor-without-check
require:
@echo "Checking if the required utilities are available..."
@realpath --version >/dev/null 2>&1 || (echo "ERROR: realpath is required."; exit 1)
@cmake --version >/dev/null 2>&1 || (echo "ERROR: cmake is required."; exit 1)
@esbuild --version >/dev/null 2>&1 || (echo "ERROR: esbuild is required."; exit 1)
@npm --version >/dev/null 2>&1 || (echo "ERROR: npm is required."; exit 1)
init-submodules:
git submodule update --init --recursive --progress --depth=1
build-obj:
zig build obj -Drelease-fast
@@ -28,7 +91,12 @@ sign-macos-x64:
sign-macos-aarch64:
gon sign.macos-aarch64.json
release-macos: all-js build-obj jsc-bindings-mac bun-link-lld-release
release: all-js build-obj jsc-bindings-mac bun-link-lld-release
jsc-check:
@ls $(JSC_BASE_DIR) >/dev/null 2>&1 || (echo "Failed to access WebKit build. Please compile the WebKit submodule using the Dockerfile at $(shell pwd)/src/javascript/WebKit/Dockerfile and then copy from /output in the Docker container to $(JSC_BASE_DIR). You can override the directory via JSC_BASE_DIR. \n\n DOCKER_BUILDKIT=1 docker build -t bun-webkit $(shell pwd)/src/javascript/jsc/WebKit -f $(shell pwd)/src/javascript/jsc/WebKit/Dockerfile --progress=plain\n\n docker container create bun-webkit\n\n # Get the container ID\n docker container ls\n\n docker cp DOCKER_CONTAINER_ID_YOU_JUST_FOUND:/output $(JSC_BASE_DIR)" && exit 1)
@ls $(JSC_INCLUDE_DIR) >/dev/null 2>&1 || (echo "Failed to access WebKit include directory at $(JSC_INCLUDE_DIR)." && exit 1)
@ls $(JSC_LIB) >/dev/null 2>&1 || (echo "Failed to access WebKit lib directory at $(JSC_LIB)." && exit 1)
all-js: runtime_js fallback_decoder bun_error node-fallbacks
@@ -50,13 +118,8 @@ runtime_js:
bun_error:
@cd packages/bun-error; npm install; npm run --silent build
JSC_BUILD_STEPS :=
ifeq ($(OS_NAME),linux)
JSC_BUILD_STEPS += jsc-build-linux jsc-copy-headers
endif
ifeq ($(OS_NAME),darwin)
JSC_BUILD_STEPS += jsc-build-mac jsc-copy-headers
endif
jsc: jsc-build jsc-bindings
jsc-build: $(JSC_BUILD_STEPS)
@@ -90,19 +153,32 @@ prepare-release: tag release-create write-package-json-version-cli write-package
release-create:
gh release create --title "Bun v$(PACKAGE_JSON_VERSION)" "$(BUN_BUILD_TAG)"
release-cli-push:
cd packages/bun-cli && npm pack --pack-destination /tmp/
gh release upload $(BUN_BUILD_TAG) --clobber /tmp/bun-cli-$(PACKAGE_JSON_VERSION).tgz
npm publish /tmp/bun-cli-$(PACKAGE_JSON_VERSION).tgz
BUN_DEPLOY_DIR := $(BUN_TMP_DIR)/bun-deploy
BUN_DEPLOY_CLI := $(BUN_TMP_DIR)/bun-cli
BUN_DEPLOY_PKG := $(BUN_DEPLOY_DIR)/$(PACKAGE_NAME)
release-mac-push: write-package-json-version
cd $(PACKAGE_DIR) && npm pack --pack-destination /tmp/
gh release upload $(BUN_BUILD_TAG) --clobber /tmp/bun-cli-$(TRIPLET)-$(PACKAGE_JSON_VERSION).tgz
npm publish /tmp/bun-cli-$(TRIPLET)-$(PACKAGE_JSON_VERSION).tgz
release-cli-push:
rm -rf $(BUN_DEPLOY_CLI)
mkdir -p $(BUN_DEPLOY_CLI)
cp -r packages/bun-cli $(BUN_DEPLOY_CLI)
cd $(BUN_DEPLOY_CLI)/bun-cli; npm pack;
gh release upload $(BUN_BUILD_TAG) --clobber $(BUN_DEPLOY_CLI)//bun-cli/bun-cli-$(PACKAGE_JSON_VERSION).tgz
npm publish $(BUN_DEPLOY_CLI)/bun-cli/bun-cli-$(PACKAGE_JSON_VERSION).tgz --access=public
release-bin-push: write-package-json-version
rm -rf $(BUN_DEPLOY_DIR)
mkdir -p $(BUN_DEPLOY_DIR)
cp -r $(PACKAGE_DIR) $(BUN_DEPLOY_DIR)
cd $(BUN_DEPLOY_PKG); npm pack;
gh release upload $(BUN_BUILD_TAG) --clobber $(BUN_DEPLOY_PKG)/$(PACKAGE_NAME)-$(PACKAGE_JSON_VERSION).tgz
npm publish $(BUN_DEPLOY_PKG)/$(PACKAGE_NAME)-$(PACKAGE_JSON_VERSION).tgz --access=public
dev-obj:
zig build obj
dev-obj-linux:
zig build obj -Dtarget=x86_64-linux-gnu
dev: mkdir-dev dev-obj bun-link-lld-debug
mkdir-dev:
@@ -113,21 +189,24 @@ test-install:
test-all: test-install test-with-hmr test-no-hmr
copy-test-node-modules:
rm -rf integration/snippets/package-json-exports/node_modules
cp -r integration/snippets/package-json-exports/_node_modules_copy integration/snippets/package-json-exports/node_modules
kill-bun:
-killall -9 bun bun-debug
test-with-hmr: kill-bun
test-with-hmr: kill-bun copy-test-node-modules
BUN_BIN=$(RELEASE_BUN) node integration/scripts/browser.js
test-no-hmr: kill-bun
test-no-hmr: kill-bun copy-test-node-modules
-killall bun -9;
DISABLE_HMR="DISABLE_HMR" BUN_BIN=$(RELEASE_BUN) node integration/scripts/browser.js
test-dev-with-hmr:
test-dev-with-hmr: copy-test-node-modules
-killall bun-debug -9;
BUN_BIN=$(DEBUG_BUN) node integration/scripts/browser.js
test-dev-no-hmr:
test-dev-no-hmr: copy-test-node-modules
-killall bun-debug -9;
DISABLE_HMR="DISABLE_HMR" BUN_BIN=$(DEBUG_BUN) node integration/scripts/browser.js
@@ -136,48 +215,61 @@ test-dev-all: test-dev-with-hmr test-dev-no-hmr
test-dev: test-dev-with-hmr
jsc-copy-headers:
find src/JavaScript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/Headers/JavaScriptCore/ -name "*.h" -exec cp {} src/JavaScript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/JavaScriptCore \;
find src/javascript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/Headers/JavaScriptCore/ -name "*.h" -exec cp {} src/javascript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/JavaScriptCore/ \;
jsc-build-mac-compile:
cd src/javascript/jsc/WebKit && ICU_INCLUDE_DIRS="$(HOMEBREW_PREFIX)opt/icu4c/include" ./Tools/Scripts/build-jsc --jsc-only --cmakeargs="-DENABLE_STATIC_JSC=ON -DCMAKE_BUILD_TYPE=relwithdebinfo"
jsc-build-linux-compile:
cd src/javascript/jsc/WebKit && ./Tools/Scripts/build-jsc --jsc-only --cmakeargs="-DENABLE_STATIC_JSC=ON -DCMAKE_BUILD_TYPE=relwithdebinfo
cd src/javascript/jsc/WebKit && ./Tools/Scripts/build-jsc --jsc-only --cmakeargs="-DENABLE_STATIC_JSC=ON -DCMAKE_BUILD_TYPE=relwithdebinfo -DUSE_THIN_ARCHIVES=OFF"
jsc-build-mac: jsc-build-mac-compile jsc-build-mac-copy
jsc-build-linux: jsc-build-linux-compile jsc-build-mac-copy
jsc-build-mac-copy:
cp src/JavaScript/jsc/WebKit/WebKitBuild/Release/lib/libJavaScriptCore.a src/deps/libJavaScriptCore.a
cp src/JavaScript/jsc/WebKit/WebKitBuild/Release/lib/libWTF.a src/deps/libWTF.a
cp src/JavaScript/jsc/WebKit/WebKitBuild/Release/lib/libbmalloc.a src/deps/libbmalloc.a
cp src/javascript/jsc/WebKit/WebKitBuild/Release/lib/libJavaScriptCore.a src/deps/libJavaScriptCore.a
cp src/javascript/jsc/WebKit/WebKitBuild/Release/lib/libWTF.a src/deps/libWTF.a
cp src/javascript/jsc/WebKit/WebKitBuild/Release/lib/libbmalloc.a src/deps/libbmalloc.a
JSC_FILES := src/deps/libJavaScriptCore.a \
src/deps/libWTF.a \
src/deps/libbmalloc.a
clean-bindings:
rm -rf $(OBJ_DIR)/*.o
clean: clean-bindings
rm src/deps/*.a src/deps/*.o
cd src/deps/mimalloc && make clean;
ifeq ($(OS_NAME),darwin)
HOMEBREW_PREFIX := $(shell brew --prefix)/
endif
SRC_DIR := src/javascript/jsc/bindings
OBJ_DIR := src/javascript/jsc/bindings-obj
SRC_FILES := $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))
INCLUDE_DIRS := -Isrc/JavaScript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders \
MAC_INCLUDE_DIRS := -Isrc/javascript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders \
-Isrc/javascript/jsc/WebKit/WebKitBuild/Release/WTF/Headers \
-Isrc/javascript/jsc/WebKit/WebKitBuild/Release/ICU/Headers \
-Isrc/JavaScript/jsc/WebKit/WebKitBuild/Release/ \
-Isrc/JavaScript/jsc/bindings/ \
-Isrc/javascript/jsc/WebKit/WebKitBuild/Release/ \
-Isrc/javascript/jsc/bindings/ \
-Isrc/javascript/jsc/WebKit/Source/bmalloc
LINUX_INCLUDE_DIRS := -I$(JSC_INCLUDE_DIR) \
-Isrc/javascript/jsc/bindings/
INCLUDE_DIRS :=
ifeq ($(OS_NAME),linux)
INCLUDE_DIRS += $(LINUX_INCLUDE_DIRS)
endif
ifeq ($(OS_NAME),darwin)
INCLUDE_DIRS += $(MAC_INCLUDE_DIRS)
endif
CLANG_FLAGS := $(INCLUDE_DIRS) \
-std=gnu++1z \
-stdlib=libc++ \
-std=gnu++17 \
-DSTATICALLY_LINKED_WITH_JavaScriptCore=1 \
-DSTATICALLY_LINKED_WITH_WTF=1 \
-DSTATICALLY_LINKED_WITH_BMALLOC=1 \
-DBUILDING_WITH_CMAKE=1 \
-DNDEBUG=1 \
-DNOMINMAX \
@@ -185,8 +277,15 @@ CLANG_FLAGS := $(INCLUDE_DIRS) \
-g \
-DENABLE_INSPECTOR_ALTERNATE_DISPATCHERS=0 \
-DBUILDING_JSCONLY__ \
-DASSERT_ENABLED=0\
-DDU_DISABLE_RENAMING=1
-DASSERT_ENABLED=0 \
-fPIE
# This flag is only added to webkit builds on Apple platforms
# It has something to do with ICU
ifeq ($(OS_NAME), darwin)
CLANG_FLAGS += -DDU_DISABLE_RENAMING=1
endif
jsc-bindings-mac: $(OBJ_FILES)
@@ -197,59 +296,93 @@ MACOS_ICU_FILES := $(HOMEBREW_PREFIX)opt/icu4c/lib/libicudata.a \
MACOS_ICU_INCLUDE := $(HOMEBREW_PREFIX)opt/icu4c/include
MACOS_ICU_FLAGS := -l icucore \
ICU_FLAGS :=
# TODO: find a way to make this more resilient
# Ideally, we could just look up the linker search paths
LIB_ICU_PATH ?= /usr/lib/x86_64-linux-gnu
ifeq ($(OS_NAME),linux)
ICU_FLAGS += $(LIB_ICU_PATH)/libicuuc.a $(LIB_ICU_PATH)/libicudata.a $(LIB_ICU_PATH)/libicui18n.a
endif
ifeq ($(OS_NAME),darwin)
ICU_FLAGS += -l icucore \
$(MACOS_ICU_FILES) \
-I$(MACOS_ICU_INCLUDE)
endif
BUN_LLD_FLAGS := $(OBJ_FILES) \
${MACOS_ICU_FLAGS} \
${ICU_FLAGS} \
${JSC_FILES} \
src/deps/picohttpparser.o \
src/deps/mimalloc/libmimalloc.a \
$(CLANG_FLAGS) \
-fpie \
ifeq ($(OS_NAME), linux)
BUN_LLD_FLAGS += -lstdc++fs \
-pthread \
-ldl \
-lc \
-Wl,-z,now \
-Wl,--as-needed \
-Wl,-z,stack-size=12800000 \
-Wl,-z,notext \
-ffunction-sections \
-fdata-sections \
-Wl,--gc-sections \
-fuse-ld=lld
endif
mimalloc:
cd src/deps/mimalloc; cmake .; make;
bun-link-lld-debug:
clang++ $(BUN_LLD_FLAGS) \
$(CXX) $(BUN_LLD_FLAGS) \
-g \
$(DEBUG_BIN)/bun-debug.o \
-Wl,-dead_strip \
-ftls-model=local-exec \
-flto \
-o $(DEBUG_BIN)/bun-debug
-W \
-o $(DEBUG_BIN)/bun-debug \
bun-link-lld-release:
clang++ $(BUN_LLD_FLAGS) \
$(CXX) $(BUN_LLD_FLAGS) \
$(BIN_DIR)/bun.o \
-o $(BIN_DIR)/bun \
-Wl,-dead_strip \
-ftls-model=local-exec \
-W \
-flto \
-ftls-model=initial-exec \
-O3
cp $(BIN_DIR)/bun $(BIN_DIR)/bun-profile
$(STRIP) $(BIN_DIR)/bun
rm $(BIN_DIR)/bun.o
bun-link-lld-release-aarch64:
clang++ $(BUN_LLD_FLAGS) \
$(CXX) $(BUN_LLD_FLAGS) \
build/macos-aarch64/bun.o \
-o build/macos-aarch64/bun \
-Wl,-dead_strip \
-ftls-model=local-exec \
-ftls-model=initial-exec \
-flto \
-O3
# We do this outside of build.zig for performance reasons
# The C compilation stuff with build.zig is really slow and we don't need to run this as often as the rest
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
clang++ -c -o $@ $< \
$(CXX) -c -o $@ $< \
$(CLANG_FLAGS) \
-O1
sizegen:
clang++ src/javascript/jsc/headergen/sizegen.cpp -o /tmp/sizegen $(CLANG_FLAGS) -O1
/tmp/sizegen > src/javascript/jsc/bindings/sizes.zig
$(CXX) src/javascript/jsc/headergen/sizegen.cpp -o $(BUN_TMP_DIR)/sizegen $(CLANG_FLAGS) -O1
$(BUN_TMP_DIR)/sizegen > src/javascript/jsc/bindings/sizes.zig
picohttp:
clang -O3 -g -c src/deps/picohttpparser.c -Isrc/deps -o src/deps/picohttpparser.o; cd ../../
$(CC) -O3 -g -fPIE -c src/deps/picohttpparser.c -Isrc/deps -o src/deps/picohttpparser.o; cd ../../
analytics:
./node_modules/.bin/peechy --schema src/analytics/schema.peechy --zig src/analytics/analytics_schema.zig
analytics-features:
@cd misctools; zig run --main-pkg-path ../ ./features.zig

159
README.md
View File

@@ -125,7 +125,7 @@ Bun is a project with incredibly large scope, and it's early days.
| Feature | In |
| ---------------------------------------------------------------------------------------------------------------------- | -------------- |
| Symlinks | Resolver |
| ~Symlinks~ | Resolver |
| [Finish Fast Refresh](https://github.com/Jarred-Sumner/bun/issues/18) | JSX Transpiler |
| Source Maps | JavaScript |
| Source Maps | CSS |
@@ -411,6 +411,117 @@ For developing frameworks, you can also do `bun bun --use ./relative-path-to-fra
If you're interested in adding a framework integration, please reach out. There's a lot here and it's not entirely documented yet.
# Reference
### `bun bun`
Run `bun bun ./path-to.js` to generate a `node_modules.bun` file containing all imported dependencies (recursively).
**Why bundle?**
- For browsers, loading entire apps without bundling dependencies is typically slow. With a fast bundler & transpiler, the bottleneck eventually becomes the web browser's ability to run many network requests concurrently. There are many workarounds for this. `<link rel="modulepreload">`, HTTP/3, etc but none are more effective than bundling. If you have reproducible evidence to the contrary, feel free to submit an issue. It would be better if bundling wasn't necessary.
- On the server, bundling reduces the number of filesystem lookups to load JavaScript. While filesystem lookups are faster than HTTP requests, there's still overhead.
**What is `.bun`?**
The `.bun` file contains:
- all the bundled source code
- all the bundled source code metadata
- project metadata & configuration
Here are some of the questions `.bun` files answer:
- when I import `react/index.js`, where in the `.bun` is the code for that? (not resolving, just the code)
- what modules of a package are used?
- what framework is used? (e.g. Next.js)
- where is the routes directory?
- how big is each imported dependency?
- what is the hash of the bundle's contents? (for etags)
- what is the name & version of every npm package exported in this bundle?
- what modules from which packages are used in this project? ("project" defined as all the entry points used to generate the .bun)
All in one file.
It's a little like a build cache, but designed for reuse. I hope people will eventually check it into version control so their coworkers don't have to run `npm install` as often.
##### Position-independent code
From a design perspective, the most important part of the `.bun` format is how code is organized. Each module is exported by a hash like this:
```js
// preact/dist/preact.module.js
export var $eb6819b = $$m({
"preact/dist/preact.module.js": (module, exports) => {
var n, l, u, i, t, o, r, f, e = {}, c = [], s = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
// ... rest of code
```
This makes bundled modules [position-independent](https://en.wikipedia.org/wiki/Position-independent_code). In theory, one could import only the exact modules in-use without reparsing code and without generating a new bundle. One bundle can dynamically become many bundles comprising only the modules in use on the webpage. Thanks to the metadata with the byte offsets, a web server can send each module to browsers [zero-copy](https://en.wikipedia.org/wiki/Zero-copy) using [sendfile](https://man7.org/linux/man-pages/man2/sendfile.2.html). Bun itself is not quite this smart yet, but these optimizations would be useful in production and potentially very useful for React Server Components.
To see the schema inside, have a look at [`JavascriptBundleContainer`](./src/api/schema.d.ts#:~:text=export%20interface-,JavascriptBundleContainer,-%7B). You can find JavaScript bindings to read the metadata in [src/api/schema.js](./src/api/schema.js). This is not really an API yet. It's missing the part where it gets the binary data from the bottom of the file. Someday, I want this to be usable by other tools too.
**Where is the code?**
`.bun` files are marked as executable.
To print out the code, run `./node_modules.bun` in your terminal or run `bun ./path-to-node_modules.bun`.
Here is a copy-pastable example:
```bash
./node_modules.bun > node_modules.js
```
This works because every `.bun` file starts with this:
```bash
#!/usr/bin/env bun
```
To deploy to production with Bun, you'll want to get the code from the `.bun` file and stick that somewhere your web server can find it (or if you're using Vercel or a Rails app, in a `public` folder).
Note that `.bun` is a binary file format, so just opening it in VSCode or vim might render strangely.
**Advanced**
By default, `bun bun` only bundles external dependencies that are `import`ed or `require`d in either app code or another external dependency. An "external depenendency" is defined as, "A JavaScript-like file that has `/node_modules/` in the resolved file path and a corresponding `package.json`".
To force bun to bundle packages which are not located in a `node_modules` folder (i.e. the final, resolved path following all symlinks), add a `bun` section to the root project's `package.json` with `alwaysBundle` set to an array of package names to always bundle. Here's an example:
```json
{
"name": "my-package-name-in-here",
"bun": {
"alwaysBundle": ["@mybigcompany/my-workspace-package"]
}
}
```
Bundled dependencies are not eligible for Hot Module Reloading. The code is served to browsers & Bun.js verbatim. But, in the future, it may be sectioned off into only parts of the bundle being used. That's possible in the current version of the `.bun` file (so long as you know which files are necessary), but it's not implemented yet. Longer-term, it will include all `import` and `export` of each module inside.
**What is the module ID hash?**
The `$eb6819b` hash used here:
```js
export var $eb6819b = $$m({
```
Is generated like this:
1. Murmur3 32 bit hash of `package.name@package.version`. This is the hash uniquely identifying the npm package.
2. Wyhash 64 of the `package.hash` + `package_path`. `package_path` means "relative to the root of the npm package, where is the module imported?". For example, if you imported `react/jsx-dev-runtime.js`, the `package_path` is `jsx-dev-runtime.js`. `react-dom/cjs/react-dom.development.js` would be `cjs/react-dom.development.js`
3. Truncate the hash generated above to a `u32`
The implementation details of this module ID hash will vary between versions of Bun. The important part is the metadata contains the module IDs, the package paths, and the package hashes so it shouldn't really matter in practice if other tooling wants to make use of any of this.
### Environment variables
- `GOMAXPROCS`: For `bun bun`, this sets the maximum number of threads to use. If you're experiencing an issue with `bun bun`, try setting `GOMAXPROCS=1` to force bun to run single-threaded
- `DISABLE_BUN_ANALYTICS=1` this disables Bun's analytics. Bun records bundle timings (so we can answer with data, "is bun getting faster?") and feature usage (e.g. "are people actually using macros?"). The request body size is about 60 bytes, so it's not a lot of data
- `TMPDIR`: Before `bun bun` completes, it stores the new `.bun` in `$TMPDIR`. If unset, `TMPDIR` defaults to the platform-specific temporary directory (on Linux, `/tmp` and on macOS `/private/tmp`)
# Credits
- While written in Zig instead of Go, Bun's JS transpiler, CSS lexer, and node module resolver source code is based off of @evanw's esbuild project. @evanw did a fantastic job with esbuild.
@@ -469,6 +580,8 @@ For compatibiltiy reasons, these NPM packages are embedded into Bun's binary and
Estimated: 30-90 minutes :(
## macOS
Compile Zig:
```bash
@@ -485,11 +598,49 @@ In `bun`:
```bash
git submodule update --init --recursive --progress --depth=1
make vendor
zig build headers
make jsc-bindings-mac
zig build -Drelease-fast
```
Note that `brew install zig` won't work. Bun uses a build of Zig with a couple patches.
Additionally, you'll need `cmake`, `npm` and `esbuild` installed globally.
## Linux
A Dockerfile with the exact version of Zig used is availble at `Dockerfile.zig`. This installs all the system dependencies you'll need excluding JavaScriptCore, but doesn't currently compile Bun in one command. If you're having trouble compiling Zig, it might be helpful to look at.
Compile Zig:
```bash
git clone https://github.com/jarred-sumner/zig --depth=1
cd zig
git checkout jarred/zig-sloppy-with-small-structs
cmake . -DCMAKE_BUILD_TYPE=Release && make -j $(nproc)
```
Compile JavaScriptCore:
```bash
# This will take a few minutes, depending on how fast your internet is
git submodule update --init --recursive --progress --depth=1
# This will take 10-30 minutes, depending on how many cores your CPU has
DOCKER_BUILDKIT=1 docker build -t bun-webkit $(pwd)/src/javascript/jsc/WebKit -f $(pwd)/src/javascript/jsc/WebKit/Dockerfile --progress=plain
docker container create bun-webkit
# Find the docker container ID manually. If you know a better way, please submit a PR!
docker container ls
docker cp DOCKER_CONTAINER_ID_YOU_JUST_FOUND:/output $HOME/webkit-build
```
Compile Bun:
```bash
make vendor dev
```
Run bun:
```bash
packages/debug-bun-cli-darwin-x64/bin/bun-debug
```

View File

@@ -1 +1 @@
20
34

View File

@@ -237,9 +237,13 @@ pub fn build(b: *std.build.Builder) !void {
true,
);
step.addObjectFile("src/deps/libJavaScriptCore.a");
step.addObjectFile("src/deps/libWTF.a");
step.addObjectFile("src/deps/libbmalloc.a");
if (target.getOs().tag != .linux) {
step.addObjectFile("src/deps/libbmalloc.a");
}
step.addObjectFile("src/deps/mimalloc/libmimalloc.a");
step.addLibPath("src/deps/mimalloc");
@@ -261,6 +265,10 @@ pub fn build(b: *std.build.Builder) !void {
step.linkSystemLibrary("icucore");
step.addLibPath(homebrew_prefix ++ "opt/icu4c/lib");
step.addIncludeDir(homebrew_prefix ++ "opt/icu4c/include");
} else {
step.linkSystemLibrary("icuuc");
step.linkSystemLibrary("icudata");
step.linkSystemLibrary("icui18n");
}
for (bindings_files.items) |binding| {
@@ -272,7 +280,7 @@ pub fn build(b: *std.build.Builder) !void {
var obj_step = b.step("obj", "Build Bun as a .o file");
var obj = b.addObject(bun_executable_name, exe.root_src.?.path);
obj.bundle_compiler_rt = true;
obj.setTarget(target);
addPicoHTTP(obj, false);
obj.addPackage(.{
.name = "clap",
@@ -282,7 +290,18 @@ pub fn build(b: *std.build.Builder) !void {
obj_step.dependOn(&obj.step);
obj.setOutputDir(output_dir);
obj.setBuildMode(mode);
obj.setTarget(target);
obj.linkLibC();
obj.linkLibCpp();
obj.bundle_compiler_rt = true;
if (target.getOsTag() == .linux) {
// obj.want_lto = tar;
obj.link_emit_relocs = true;
obj.link_function_sections = true;
}
} else {
b.default_step.dependOn(&exe.step);
}

View File

@@ -5,12 +5,11 @@ import styles from "../styles/Home.module.css";
export async function getStaticProps(ctx) {
return {
props: {
},
props: {},
};
}
export default function Home({ }) {
export default function Home({}) {
return (
<div className={styles.container}>
<Head>
@@ -21,7 +20,7 @@ export default function Home({ }) {
<main className={styles.main}>
<h1 className={styles.title}>
Welcome to <a href="https://nextjs.org">Next.js!</a>
Welcome!!to <a href="https://nextjs.org">Next.js!</a>
</h1>
<p className={styles.description}>

View File

@@ -1,6 +1,7 @@
@import url("./2.css");
.container {
min-height: 100vh;
min-height: 99vh;
padding: 0 0.5rem;
display: flex;
flex-direction: column;
@@ -8,6 +9,7 @@
align-items: center;
height: 100vh;
}
.main {
padding: 5rem 0;
flex: 1;

View File

@@ -1,11 +1,11 @@
import "three/three1";
import "three/three2";
import "three/three3";
import "three/three4";
import "three/three5";
import "three/three6";
import "three/three7";
import "three/three8";
import "three/three9";
import "three/three10";
import "three/three1.js";
import "three/three2.js";
import "three/three3.js";
import "three/three4.js";
import "three/three5.js";
import "three/three6.js";
import "three/three7.js";
import "three/three8.js";
import "three/three9.js";
import "three/three10.js";
// import "@babel/standalone/babel";

View File

@@ -6,6 +6,25 @@
"@babel/standalone": "^7.15.3",
"lodash": "^4.17.21",
"three.js": "^0.77.1",
"underscore": "^1.13.1"
"underscore": "^1.13.1",
"webpack": "^5.56.0"
},
"type": "module",
"browserslist": [
"last 1 version"
],
"scripts": {
"generate": "cp node_modules/three/three.js node_modules/three/three1.js; cp node_modules/three/three.js node_modules/three/three2.js; cp node_modules/three/three.js node_modules/three/three3.js; cp node_modules/three/three.js node_modules/three/three4.js; cp node_modules/three/three.js node_modules/three/three5.js; cp node_modules/three/three.js node_modules/three/three6.js; cp node_modules/three/three.js node_modules/three/three7.js; cp node_modules/three/three.js node_modules/three/three8.js; cp node_modules/three/three.js node_modules/three/three9.js; cp node_modules/three/three.js node_modules/three/three10.js",
"bench": "hyperfine \"bun bun ./index.js\" \"GOMAXPROCS=1 bun bun ./index.js\" \"esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"swc ./node_modules/three/three1.js ./node_modules/three/three2.js ./node_modules/three/three3.js ./node_modules/three/three4.js ./node_modules/three/three5.js ./node_modules/three/three6.js ./node_modules/three/three7.js ./node_modules/three/three8.js ./node_modules/three/three9.js ./node_modules/three/three10.js -C \"module.type=es6\" --no-swcrc -s false -o /tmp/out.swc.js\" \"node_modules/.bin/parcel build --no-optimize --no-source-maps --no-content-hash --no-cache --no-autoinstall ./index.js\" --prepare=\"rm -rf dist *.bun .parcel-cache;\"",
"bench-sync": "hyperfine \"GOMAXPROCS=1 bun bun ./index.js\" \"GOMAXPROCS=1 esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"swc ./node_modules/three/three1.js ./node_modules/three/three2.js ./node_modules/three/three3.js ./node_modules/three/three4.js ./node_modules/three/three5.js ./node_modules/three/three6.js ./node_modules/three/three7.js ./node_modules/three/three8.js ./node_modules/three/three9.js ./node_modules/three/three10.js -C \"module.type=es6\" --sync --no-swcrc -s false -o /tmp/out.swc.js\" --prepare=\"rm -rf *.bun\" ",
"bench-all": "hyperfine \"bun bun ./index.js\" \"esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"swc ./node_modules/three/three1.js ./node_modules/three/three2.js ./node_modules/three/three3.js ./node_modules/three/three4.js ./node_modules/three/three5.js ./node_modules/three/three6.js ./node_modules/three/three7.js ./node_modules/three/three8.js ./node_modules/three/three9.js ./node_modules/three/three10.js -C \"module.type=es6\" --no-swcrc -s false -o /tmp/out.swc.js\" \"GOMAXPROCS=1 bun bun ./index.js\" \"GOMAXPROCS=1 esbuild --bundle ./index.js --platform=browser --format=esm > /dev/null\" \"swc ./node_modules/three/three1.js ./node_modules/three/three2.js ./node_modules/three/three3.js ./node_modules/three/three4.js ./node_modules/three/three5.js ./node_modules/three/three6.js ./node_modules/three/three7.js ./node_modules/three/three8.js ./node_modules/three/three9.js ./node_modules/three/three10.js -C \"module.type=es6\" --sync --no-swcrc -s false -o /tmp/out.swc.js\" --prepare=\"rm -rf *.bun\""
},
"devDependencies": {
"@babel/core": "^7.15.5",
"@babel/preset-env": "^7.15.6",
"@parcel/core": "^2.0.0-rc.0",
"babel-loader": "^8.2.2",
"parcel": "^2.0.0-rc.0",
"webpack-cli": "^4.8.0"
}
}

View File

@@ -0,0 +1,33 @@
import { fetchCSV } from "macro:fetchCSV";
export const Covid19 = () => {
const rows = fetchCSV(
"https://covid19.who.int/WHO-COVID-19-global-data.csv",
{
last: 100,
columns: ["New_cases", "Date_reported", "Country"],
}
);
return (
<div>
<h2>Covid-19</h2>
<h6>last {rows.length} updates from the WHO</h6>
<div className="Table">
<div className="Header">
<div className="Heading">New Cases</div>
<div className="Heading">Date</div>
<div className="Heading">Country</div>
</div>
{rows.map((row, index) => (
<div className="Row" key={index}>
<div className="Column">{row[0]}</div>
<div className="Column">{row[1]}</div>
<div className="Column">{row[2]}</div>
</div>
))}
</div>
</div>
);
};

View File

@@ -0,0 +1,17 @@
// source code
import { matchInFile } from "macro:matchInFile";
export const IPAddresses = () => (
<div>
<h2>recent ip addresses</h2>
<div className="Lines">
{matchInFile("access.log", /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}/).map(
(ipAddress, index) => (
<div className="Line" key={index}>
{ipAddress}
</div>
)
)}
</div>
</div>
);

View File

@@ -0,0 +1,15 @@
import * as ReactDOM from "react-dom";
import * as React from "react";
import { IPAddresses } from "./example";
import { Covid19 } from "./covid19";
const Start = function () {
const root = document.createElement("div");
document.body.appendChild(root);
// comment out to switch between examples
// ReactDOM.render(<IPAddresses />, root);
ReactDOM.render(<Covid19 />, root);
};
Start();

View File

@@ -0,0 +1,4 @@
// source code
import { mysteryBox } from "macro:./mystery-box";
export default "You roll! " + mysteryBox(123);

View File

@@ -0,0 +1,54 @@
import Pappa from "papaparse";
// Example usage:
// const rows = fetchCSV(
// "https://covid19.who.int/WHO-COVID-19-global-data.csv",
// {
// last: 100,
// columns: ["New_cases", "Date_reported", "Country"],
// }
// );
export async function fetchCSV(callExpression) {
console.time("fetchCSV Total");
const [
urlNode,
{
properties: { last: limit = 10, columns = [] },
},
] = callExpression.arguments;
const url = urlNode.get();
console.time("Fetch");
const response = await fetch(url);
const csvText = await response.text();
console.timeEnd("Fetch");
console.time("Parse");
let rows = Pappa.parse(csvText, { fastMode: true }).data;
console.timeEnd("Parse");
console.time("Render");
const columnIndices = new Array(columns.length);
for (let i = 0; i < columns.length; i++) {
columnIndices[i] = rows[0].indexOf(columns[i]);
}
rows = rows
.slice(Math.max(limit, rows.length) - limit)
.reverse()
.filter((columns) => columns.every(Boolean));
const value = (
<array>
{rows.map((columns) => (
<array>
{columnIndices.map((columnIndex) => (
<string value={columns[columnIndex]} />
))}
</array>
))}
</array>
);
console.timeEnd("Render");
console.timeEnd("fetchCSV Total");
return value;
}

View File

@@ -0,0 +1,23 @@
// macro code
export function matchInFile(callExpression: BunAST.CallExpression) {
const [filePathNode, matcherNode] = callExpression.arguments;
let filePath: string;
filePath = filePathNode.get();
let matcher: RegExp;
matcher = matcherNode.get();
const file: string = Bun.readFile(Bun.cwd + filePath);
return (
<array>
{file
.split("\n")
.map((line) => line.match(matcher))
.filter(Boolean)
.reverse()
.map((line) => (
<string value={line[0]} />
))}
</array>
);
}

10
examples/macros/now.tsx Normal file
View File

@@ -0,0 +1,10 @@
import moment from "moment";
export function now(node) {
var fmt = "HH:mm:ss";
const args = node.arguments;
if (args[0] instanceof <string />) {
fmt = args[0].get();
}
const time = moment().format(fmt);
return <string value={time}></string>;
}

View File

@@ -0,0 +1,17 @@
{
"name": "macros",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"moment": "^2.29.1",
"papaparse": "^5.3.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-refresh": "^0.10.0"
},
"devDependencies": {
"@types/react": "^17.0.24",
"@types/react-dom": "^17.0.9"
}
}

View File

@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html>
<head>
<title>Macro test</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="/styles.css" type="text/css" />
</head>
<body>
<script async type="module" src="/components/index.tsx"></script>
</body>
</html>

View File

@@ -0,0 +1,47 @@
html {
font-size: 4rem;
margin: 0;
padding: 0;
background-color: black;
color: rgb(0, 255, 0);
font-family: "Courier";
}
body {
margin: 48px auto;
text-align: center;
}
.Line {
font-size: 0.5rem;
font-family: monospace;
}
.Table {
display: grid;
width: fit-content;
}
.Row,
.Header {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
text-align: right;
column-gap: 2rem;
}
.Heading {
text-align: right;
}
.Header {
border-bottom: 1px solid rgb(0, 255, 0);
margin-bottom: 20px;
padding-bottom: 20px;
}
.Heading:nth-of-type(2) {
text-align: left;
}

View File

@@ -0,0 +1,7 @@
{
"compilerOptions": {
"baseUrl": ".",
"paths": {},
"jsx": "preserve"
}
}

View File

@@ -16,10 +16,15 @@ const bunExec = process.env.BUN_BIN || "bun";
const bunProcess = child_process.spawn(bunExec, bunFlags, {
cwd: snippetsDir,
stdio: "pipe",
env: {
...process.env,
DISABLE_BUN_ANALYTICS: "1",
},
shell: false,
});
console.log("$", bunExec, bunFlags.join(" "));
const isDebug = bunExec.endsWith("-debug");
bunProcess.stderr.pipe(process.stderr);
bunProcess.stdout.pipe(process.stdout);
@@ -32,12 +37,27 @@ process.on("beforeExit", () => {
});
function writeSnapshot(name, code) {
const file = path.join(
__dirname,
"../snapshots" + (DISABLE_HMR ? "-no-hmr" : ""),
name
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
);
fs.writeFileSync(file, code);
}
async function main() {
@@ -95,6 +115,17 @@ async function main() {
"/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",
];
tests.reverse();

View File

@@ -1 +0,0 @@
*.js

View File

@@ -0,0 +1,25 @@
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);
}

View File

@@ -0,0 +1,47 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(true);
var hmr = new HMR(3474597122, "array-args-with-default-values.js"), 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
};

View File

@@ -0,0 +1,47 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
var hmr = new HMR(3474597122, "array-args-with-default-values.js"), 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
};

View File

@@ -0,0 +1,25 @@
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);
}

View File

@@ -0,0 +1,30 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
Bun.activate(true);
var hmr = new HMR(3012834585, "bundled-entry-point.js"), exports = hmr.exports;
(hmr._load = function() {
var hello = null ?? "world";
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
};

View File

@@ -0,0 +1,30 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
Bun.activate(false);
var hmr = new HMR(3012834585, "bundled-entry-point.js"), exports = hmr.exports;
(hmr._load = function() {
var hello = null ?? "world";
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
};

View File

@@ -1,30 +1,9 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
Bun.activate(false);
var hello = null ?? "world";
var hmr = new HMR(3012834585, "bundled-entry-point.js"), exports = hmr.exports;
(hmr._load = function() {
var hello = null ?? "world";
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
};
export function test() {
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,37 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__cJS2eSM
} from "http://localhost:8080/__runtime.js";
import * as _login_b977_0 from "http://localhost:8080/_login.js";
import * as _login_b977_1 from "http://localhost:8080/_login.js";
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 default __cJS2eSM(function(module, exports) {
;
;
;
;
;
module.exports.iAmCommonJs = true;
exports.YouAreCommonJS = true;
require(_login_b977_0);
require(_login_b977_1);
Object.defineProperty(module.exports,"login",{get: () => _login, enumerable: true, configurable: true});
var test = function test() {
return testDone(import.meta.url);
};
Object.defineProperty(module.exports,"test",{get: () => test, enumerable: true, configurable: true});
var foo, bar;
Object.defineProperties(module.exports,{'foo': {get: () => foo, set: ($_newValue) => {foo = $_newValue;}, enumerable: true, configurable: true},
'bar': {get: () => bar, set: ($_newValue) => {bar = $_newValue;}, enumerable: true, configurable: true}});
}, "cjs-transform-shouldnt-have-static-imports-in-cjs-function.js");

View File

@@ -0,0 +1,37 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__cJS2eSM
} from "http://localhost:8080/__runtime.js";
import * as _login_b977_0 from "http://localhost:8080/_login.js";
import * as _login_b977_1 from "http://localhost:8080/_login.js";
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 default __cJS2eSM(function(module, exports) {
;
;
;
;
;
module.exports.iAmCommonJs = true;
exports.YouAreCommonJS = true;
require(_login_b977_0);
require(_login_b977_1);
Object.defineProperty(module.exports,"login",{get: () => _login, enumerable: true, configurable: true});
var test = function test() {
return testDone(import.meta.url);
};
Object.defineProperty(module.exports,"test",{get: () => test, enumerable: true, configurable: true});
var foo, bar;
Object.defineProperties(module.exports,{'foo': {get: () => foo, set: ($_newValue) => {foo = $_newValue;}, enumerable: true, configurable: true},
'bar': {get: () => bar, set: ($_newValue) => {bar = $_newValue;}, enumerable: true, configurable: true}});
}, "cjs-transform-shouldnt-have-static-imports-in-cjs-function.js");

View File

@@ -28,7 +28,7 @@ export default __cJS2eSM(function(module, exports) {
return testDone(import.meta.url);
};
Object.defineProperty(module.exports,"test",{get: () => test, enumerable: true, configurable: true});
var foo, bar;
let foo, bar;
Object.defineProperties(module.exports,{'foo': {get: () => foo, set: ($_newValue) => {foo = $_newValue;}, enumerable: true, configurable: true},
'bar': {get: () => bar, set: ($_newValue) => {bar = $_newValue;}, enumerable: true, configurable: true}});
}, "cjs-transform-shouldnt-have-static-imports-in-cjs-function.js");

View File

@@ -0,0 +1,28 @@
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) && 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);
}

View File

@@ -0,0 +1,53 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(true);
var hmr = new HMR(726376257, "code-simplification-neql-define.js"), 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 size = 100, ttl = 3600;
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
};

View File

@@ -0,0 +1,53 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
var hmr = new HMR(726376257, "code-simplification-neql-define.js"), 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 size = 100, ttl = 3600;
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
};

View File

@@ -0,0 +1,28 @@
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) && 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);
}

View File

@@ -0,0 +1,22 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import * as JSX from "http://localhost:8080/node_modules/@emotion/react/jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js";
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);
}

View File

@@ -0,0 +1,46 @@
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/@emotion/react/jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js";
var jsx = require(JSX).jsxDEV;
import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
var ReactDOM = require($5b3cea55);
Bun.activate(true);
var hmr = new HMR(2497996991, "custom-emotion-jsx/file.jsx"), 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
};

View File

@@ -0,0 +1,46 @@
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;
import * as $5b3cea55 from "http://localhost:8080/node_modules/react-dom/index.js";
var ReactDOM = require($5b3cea55);
Bun.activate(false);
var hmr = new HMR(2497996991, "custom-emotion-jsx/file.jsx"), exports = hmr.exports;
(hmr._load = function() {
var Foo = () => jsx("div", {
css: {content: '"it worked!"' }
}, undefined, true, undefined, this);
function test() {
const element = document.createElement("div");
element.id = "custom-emotion-jsx";
document.body.appendChild(element);
ReactDOM.render(jsx(Foo, {}, undefined, true, 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
};

View File

@@ -0,0 +1,74 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
import what from "http://localhost:8080/_auth.js";
import * as where from "http://localhost:8080/_auth.js";
Bun.activate(true);
var hmr = new HMR(1879780259, "export.js"), 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";

View File

@@ -0,0 +1,74 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
import what from "http://localhost:8080/_auth.js";
import * as where from "http://localhost:8080/_auth.js";
Bun.activate(false);
var hmr = new HMR(1879780259, "export.js"), 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";

View File

@@ -1,74 +1,31 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
import what from "http://localhost:8080/_auth.js";
import * as where from "http://localhost:8080/_auth.js";
Bun.activate(false);
var hmr = new HMR(1879780259, "export.js"), 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 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);
}

View File

@@ -0,0 +1,8 @@
var foo = () => {
var D = (i, r) => () => (r || i((r = {exports: {} }).exports, r), r.exports);
return D;
};
export function test() {
foo();
testDone(import.meta.url);
}

View File

@@ -0,0 +1,30 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(true);
var hmr = new HMR(346837007, "forbid-in-is-correct.js"), 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
};

View File

@@ -0,0 +1,30 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
var hmr = new HMR(346837007, "forbid-in-is-correct.js"), 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
};

View File

@@ -0,0 +1,8 @@
var foo = () => {
var D = (i, r) => () => (r || i((r = {exports: {} }).exports, r), r.exports);
return D;
};
export function test() {
foo();
testDone(import.meta.url);
}

View File

@@ -0,0 +1,26 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(true);
var hmr = new HMR(713665787, "global-is-remapped-to-globalThis.js"), 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
};

View File

@@ -0,0 +1,26 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
var hmr = new HMR(713665787, "global-is-remapped-to-globalThis.js"), 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
};

View File

@@ -1,26 +1,4 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
var hmr = new HMR(713665787, "global-is-remapped-to-globalThis.js"), 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
};
export function test() {
console.assert(globalThis === globalThis);
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,41 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
import * as $60f52dc2 from "http://localhost:8080/node_modules/lodash/lodash.js";
var { shuffle} = require($60f52dc2);
Bun.activate(true);
var hmr = new HMR(2158065009, "lodash-regexp.js"), 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
};

View File

@@ -0,0 +1,41 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
import * as $60f52dc2 from "http://localhost:8080/node_modules/lodash/lodash.js";
var { shuffle} = require($60f52dc2);
Bun.activate(false);
var hmr = new HMR(2158065009, "lodash-regexp.js"), 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
};

View File

@@ -1,41 +1,21 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
import * as $60f52dc2 from "http://localhost:8080/node_modules/lodash/lodash.js";
var { shuffle} = require($60f52dc2);
Bun.activate(false);
export function test() {
const foo = [1, 2, 3, 4, 6];
var hmr = new HMR(2158065009, "lodash-regexp.js"), 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);
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");
}
hmr.exportAll({
test: () => test
});
})();
var $$hmr_test = hmr.exports.test;
hmr._update = function(exports) {
$$hmr_test = exports.test;
};
return testDone(import.meta.url);
}
export {
$$hmr_test as test
};

View File

@@ -4,18 +4,15 @@ __require as require
import * as JSX from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
var JSXClassic = require($bbcd215f);
var jsx = require(JSX).jsxDEV, fileName = "multiple-imports.js", JSXFrag = require(JSX, JSXClassic).Fragment;
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, true, {
fileName,
lineNumber: 92
}, this);
children: "hello"
}, undefined, false, undefined, this);
export function test() {
console.assert(bacon === React);
console.assert(bacon === React2);

View File

@@ -0,0 +1,43 @@
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";
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);
Bun.activate(true);
var hmr = new HMR(2165509932, "multiple-imports.js"), 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
};

View File

@@ -0,0 +1,43 @@
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";
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);
Bun.activate(false);
var hmr = new HMR(2165509932, "multiple-imports.js"), exports = hmr.exports;
(hmr._load = function() {
const bacon = React;
const bacon2 = jsx(JSXFrag, {
children: ["hello"]
}, undefined, true, 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
};

View File

@@ -1,46 +1,22 @@
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";
import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
var JSXClassic = require($bbcd215f);
var jsx = require(JSX).jsxDEV, fileName = "multiple-imports.js", JSXFrag = require(JSX, JSXClassic).Fragment;
var jsx = require(JSX).jsxDEV, JSXFrag = require(JSXClassic).Fragment;
var { default: React} = require($bbcd215f);
var { default: React2} = require($bbcd215f);
Bun.activate(false);
const bacon = React;
var hmr = new HMR(2165509932, "multiple-imports.js"), exports = hmr.exports;
(hmr._load = function() {
const bacon = React;
const bacon2 = jsx(JSXFrag, {
children: ["hello"]
}, undefined, true, {
fileName,
lineNumber: 92
}, 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
};
const bacon2 = jsx(JSXFrag, {
children: ["hello"]
}, undefined, true, 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);
}

View File

@@ -0,0 +1,17 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
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);
export async function test() {
console.assert(InexactRoot.target === "browser");
console.assert(InexactFile.target === "browser");
console.assert(ExactFile.target === "browser");
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,37 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
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);
Bun.activate(true);
var hmr = new HMR(1953708113, "package-json-exports/index.js"), exports = hmr.exports;
(hmr._load = function() {
async function test() {
console.assert(InexactRoot.target === "browser");
console.assert(InexactFile.target === "browser");
console.assert(ExactFile.target === "browser");
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
};

View File

@@ -0,0 +1,37 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
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);
Bun.activate(false);
var hmr = new HMR(1953708113, "package-json-exports/index.js"), exports = hmr.exports;
(hmr._load = function() {
async function test() {
console.assert(InexactRoot.target === "browser");
console.assert(InexactFile.target === "browser");
console.assert(ExactFile.target === "browser");
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
};

View File

@@ -0,0 +1,17 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
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);
export async function test() {
console.assert(InexactRoot.target === "browser");
console.assert(InexactFile.target === "browser");
console.assert(ExactFile.target === "browser");
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,35 @@
import {
__require as require
} 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;
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);
}

View File

@@ -0,0 +1,56 @@
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;
import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
var { default: React} = require($bbcd215f);
Bun.activate(true);
var hmr = new HMR(3514348331, "react-context-value-func.tsx"), 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
};

View File

@@ -0,0 +1,56 @@
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;
import * as $bbcd215f from "http://localhost:8080/node_modules/react/index.js";
var { default: React} = require($bbcd215f);
Bun.activate(false);
var hmr = new HMR(3514348331, "react-context-value-func.tsx"), 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, true, undefined, this);
};
const ContextValue = ({}) => jsx(Context.Consumer, {
children: [(foo) => {
if (foo)
return jsx("div", {
children: ["Worked!"]
}, undefined, true, undefined, this);
throw `Value "${foo}"" should be true`;
}]
}, undefined, true, undefined, this);
const TestComponent = () => jsx(ContextProvider, {
children: [jsx(ContextValue, {}, undefined, true, undefined, this)]
}, undefined, true, undefined, this);
function test() {
const foo = jsx(TestComponent, {}, undefined, true, 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
};

View File

@@ -0,0 +1,28 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import * as JSX from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
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);
}

View File

@@ -0,0 +1,51 @@
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";
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);
Bun.activate(true);
var hmr = new HMR(2717584935, "spread_with_key.tsx"), 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
};

View File

@@ -0,0 +1,51 @@
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";
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);
Bun.activate(false);
var hmr = new HMR(2717584935, "spread_with_key.tsx"), 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, true, 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
};

View File

@@ -0,0 +1,28 @@
import {
__require as require
} from "http://localhost:8080/__runtime.js";
import * as JSX from "http://localhost:8080/node_modules/react/jsx-dev-runtime.js";
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, true, undefined, this)));
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,34 @@
var tab = "\t";
var = "wow";
var f = "";
var obj = {
"\r\n": "\r\n",
"\n": "\n",
"\t": "\t",
"\u2028": "\u2028",
"\u2029": "\u2029",
"😊": "😊",
"😃": "😃",
"㋡": "㋡",
"☺": "☺",
: "シ",
f,
"☹": "☹",
"☻": "☻",
children: 123
};
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");
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,57 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(true);
var hmr = new HMR(2482749838, "string-escapes.js"), exports = hmr.exports;
(hmr._load = function() {
var tab = "\t";
var = "wow";
var f = "";
var obj = {
"\r\n": "\r\n",
"\n": "\n",
"\t": "\t",
"\u2028": "\u2028",
"\u2029": "\u2029",
"😊": "😊",
"😃": "😃",
"㋡": "㋡",
"☺": "☺",
: "シ",
f,
"☹": "☹",
"☻": "☻",
children: 123
};
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");
return testDone(import.meta.url);
}
hmr.exportAll({
obj: () => obj,
test: () => test
});
})();
var $$hmr_obj = hmr.exports.obj, $$hmr_test = hmr.exports.test;
hmr._update = function(exports) {
$$hmr_obj = exports.obj;
$$hmr_test = exports.test;
};
export {
$$hmr_obj as obj,
$$hmr_test as test
};

View File

@@ -0,0 +1,57 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
var hmr = new HMR(2482749838, "string-escapes.js"), exports = hmr.exports;
(hmr._load = function() {
var tab = "\t";
var = "wow";
var f = "";
var obj = {
"\r\n": "\r\n",
"\n": "\n",
"\t": "\t",
"\u2028": "\u2028",
"\u2029": "\u2029",
"😊": "😊",
"😃": "😃",
"㋡": "㋡",
"☺": "☺",
: "シ",
f,
"☹": "☹",
"☻": "☻",
children: 123
};
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");
return testDone(import.meta.url);
}
hmr.exportAll({
obj: () => obj,
test: () => test
});
})();
var $$hmr_obj = hmr.exports.obj, $$hmr_test = hmr.exports.test;
hmr._update = function(exports) {
$$hmr_obj = exports.obj;
$$hmr_test = exports.test;
};
export {
$$hmr_obj as obj,
$$hmr_test as test
};

View File

@@ -0,0 +1,34 @@
var tab = "\t";
var = "wow";
var f = "";
var obj = {
"\r\n": "\r\n",
"\n": "\n",
"\t": "\t",
"\u2028": "\u2028",
"\u2029": "\u2029",
"😊": "😊",
"😃": "😃",
"㋡": "㋡",
"☺": "☺",
: "シ",
f,
"☹": "☹",
"☻": "☻",
children: 123
};
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");
return testDone(import.meta.url);
}

View File

@@ -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
};

View File

@@ -0,0 +1,57 @@
import {
__require as require
} 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;
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() {
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();
testDone(import.meta.url);
}

View File

@@ -0,0 +1,78 @@
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;
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);
Bun.activate(true);
var hmr = new HMR(1290604342, "styledcomponents-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() {
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();
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
};

View File

@@ -0,0 +1,78 @@
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;
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);
Bun.activate(false);
var hmr = new HMR(1290604342, "styledcomponents-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() {
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, true, 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();
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
};

View File

@@ -0,0 +1,57 @@
import {
__require as require
} 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;
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() {
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, true, 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();
testDone(import.meta.url);
}

View File

@@ -0,0 +1,25 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(true);
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
};

View File

@@ -0,0 +1,25 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
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
};

View File

@@ -1,25 +1,3 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
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
};
export function test() {
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,25 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(true);
var hmr = new HMR(2117426367, "tsx-fallback-rewrite-works.tsx"), 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
};

View File

@@ -0,0 +1,25 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
var hmr = new HMR(2117426367, "tsx-fallback-rewrite-works.tsx"), 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
};

View File

@@ -1,25 +1,3 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
var hmr = new HMR(2117426367, "tsx-fallback-rewrite-works.tsx"), 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
};
export function test() {
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,35 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(true);
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
};

View File

@@ -0,0 +1,35 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
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
};

View File

@@ -1,35 +1,7 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
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
};
export const baconator = true;
export const SilentSymbolCollisionsAreOkayInTypeScript = true;
export function test() {
console.assert(SilentSymbolCollisionsAreOkayInTypeScript);
console.assert(baconator);
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,7 @@
var ε = 1.0e-06, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
export {d3_radians};
export function test() {
console.assert(ε === 1.0e-06);
return testDone(import.meta.url);
}

View File

@@ -0,0 +1,30 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(true);
var hmr = new HMR(1398361736, "unicode-identifiers.js"), exports = hmr.exports;
(hmr._load = function() {
var ε = 1.0e-06, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
function test() {
console.assert(ε === 1.0e-06);
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
};

View File

@@ -0,0 +1,30 @@
import {
__HMRModule as HMR
} from "http://localhost:8080/__runtime.js";
import {
__HMRClient as Bun
} from "http://localhost:8080/__runtime.js";
Bun.activate(false);
var hmr = new HMR(1398361736, "unicode-identifiers.js"), exports = hmr.exports;
(hmr._load = function() {
var ε = 1.0e-06, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
function test() {
console.assert(ε === 1.0e-06);
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
};

View File

@@ -0,0 +1,7 @@
var ε = 1.0e-06, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
export {d3_radians};
export function test() {
console.assert(ε === 1.0e-06);
return testDone(import.meta.url);
}

Some files were not shown because too many files have changed in this diff Show More