aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-24 00:59:27 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-02-24 00:59:27 -0800
commit3182c5d304f1ef839815e335ef27a6aa99c030e6 (patch)
tree5c2cc5396e1b1edf45f5ddc61bf05ce64f8e3adc
parent8effa394100b26805cc9ca298659f1a5a7c3dda9 (diff)
downloadbun-3182c5d304f1ef839815e335ef27a6aa99c030e6.tar.gz
bun-3182c5d304f1ef839815e335ef27a6aa99c030e6.tar.zst
bun-3182c5d304f1ef839815e335ef27a6aa99c030e6.zip
Update javascript.zig
Diffstat (limited to '')
-rw-r--r--src/javascript/jsc/javascript.zig111
1 files changed, 110 insertions, 1 deletions
diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig
index de15f6197..b843b7c57 100644
--- a/src/javascript/jsc/javascript.zig
+++ b/src/javascript/jsc/javascript.zig
@@ -952,6 +952,105 @@ pub const Bun = struct {
Reporter.globalError(error.SegfaultTest);
}
+ // pub const Lockfile = struct {
+ // const BunLockfile = @import("../../install/install.zig").Lockfile;
+ // pub const Class = NewClass(
+ // void,
+ // .{
+ // .name = "Lockfile",
+ // .read_only = true,
+ // },
+ // .{
+ // . = .{
+ // .rfn = BunLockfile.load,
+ // },
+ // },
+ // .{},
+ // );
+
+ // pub const StaticClass = NewClass(
+ // void,
+ // .{
+ // .name = "Lockfile",
+ // .read_only = true,
+ // },
+ // .{
+ // .load = .{
+ // .rfn = BunLockfile.load,
+ // },
+ // },
+ // .{},
+ // );
+
+ // pub fn load(
+ // // this
+ // _: void,
+ // ctx: js.JSContextRef,
+ // // function
+ // _: js.JSObjectRef,
+ // // thisObject
+ // _: js.JSObjectRef,
+ // arguments: []const js.JSValueRef,
+ // exception: js.ExceptionRef,
+ // ) js.JSValueRef {
+ // if (arguments.len == 0) {
+ // JSError(undefined, "Expected file path string or buffer", .{}, ctx, exception);
+ // return null;
+ // }
+
+ // var lockfile: *BunLockfile = getAllocator(ctx).create(BunLockfile) catch return JSValue.jsUndefined().asRef();
+
+ // var log = logger.Log.init(default_allocator);
+ // var args_slice = @ptrCast([*]const JSValue, arguments.ptr)[0..arguments.len];
+
+ // var arguments_slice = Node.ArgumentsSlice.init(args_slice);
+ // var path_or_buffer = Node.PathLike.fromJS(ctx, &arguments_slice, exception) orelse {
+ // getAllocator(ctx).destroy(lockfile);
+ // JSError(undefined, "Expected file path string or buffer", .{}, ctx, exception);
+ // return null;
+ // };
+
+ // const load_from_disk_result = switch (path_or_buffer) {
+ // Node.PathLike.Tag.string => lockfile.loadFromDisk(getAllocator(ctx), &log, path_or_buffer.string),
+ // Node.PathLike.Tag.buffer => lockfile.loadFromBytes(getAllocator(ctx), path_or_buffer.buffer.slice(), &log),
+ // else => {
+ // getAllocator(ctx).destroy(lockfile);
+ // JSError(undefined, "Expected file path string or buffer", .{}, ctx, exception);
+ // return null;
+ // }
+ // };
+
+ // switch (load_from_disk_result) {
+ // .err => |cause| {
+ // defer getAllocator(ctx).destroy(lockfile);
+ // switch (cause.step) {
+ // .open_file => {
+ // JSError(undefined, "error opening lockfile: {s}", .{
+ // @errorName(cause.value),
+ // }, ctx, exception);
+ // return null;
+ // },
+ // .parse_file => {
+ // JSError(undefined, "error parsing lockfile: {s}", .{
+ // @errorName(cause.value),
+ // }, ctx, exception);
+ // return null;
+ // },
+ // .read_file => {
+ // JSError(undefined, "error reading lockfile: {s}", .{
+ // @errorName(cause.value),
+ // }, ctx, exception);
+ // return null;
+ // },
+ // }
+ // },
+ // .ok => {
+
+ // },
+ // }
+ // }
+ // };
+
pub const TOML = struct {
const TOMLParser = @import("../../toml/toml_parser.zig").TOML;
pub const Class = NewClass(
@@ -1558,6 +1657,15 @@ pub const VirtualMachine = struct {
this.event_loop = &this.regular_event_loop;
}
+ pub fn getAPIGlobals() []js.JSClassRef {
+ var classes = default_allocator.alloc(js.JSClassRef, GlobalClasses.len) catch return &[_]js.JSClassRef{};
+ inline for (GlobalClasses) |Class, i| {
+ classes[i] = Class.get().*;
+ }
+
+ return classes;
+ }
+
pub fn init(
allocator: std.mem.Allocator,
_args: Api.TransformOptions,
@@ -1583,6 +1691,7 @@ pub const VirtualMachine = struct {
existing_bundle,
env_loader,
);
+
VirtualMachine.vm.* = VirtualMachine{
.global = undefined,
.allocator = allocator,
@@ -2392,7 +2501,7 @@ pub const VirtualMachine = struct {
return;
}
- if (js.JSValueIsObject(vm.global.ref(), value.asRef())) {
+ if (js.JSValueIsObject(this.global.ref(), value.asRef())) {
if (js.JSObjectGetPrivate(value.asRef())) |priv| {
was_internal = this.printErrorFromMaybePrivateData(priv, exception_list, allow_ansi_color);
return;