aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-05-01 01:28:40 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-05-01 01:28:40 -0700
commit3050d5a1a4def6fe90b62854e2252e308f5f708a (patch)
tree508eb5c8033779b92650f6d129251c1b9a5199b8 /src/main.zig
parent7005f4c43c8fa403b85f14afcf4c9b5a4c8c4cbc (diff)
downloadbun-3050d5a1a4def6fe90b62854e2252e308f5f708a.tar.gz
bun-3050d5a1a4def6fe90b62854e2252e308f5f708a.tar.zst
bun-3050d5a1a4def6fe90b62854e2252e308f5f708a.zip
Assorted bugfixes but the next step really is porting tests and fixing
Former-commit-id: f59ec8d6c0c95217c1dc24e2ed2dc49aed122a68
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/main.zig b/src/main.zig
index b1250fc56..d67ba6167 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -10,9 +10,24 @@ const js_ast = @import("js_ast.zig");
const linker = @import("linker.zig");
usingnamespace @import("ast/base.zig");
usingnamespace @import("defines.zig");
+const panicky = @import("panic_handler.zig");
+
+const MainPanicHandler = panicky.NewPanicHandler(panicky.default_panic);
+
+pub fn panic(msg: []const u8, error_return_trace: ?*std.builtin.StackTrace) noreturn {
+ if (MainPanicHandler.Singleton) |singleton| {
+ MainPanicHandler.handle_panic(msg, error_return_trace);
+ } else {
+ panicky.default_panic(msg, error_return_trace);
+ }
+}
pub fn main() anyerror!void {
try alloc.setup(std.heap.page_allocator);
+ var log = logger.Log.init(alloc.dynamic);
+ var panicker = MainPanicHandler.init(&log);
+ panicker.skip_next_panic = true;
+ MainPanicHandler.Singleton = &panicker;
const args = try std.process.argsAlloc(alloc.dynamic);
const stdout = std.io.getStdOut();
@@ -30,7 +45,7 @@ pub fn main() anyerror!void {
const code = try file.readToEndAlloc(alloc.dynamic, stat.size);
const opts = try options.TransformOptions.initUncached(alloc.dynamic, entryPointName, code);
- var log = logger.Log.init(alloc.dynamic);
+
var source = logger.Source.initFile(opts.entry_point, alloc.dynamic);
var ast: js_ast.Ast = undefined;
var raw_defines = RawDefines.init(alloc.static);
@@ -79,13 +94,10 @@ pub fn main() anyerror!void {
);
if (std.builtin.mode == std.builtin.Mode.Debug) {
- std.debug.print("\n--AST DEBUG--:\n", .{});
- std.debug.print("Lines: {d}\n", .{ast.approximate_line_count});
- std.debug.print("Parts: {d}\n{s}\n", .{ ast.parts.len, ast.parts });
- std.debug.print("Symbols: {d}\n{s}\n", .{ ast.symbols.len, ast.symbols });
- std.debug.print("Imports: {d}\n{s}\n", .{ ast.named_exports.count(), ast.named_imports });
- std.debug.print("Exports: {d}\n{s}\n", .{ ast.named_imports.count(), ast.named_exports });
- std.debug.print("\n--AST DEBUG--:\n", .{});
+ var fixed_buffer = [_]u8{0} ** 512000;
+ var buf_stream = std.io.fixedBufferStream(&fixed_buffer);
+
+ try ast.toJSON(alloc.dynamic, stderr.writer());
}
_ = try stdout.write(printed.js);