Commit Graph

275 Commits

Author SHA1 Message Date
Dylan Conway
661355546a zig upgrade (#3667)
* upgrade

* more fixes

* Bump Zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-18 01:20:20 -07:00
Jarred Sumner
dc766eb18a Add --smol flag 2023-07-16 21:17:47 -07:00
Jarred Sumner
6baa08313c Fixes #3641 (#3643)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-16 20:32:18 -07:00
Jarred Sumner
284aaec3cd Remove unnecessary @setRuntimeSafety(false) 2023-07-06 23:50:32 -07:00
Jarred Sumner
c42a00f9df Fixes #3462 (#3465)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-29 20:14:12 -07:00
Dylan Conway
28d7507a5d add todo comment 2023-06-27 14:55:13 -07:00
Dylan Conway
c78aa5a60f fix macros 2023-06-27 13:23:01 -07:00
Dylan Conway
5fa13625a1 upgrade zig to v0.11.0-dev.3737+9eb008717 (#3374)
* progress

* finish `@memset/@memcpy` update

* Update build.zig

* change `@enumToInt` to `@intFromEnum` and friends

* update zig versions

* it was 1

* add link to issue

* add `compileError` reminder

* fix merge

* format

* upgrade to llvm 16

* Revert "upgrade to llvm 16"

This reverts commit cc930ceb1c.

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-21 23:38:18 -07:00
Jarred Sumner
3e84f18cc0 Implement __dirname and __filename, allow direct eval in CommonJS (#3164)
* Implement `__dirname` and `__filename`, allow direct eval in CommonJS

* Fixup dirname and add test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-01 18:04:09 -07:00
Jarred Sumner
e2de1f5c13 Natively support CommonJS at runtime (#3104)
* Natively support CommonJS at runtime

* cleanup how getters are handled, add fast path

* more consistent with node

* use * As

* Remove thrown modules on exception

* Handle exception better

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-29 11:23:10 -07:00
Jarred Sumner
0f2a79b9c1 Fix crash in test.todo + remove JSC C API usages in bun:test (#3079)
* Fix crash in test.todo

* remove usages of JSC C API in bun:test

* Remove additional JSC-C API usages

* fix `make headers`

* URLSearchParams.length

* FormData length

* URLSearchParams length

* Fix `make headers`

* very fancy length

* Fix bug with exceptions being ignored sometimes

* Add tests for extension toHaveLength

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-26 03:32:28 -07:00
Jarred Sumner
88d9bac5ec Support with { type: "macro"} in bun build (#3059)
* [bun macro] Support `assert { type: "macro" }` and `with {type: "macro"}`

* [bun macro] Pass through input as arguments instead of a JSNode

* Fix hang when loading many entry points simultaneously with macros

* do not clone

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-24 19:37:57 -07:00
dave caruso
83e7b9e198 fix extra/ArbitraryModuleNamespaceIdentifiers2 (#3016)
* fix extra/ArbitraryModuleNamespaceIdentifiers2

* remove assert
2023-05-22 20:59:25 -07:00
Dylan Conway
aa34529b5b resolve rope string for multipart template (#2963)
* resolve rope for multipart template

* fix tests

* clone template part if it is `e_string` and folded

* clone string only

* don't clone data again
2023-05-19 16:04:38 -07:00
Dylan Conway
621232c197 use raw template contents for tagged templates (#2937)
* use raw template contents when tagged

* use union for template contents

* pointer to cooked contents

* raw if suffix

* fix and don't skip test
2023-05-18 10:52:34 -07:00
Jarred Sumner
25447426f1 Make BuildError and ResolveError use C++ instead of JSC C API
Fixes memory leak with private data never being cleared
Fixes a case where a ResolveError could actually be a BuildError
2023-05-17 18:51:50 -07:00
Dylan Conway
bf1216021e resolve rope before pushing to previous string (#2909) 2023-05-16 17:19:56 -07:00
Dylan Conway
9c85483a81 handle printing missing expressions and add tests (#2872)
* handle missing expressions and add tests

* minify missing expression blocks in parser
2023-05-15 21:50:44 -07:00
Jarred Sumner
155110a03a Fix our tree shaking optimization 2023-05-11 23:19:21 -07:00
dave caruso
6a163cf933 bundler tests and improve Bun.build return type (#2833)
* importstar_ts

* tests

* run acorn test suite

* bench tweaks

* test

* bun.build tests very incomplete

* remove dataurl and base64 loaders from tests since they dont work yet

* tests

* stuff

* stuff

* add errors and array of blobs

* work so far

* docs

* requested changes

* fix overwrite docs

* remove this file
2023-05-11 14:42:54 -07:00
Dylan Conway
8f4a5903ab make sure vars can be hoisted in catch scope (#2847) 2023-05-10 23:55:27 -07:00
Dylan Conway
1f8c60123d fix catch scope var declarations (#2839)
* use `catch_binding` kind and report errors

* make hash optional
2023-05-09 23:52:40 -07:00
Dylan Conway
eb2510170f resolve rope string before returning (#2838) 2023-05-09 20:33:26 -07:00
Jarred Sumner
ff1edca9ee Fix regression with bun test not recursively scanning the directory tree 2023-05-09 14:56:39 -07:00
Dylan Conway
e74207650b Fix bug with float minification 2023-05-08 23:07:14 -07:00
Jarred Sumner
35685bbc86 Reduce the size of the JS AST to attempt to resolve the linux performance issue 2023-05-07 22:33:59 -07:00
Jarred Sumner
af1cd23b8c Add tracy (#2817)
* Add tracy

* RTLD

* Linux needs LD_PRELOAD

* More tracing

* Inline this

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-07 21:08:32 -07:00
Jarred Sumner
d3ae9ac7ce experiment to try to fix linux bundler perf regression 2023-05-07 01:51:05 -07:00
Jarred Sumner
4708835ae6 [minifier] Rewrite equality check logic 2023-05-06 18:23:37 -07:00
Jarred Sumner
5327940132 Fixes https://github.com/oven-sh/bun/issues/2810 2023-05-06 18:16:21 -07:00
Dylan Conway
8e18229d5d parse and visit catch body scope (#2796) 2023-05-04 08:21:33 -07:00
Jarred Sumner
9b5caf7467 Implement synthetic default export 2023-05-03 00:55:06 -07:00
Jarred Sumner
1346293619 Add missing function 2023-05-02 22:12:56 -07:00
Jarred Sumner
b3c7d0ea23 Small improvement to minifier 2023-05-01 21:00:31 -07:00
Jarred Sumner
44fbd7719e Fix some splitting bugs 2023-05-01 15:04:46 -07:00
Dylan Conway
0490bd3d2e Implement source maps (#2770)
* wip

* Begin computing source map tables

* source map progress

* external source maps

* fix merge

* remove `@as` coercion

* inline source maps and output source map shifts

* fix `codeWithSourceMapShifts()` after merge

* remove second call to `findReachableFiles()`

* use `worker.allocator`, remove comment

* don't reuse memory for source and sourceContents

* don't reuse `quote_buf`

* fix writing to stdout

* Add comment

* Don't include a sourcemap if the text was empty

* Make the parser faster

* +16% faster sourcemap generation

@dylan-conway I'll need you to look this over to make sure I didn't mess anything up

Though it currently doesn't generate the offsets in the right order...

* 30% performance improvement to Bun.build()

* Print `debugId` in source maps

cc @mitsuhiko @notzeeg

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-30 22:09:40 -07:00
Jarred Sumner
c3dc64d468 Fix a load order issue 2023-04-29 21:37:04 -07:00
dave caruso
96e113f41c bundler tests: rest of default.test.ts and starting jsx tests (#2765) 2023-04-28 21:08:48 -07:00
Ciro Spaciari
4515a6373e Improves Body.Value life cycle and Signal life cycle on server.zig (#2752)
* reestruct request body value and signal

* revert react-hello-world

* fix constructInto and test

* fmt

* fix body nullable

* Request can outlive RequestContext

* fmt

* BodyValue is now HiveRef

* hasDecl for Ref and HiveRef

* fix deinit call on Ref/HiveRef

* adds InlineBlob

* fix Bun.inspect when using InlineBlob

* revert InlineBlob

* Fix mimalloc-debug

* Add TODO note

* fix: make node:crypto Hash.copy work correctly (#2761)

This commit will also:
- add a CryptoHasher.copy function
- make CryptoHasher.digest reset the hasher so it can be reused

Resolves #2651

* 💅

* address unicode issue (#2763)

* Fix an oopsie

* Another oopsie

* use inline for

* Fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>

* Request can outlive RequestContext

* fmt

* garantee to have the abort signnal attached to the server before abort the client on bun-server test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Silver <14016168+silversquirl@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-04-28 13:40:44 -07:00
Jarred Sumner
316a75005b Inline spreads of array literals 2023-04-26 22:32:31 -07:00
Dylan Conway
75e3546f3a ensure super() is not merged with adjacent statements (#2757)
* ensure `super()` is not merged with adjacent statements

* add TODO
2023-04-26 21:46:35 -07:00
Jarred Sumner
ab447e4ff7 Implement file loader in Bun.build (#2745)
* Update bundle_v2.zig

* Implement `file` loader

* Hash in parallel

* Implement `publicPath`

* simplify

* Update bundle_v2.zig

* Implement `#!`

* Remove unnecessary optional

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-26 07:22:29 -07:00
Jarred Sumner
4b24bb464c Make Bun.build more reliable (#2718)
* One possible implementation to make `Bun.build` work better

* Pass allocator in

* Make our temporary buffers a little safer

* rename

* Fix memory corruption in symbol table

* Add support for deferred idle events in ThreadPool

* Free more memory

* Use a global allocator FS cache

* more `inline`

* Make duping keys optional in StringMap

* Close file handles more often

* Update router.zig

* wip possibly delete this commit

* Fix memory issues and reduce memory usage

* > 0.8

* Switch to AsyncIO.Waker and fix memory leak in JSBundleCompletionTask

* We don't need to clone this actually

* Fix error

* Format

* Fixup

* Fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-22 19:44:23 -07:00
Jarred Sumner
541d16f8be Fix bug with merging adjacent vars 2023-04-20 23:57:44 -07:00
Dylan Conway
94cd68d7a6 append if the previous part is not UTF8 (#2705) 2023-04-20 16:35:01 -07:00
Dylan Conway
d78ecc76c8 Symbol minification (#2695)
* minify

* Update renamer.zig

* --minify-whitespace

* Speed up minification a little

* handle private names

* 5% faster minification

* use helper function

* fix nested scope slots

* `bun build --minify` gets another +8% faster

* print semicolons afterwards

* print semicolon after checking error

* after all error checking

* Delete code for generating legacy bundes

* remove extra whitespace around if statements

* print space before import identifier

* Use `@constCast`

* Make `S.Local#decls` use `BabyList(Decl)`

* Add `fromSlice` helper to `BabyList`

* Remove unnecessary optional chains

* minify `undefined, true, false`

* Another @constCast

* Implement merge adjacent local var

* Support --minify in `bun build --transform`

* skip comments when counting character frequencies

* Don't wrap commonjs with --transform on (unless targeting bun)

* Support --minify in the runtime

* Fix edgecase with import * as

* don't infinite loop

* --trnasform shouldn't mess with require

* Only track comments when minifying

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-20 05:23:12 -07:00
Jarred Sumner
ea47ed0ee5 Fix broken autocomplete 2023-04-19 00:01:27 -07:00
Jarred Sumner
dec5b07782 Fix template string folding bug 2023-04-17 18:01:38 -07:00
Dylan Conway
a17624942e make sure with is parsed as a block (#2680) 2023-04-17 15:54:02 -07:00
Jarred Sumner
eec1a07907 Attempt to automatically handle some cyclical import issues with ESM
Fixes https://github.com/kysely-org/kysely/issues/412
2023-04-16 22:20:22 -07:00