Commit Graph

269 Commits

Author SHA1 Message Date
Jarred Sumner
844d48d346 Merge branch 'main' into jarred/runtime-transpiler-cache 2023-11-29 19:00:27 -08:00
Jarred Sumner
6389a6e24f fix: reduce noise in stack traces (#7307)
* Mark require as private

* [autofix.ci] apply automated fixes

* fix(runtime): clean up cjs + stack trace stuff

- CJS wrapper is like 200x simpler to understand. it is also 1-10% faster
- Make a few more things hidden in stack tracess. This only affects release build.

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2023-11-29 18:03:29 -08:00
Jarred Sumner
2b9213aeb5 Update js_parser.zig 2023-11-29 01:23:17 -08:00
Jarred Sumner
cf1051191e Update js_parser.zig 2023-11-29 01:23:02 -08:00
Jarred Sumner
4408f80e4d More cache invalidation 2023-11-29 01:02:33 -08:00
Jarred Sumner
f872b90b8f Be careful about cache invalidation 2023-11-29 00:56:18 -08:00
Jarred Sumner
5d13a3e737 Runtime Transpiler Cache 2023-11-28 21:39:35 -08:00
Bin Xin
713d72703d feat(transpiler): add jsx spread children support (#7294)
* feat: jsx spread children

* test: spread children
2023-11-27 19:30:59 -08:00
Jarred Sumner
bf32d36e4c Cleanup how build errors are displayed slightly (#7223)
* Cleanup error formatting a little

* Add error for using import statement with CommonJS-only features

* Update js_ast.zig

* Further tweaks to formatting, also print error.cause

* Add some snapshot tests for errors

* Make these snapshot tests

* Ignore mimalloc warnings

* Update error message parsing in bundling tests

* Increase timeout on the test

* Update expectBundled.ts

* Update test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-20 15:07:13 -08:00
Dylan Conway
8be492c080 fix require transpile (#7170)
* bounds checks

* do this all the time

cc @paperdave

* use length of string

* ttest

* min

* can't prefix if length isn't at least equal

* substring

* Update pretty_format.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-17 04:10:50 -08:00
Jarred Sumner
7e0e007e3e Fix bug where with statements do not trigger CommonJS (#7167)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-16 23:37:22 -08:00
Jarred Sumner
77e6b946f4 Support using bultin functions in macros (#7113)
* `zig fmt`

* Support using macros in builtins

* Make fetch work a little better in macros

* Delete a bunch of code

* Update macro-test.test.ts

* Update macro-test.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-15 18:25:27 -08:00
Colin McDonnell
31814934f3 CLI flags (#6395)
* WIP

* WIP

* Improve helptext

* WIP

* WIP

* WIP

* WIP

* Clean up, implement warn_on_unrecognized_flag

* Fix struct

* Tweaks

* Fix bunx test

* Address reviews

* Init and create

* Updates

* bunx

* Tweaks

* Lockfile

* tweak

* tweak

* tweak

* tweak

* Remove comments

* Add back origin and port

* Remove logging

* Updates

* fmt

* fix rebasing mistakes

* bruh

* expose node builtins for -e

* add tests and fix it on windows

* a

* lol

* okay

* finish things up

* Update src/deps/zig-clap/clap/streaming.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

---------

Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-15 18:15:10 -08:00
Jarred Sumner
7a4e0158d6 Lots of stuff (#7027)
* Use debug mode by default

* Enable build with assertions enabled

* Update cli.zig

* Update bun-linux-build.yml

* Fixes

* Fix `ASSERT_ENABLED`

* try this

* Update Dockerfile

* mimalloc debug

* Update CMakeLists.txt

* `Bun.deepMatch` - fix assertion failures

cc @dylan-conway, looks like we need to use `putDirectMayBeIndex` and check for `isCell` more carefully.

* Object.create support in code generator and callbacks wrapper

* Remove unused file

* zig upgrade

* zls

* Fix various errors

* Support `BuiltinAccessor` in create_hash_table script

* Fix assertion failure in `process.mainModule`

* Fix assertion failure in `onerror`

* Fix assertion failure when creating a Worker

* Fix asssertion failure when loading lots of files in bun test

* Fix assertion failure when termating a `Worker`

* Add helper for converting BunString to a WTFString

* Fix assertion failure in notifyNeedTermination

* Add more debug logs in `bun test`

* Fix compiler warning in usockets

* Fix assertion failure with `Worker` termination (another)

* Fix assertion failure in `coerceToInt64`

* Fix assertion failure in `BroadcastChannel`

* Fix assertion failure in `Headers.prototype.getAll`

* Fixes #7067

* Add heap analyzer label for CommonJS modules

* Fix assertion failure in module.require && module.require.resolve

* Remove unused code

* Fix assertion failure in debugger

* Fix crash in debugger

* Fix assertion failures in bun:sqlite

* Bump zig

* Bump WebKit

* Fix assertion failure in JSPromise::reject && JSInternalPromise::reject

* Fix assertion failure in ReadableStream::cancel

* Fix assertion failure in AsyncContextFrame::create

* Fix assertion failure in bun:sqlite

* Fix assertion failure in mocks

* Fix assertion failure in ServerWebSocket.close

* Fix assertion failure in N-API with subclasses

* [napi] Make promises cheaper

* undo

* Don't check for exceptions in ObjectInitializationScope

* Add separate entry point for test runner that doesn't generate code

* Don't deref builtin code

* Fix preload test

* Fix assertion failure in memoryUsage()

* Fix preload test, part 2

* Ensure that the env map for a Worker is empty after it is used

* The pointer for the Arena allocator used in parsing should not change

* Terminate thread on exit

* Start to implement scriptExecutionStatus

* Update worker.test.ts

* Fix Dirent.name setter

* Update settings.json

* Fix assertion failure in node:http

* Use correct value for `JSFinalObject::maxInlineCapacity`

* JSFinalObject::maxInlineCapacity x2

* Don't strip when assertions are enabled

* Make `m_wasTerminated` atomic

* Preserve directives in the transpiler

cc @ctjlewis

* Workaround assertion failure in ServerWebSocket.sendBinary and ServerWebSocket.sendText

* windows

* Buffer lockfile serialization in-memory

* PR feedback

* PR feedback

* PR feedback

* Windows

* quotes

* Update CMakeLists.txt

* Update bun-linux-build.yml

* Update bun-linux-build.yml

* Move this code to BunString.cpp

* Update BunString.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-13 22:10:09 -08:00
Lorenzo Donadio
01e0136d7c fixed small typo in allow_in_out_variance_annotations (#7030) 2023-11-10 15:17:08 -08:00
Jarred Sumner
e7a83ad70e Fix edgecase from eeb3f7be18 (#6870)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-03 02:58:57 -07:00
Dylan Conway
eeb3f7be18 fix jsx key parse and visit order (#6866)
* jsx key parse and visit order

* only use index

* fix underflow

* oops

* tests
2023-11-02 22:56:40 -07:00
Jarred Sumner
b29d68bbaf Fix memory leak in require (#6790)
* Fix memory leak in require() and add test

* Mark fixtures as generated code

* Add optimization for large files

* Fix small memory leak

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-30 23:54:02 -07:00
IAS
cbc5ca770b fix: Macro segmentation faults (#6756)
* Fix for seg faults when using macros

* Update src/js_ast.zig to reflect review suggestions

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* add test for checking non-zero exitcodes under macros. regression, issue 3830

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-10-30 12:36:38 -07:00
dave caruso
387f1260c9 Get Next.js Pages Router to work (#6095)
* hell

* make it so bun-debug-src

* teag

* wild

* yippee

* fas

* fix async hooks assertions

* yap

* yeah that's wild

* aa

* a

* increase time allowed

* so trivial
2023-09-28 03:53:24 -07:00
Dylan Conway
31d96a1b7f fix typescript metadata for import identifiers (#6130)
* handle import identifiers

* a test

* handle dot case
2023-09-27 23:37:53 -07:00
jhmaster
3d37684253 deadCodeElimination toggle for Bun.Transpiler (#5932)
* add Bun.Transpiler DCE option

* mark DCE toggle experimental + tests

* full (hopefully) DCE toggle

* update DCE toggle tests

* add DCE option to types

* run fmt

* Removed uws submodule
2023-09-27 19:26:03 -07:00
Dylan Conway
4a1573e007 decorator metadata defaults and rest args 2023-09-21 12:20:53 -07:00
Dylan Conway
689b28455c add emitDecoratorMetadata (#5777)
* some progess

* needs more tests

* make tests easier to debug

* get metadata for constructor arg decorators

* fix some things

* merge `emitDecoratorMetadata` option

* remove `^`

* bundler tests and get option from tsconfig earlier

* remove spaces

* fix tests
2023-09-20 08:10:03 -07:00
Jarred Sumner
4b00144211 Revert "decode regex if needed (#5167)"
This reverts commit 32664df254.
2023-09-15 05:07:22 -07:00
Dylan Conway
32664df254 decode regex if needed (#5167)
* decode regex if non-ascii

* make it comptime

* add test

* use `bun.BabyList(u16)`
2023-09-13 01:26:18 -07:00
Dylan Conway
900f38d144 keep export star as (#4451) 2023-09-01 22:32:27 -07:00
Jarred Sumner
16b4bf341a Disable minifying "str".length until https://github.com/oven-sh/bun/issues/4217 is fixed 2023-08-24 23:00:53 -07:00
Jason
19aa9d93de update zig to 0.11.0 (#4233)
* WIP

* backup

* more change

* json related error sovled

* number related issue solved

* revert WriterType changed before

* destroy -> free

* jsonStringify related issues solved

* fix mem.free expected []T or *[_]T, passed [*]const u8

* fix expected []T or *[_]T, passed [*:0]const u8

* fix build script

* fix build script, for real

* replace 0.11.0-dev.4006+bf827d0b5 to 0.12.0-dev.161+6a5463951

* fix build on macOS, COPYFILE.DATA -> COPYFILE_DATA

* fix the last destroy on [*]ptr issue

---------

Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
2023-08-24 16:13:14 -07:00
dave caruso
20d42dfaa3 Fix <const T>() => (#4278) 2023-08-23 17:22:54 -07:00
dave caruso
8518fbb573 fix yield (#4264) 2023-08-22 21:54:59 -07:00
Jarred Sumner
3de9ce5f30 Implement --inspect-brk (#4222)
* Implement `--inspect-brk`

* Bump WebKit

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-20 19:34:33 -07:00
Jarred Sumner
943a664224 Remove most C API usages, add debugger pretty printers for Headers, URLSearchParams, FormData, Worker, EventTarget (#4187)
* Add pretty printers for `Headers`, `URLSearchParams`, and `FormData`

* [untested] Add way to code generate getInternalProperties

* bump

* Bump Webkit

* Ref the event loop while loaded

* wip

* checkpoint

* another checkpoint

* The code has been written

* Fixup exports

* Fix all the errors

* Fix bug

* [console.log] Fix bug when printing non-reified types missing values

* Fix loading hash table

* fix plugin

* Fix ref & unref

* auto-unref

* various fixes

* Update bun.zig

* Set toStringTag

* Delete code for macro JSX

* Delete code for `bun dev` HTTP JS

* Move Bun.serve to C++ API

* Delete JSC C API code

* ✂️ 💀 code

* Use JSC C++ for `confirm`, `Crypto`, `prompt`, `alert`

* more dead code

* Update exports.zig

* Use JSC C++ API for FFI

* Remove remaining usages

* Remove remaining usages

* Update ffi.ts

* Update InternalModuleRegistryConstants.h

* draw the rest of the owl

* Update webcore.zig

* bind it

* Fix performance regression in crypto.randomUIUD()

* Update js_parser.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-18 19:58:03 -07:00
Jarred Sumner
ca26780b27 Deprecate loading node_modules.bun (#4131)
* Deprecate loading `node_modules.bun`

* realpath

* regenerate schema

* More

* more

* Update cli.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-11 22:13:46 -07:00
Jarred Sumner
43ebffedcd Support TypeScript's export type * as Foo from 'bar' (#4125)
* [TypeScript] Support `export type * as Foo from 'bar'`

* Update js_parser.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-11 18:06:48 -07:00
Jarred Sumner
bed7ff7dd0 Remove unintentional logs from #4043 2023-08-08 22:59:40 -07:00
Jarred Sumner
f2f227720b WASM test analyzer (#4043)
* wasm

* WASM test scanner

* Update Makefile

* Update Makefile

* Configurable heap limit

* slightly better error

* Update js_parser.zig

* Update path.test.js

* Update node.mjs

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-07 18:51:16 -07:00
Jarred Sumner
8297fb0d2f Bind require.resolve() (#4030)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-06 18:06:18 -07:00
dave caruso
3803d39840 Remove Bun.plugin transpiler hook, encourage usage of --preload instead (#3987)
* Remove Bun.plugin transpiler hook

* one missing case
2023-08-05 04:42:30 -07:00
Dylan Conway
1a558ef753 fix decorator and declare (#3828)
* return the prop if there are decorators

* test and comment
2023-07-26 16:31:08 -07:00
Dylan Conway
aa1ad7f009 string escape edgecase (#3717)
* fix edgecase when joining rope strings with backtick

* bonus bugfix in ts decorator

* Update transpiler.test.js

* Fix test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-07-21 01:35:06 -07:00
Dylan Conway
68b4a64569 resolveRopeIfNeeded (#3708) 2023-07-20 14:50:23 -07:00
Dylan Conway
bc28ec39cf set did_panic flag (#3687) 2023-07-19 15:39:15 -07:00
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
59570fe237 Handle case with TS decorators and export default anonymous class (#3578)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-08 17:41:24 -07:00
Jarred Sumner
fa632c3331 Fix bug with decorators not being generated in export default class (#3577)
* Fix bug with decorators not being generated in `export default class`

* Update decorator-export-default-class-fixture.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-08 04:00:55 -07:00
Jarred Sumner
ee57935260 Fixes #3537 (#3539)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-06 00:06:43 -07:00
Dylan Conway
6bf8f6f9f2 don't unwrap react below version 18.0.0 (#3538)
* don't unwrap react below version 18

* empty string

* also `react-dom`
2023-07-05 22:23: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
9c66fdc703 [bundler] avoid printing unnecessary declarations (#3456)
* skip declarations without values

* tests

* deoptimize cjs when decls are needed
2023-06-29 14:51:24 -07:00