mirror of
https://github.com/oven-sh/bun
synced 2026-02-11 11:29:02 +00:00
fix errorssome names
Former-commit-id: a0ceae3471aa3b16356588645eeca1f2159de356
This commit is contained in:
@@ -675,6 +675,11 @@ bool JSC__JSValue__isBigInt32(JSC__JSValue JSValue0) {
|
||||
bool JSC__JSValue__isBoolean(JSC__JSValue JSValue0) {
|
||||
return JSC::JSValue::decode(JSValue0).isBoolean();
|
||||
}
|
||||
|
||||
bool JSC__JSValue__isClass(JSC__JSValue JSValue0, JSC__JSGlobalObject *arg1) {
|
||||
JSC::JSValue value = JSC::JSValue::decode(JSValue0);
|
||||
return value.isConstructor(arg1->vm());
|
||||
}
|
||||
bool JSC__JSValue__isCell(JSC__JSValue JSValue0) { return JSC::JSValue::decode(JSValue0).isCell(); }
|
||||
bool JSC__JSValue__isCustomGetterSetter(JSC__JSValue JSValue0) {
|
||||
return JSC::JSValue::decode(JSValue0).isCustomGetterSetter();
|
||||
@@ -1114,6 +1119,71 @@ void exceptionFromString(ZigException *except, JSC::JSValue value, JSC::JSGlobal
|
||||
ref->ref();
|
||||
}
|
||||
|
||||
static WTF::StringView function_string_view = WTF::StringView("Function");
|
||||
void JSC__JSValue__getClassName(JSC__JSValue JSValue0, JSC__JSGlobalObject *arg1, ZigString *arg2) {
|
||||
JSC::JSCell *cell = JSC::JSValue::decode(JSValue0).asCell();
|
||||
if (cell == nullptr) {
|
||||
arg2->len = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
const char *ptr = cell->className(arg1->vm());
|
||||
auto view = WTF::StringView(ptr);
|
||||
|
||||
// Fallback to .name if className is empty
|
||||
if (view.length() == 0 || view == function_string_view) {
|
||||
JSC__JSValue__getNameProperty(JSValue0, arg1, arg2);
|
||||
return;
|
||||
} else {
|
||||
*arg2 = Zig::toZigString(view);
|
||||
return;
|
||||
}
|
||||
|
||||
arg2->len = 0;
|
||||
}
|
||||
void JSC__JSValue__getNameProperty(JSC__JSValue JSValue0, JSC__JSGlobalObject *arg1,
|
||||
ZigString *arg2) {
|
||||
|
||||
JSC::JSObject *obj = JSC::JSValue::decode(JSValue0).getObject();
|
||||
|
||||
if (obj == nullptr) {
|
||||
arg2->len = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
JSC::JSValue name = obj->getDirect(arg1->vm(), arg1->vm().propertyNames->name);
|
||||
if (name && name.isString()) {
|
||||
auto str = name.toWTFString(arg1);
|
||||
if (!str.isEmpty()) {
|
||||
*arg2 = Zig::toZigString(str);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (JSC::JSFunction *function = JSC::jsDynamicCast<JSC::JSFunction *>(arg1->vm(), obj)) {
|
||||
|
||||
WTF::String actualName = function->name(arg1->vm());
|
||||
if (!actualName.isEmpty() || function->isHostOrBuiltinFunction()) {
|
||||
*arg2 = Zig::toZigString(actualName);
|
||||
return;
|
||||
}
|
||||
|
||||
actualName = function->jsExecutable()->name().string();
|
||||
|
||||
*arg2 = Zig::toZigString(actualName);
|
||||
return;
|
||||
}
|
||||
|
||||
if (JSC::InternalFunction *function =
|
||||
JSC::jsDynamicCast<JSC::InternalFunction *>(arg1->vm(), obj)) {
|
||||
auto view = WTF::StringView(function->name());
|
||||
*arg2 = Zig::toZigString(view);
|
||||
return;
|
||||
}
|
||||
|
||||
arg2->len = 0;
|
||||
}
|
||||
|
||||
void JSC__JSValue__toZigException(JSC__JSValue JSValue0, JSC__JSGlobalObject *arg1,
|
||||
ZigException *exception) {
|
||||
JSC::JSValue value = JSC::JSValue::decode(JSValue0);
|
||||
|
||||
@@ -1214,6 +1214,18 @@ pub const JSValue = enum(i64) {
|
||||
return cppFn("isObject", .{this});
|
||||
}
|
||||
|
||||
pub fn isClass(this: JSValue, global: *JSGlobalObject) bool {
|
||||
return cppFn("isClass", .{ this, global });
|
||||
}
|
||||
|
||||
pub fn getNameProperty(this: JSValue, global: *JSGlobalObject, ret: *ZigString) void {
|
||||
cppFn("getNameProperty", .{ this, global, ret });
|
||||
}
|
||||
|
||||
pub fn getClassName(this: JSValue, global: *JSGlobalObject, ret: *ZigString) void {
|
||||
cppFn("getClassName", .{ this, global, ret });
|
||||
}
|
||||
|
||||
pub fn isCell(this: JSValue) bool {
|
||||
return cppFn("isCell", .{this});
|
||||
}
|
||||
@@ -1322,7 +1334,7 @@ pub const JSValue = enum(i64) {
|
||||
return @intToPtr(*c_void, @intCast(usize, @enumToInt(this)));
|
||||
}
|
||||
|
||||
pub const Extern = [_][]const u8{ "getErrorsProperty", "toInt32", "toBoolean", "isInt32", "isIterable", "forEach", "isAggregateError", "toZigException", "isException", "toWTFString", "hasProperty", "getPropertyNames", "getDirect", "putDirect", "get", "getIfExists", "asString", "asObject", "asNumber", "isError", "jsNull", "jsUndefined", "jsTDZValue", "jsBoolean", "jsDoubleNumber", "jsNumberFromDouble", "jsNumberFromChar", "jsNumberFromU16", "jsNumberFromInt32", "jsNumberFromInt64", "jsNumberFromUint64", "isUndefined", "isNull", "isUndefinedOrNull", "isBoolean", "isAnyInt", "isUInt32AsAnyInt", "isInt32AsAnyInt", "isNumber", "isString", "isBigInt", "isHeapBigInt", "isBigInt32", "isSymbol", "isPrimitive", "isGetterSetter", "isCustomGetterSetter", "isObject", "isCell", "asCell", "toString", "toStringOrNull", "toPropertyKey", "toPropertyKeyValue", "toObject", "toString", "getPrototype", "getPropertyByPropertyName", "eqlValue", "eqlCell", "isCallable" };
|
||||
pub const Extern = [_][]const u8{ "isClass", "getNameProperty", "getClassName", "getErrorsProperty", "toInt32", "toBoolean", "isInt32", "isIterable", "forEach", "isAggregateError", "toZigException", "isException", "toWTFString", "hasProperty", "getPropertyNames", "getDirect", "putDirect", "get", "getIfExists", "asString", "asObject", "asNumber", "isError", "jsNull", "jsUndefined", "jsTDZValue", "jsBoolean", "jsDoubleNumber", "jsNumberFromDouble", "jsNumberFromChar", "jsNumberFromU16", "jsNumberFromInt32", "jsNumberFromInt64", "jsNumberFromUint64", "isUndefined", "isNull", "isUndefinedOrNull", "isBoolean", "isAnyInt", "isUInt32AsAnyInt", "isInt32AsAnyInt", "isNumber", "isString", "isBigInt", "isHeapBigInt", "isBigInt32", "isSymbol", "isPrimitive", "isGetterSetter", "isCustomGetterSetter", "isObject", "isCell", "asCell", "toString", "toStringOrNull", "toPropertyKey", "toPropertyKeyValue", "toObject", "toString", "getPrototype", "getPropertyByPropertyName", "eqlValue", "eqlCell", "isCallable" };
|
||||
};
|
||||
|
||||
pub const PropertyName = extern struct {
|
||||
|
||||
@@ -26,7 +26,7 @@ pub const ZigGlobalObject = extern struct {
|
||||
if (!sigaction_installed) {
|
||||
sigaction_installed = true;
|
||||
|
||||
sigaction = std.mem.zeroes(std.os.Sigaction);
|
||||
sigaction = std.mem.zeroes(std.os.Sigaction);
|
||||
sigaction.handler = .{ .sigaction = Handler.global_signal_handler_fn };
|
||||
|
||||
std.os.sigaction(std.os.SIGABRT, &sigaction, null);
|
||||
@@ -548,9 +548,21 @@ pub const ZigConsoleClient = struct {
|
||||
|
||||
if (len == 1) {
|
||||
if (Output.enable_ansi_colors) {
|
||||
FormattableType.format(@TypeOf(buffered_writer.unbuffered_writer), buffered_writer.unbuffered_writer, vals[0], true) catch {};
|
||||
FormattableType.format(
|
||||
@TypeOf(buffered_writer.unbuffered_writer),
|
||||
buffered_writer.unbuffered_writer,
|
||||
vals[0],
|
||||
global,
|
||||
true,
|
||||
) catch {};
|
||||
} else {
|
||||
FormattableType.format(@TypeOf(buffered_writer.unbuffered_writer), buffered_writer.unbuffered_writer, vals[0], false) catch {};
|
||||
FormattableType.format(
|
||||
@TypeOf(buffered_writer.unbuffered_writer),
|
||||
buffered_writer.unbuffered_writer,
|
||||
vals[0],
|
||||
global,
|
||||
false,
|
||||
) catch {};
|
||||
}
|
||||
|
||||
_ = buffered_writer.unbuffered_writer.write("\n") catch 0;
|
||||
@@ -567,13 +579,13 @@ pub const ZigConsoleClient = struct {
|
||||
while (i < len) : (i += 1) {
|
||||
_ = if (i > 0) (writer.write(" ") catch 0);
|
||||
|
||||
FormattableType.format(@TypeOf(writer), writer, values[i], true) catch {};
|
||||
FormattableType.format(@TypeOf(writer), writer, values[i], global, true) catch {};
|
||||
}
|
||||
} else {
|
||||
while (i < len) : (i += 1) {
|
||||
_ = if (i > 0) (writer.write(" ") catch 0);
|
||||
|
||||
FormattableType.format(@TypeOf(writer), writer, values[i], false) catch {};
|
||||
FormattableType.format(@TypeOf(writer), writer, values[i], global, false) catch {};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -589,8 +601,8 @@ pub const ZigConsoleClient = struct {
|
||||
Null,
|
||||
Boolean,
|
||||
const CellType = CAPI.CellType;
|
||||
|
||||
pub fn format(comptime Writer: type, writer: Writer, value: JSValue, comptime enable_ansi_colors: bool) anyerror!void {
|
||||
threadlocal var name_buf: [512]u8 = undefined;
|
||||
pub fn format(comptime Writer: type, writer: Writer, value: JSValue, globalThis: *JSGlobalObject, comptime enable_ansi_colors: bool) anyerror!void {
|
||||
if (value.isCell()) {
|
||||
if (CAPI.JSObjectGetPrivate(value.asRef())) |private_data_ptr| {
|
||||
const priv_data = JS.JSPrivateDataPtr.from(private_data_ptr);
|
||||
@@ -633,10 +645,20 @@ pub const ZigConsoleClient = struct {
|
||||
try writer.print(comptime Output.prettyFmt("<r><yellow>null<r>", enable_ansi_colors), .{});
|
||||
} else if (value.isBoolean()) {
|
||||
if (value.toBoolean()) {
|
||||
try writer.print(comptime Output.prettyFmt("<r><blue>true<r>", enable_ansi_colors), .{});
|
||||
try writer.print(comptime Output.prettyFmt("<r><yellow>true<r>", enable_ansi_colors), .{});
|
||||
} else {
|
||||
try writer.print(comptime Output.prettyFmt("<r><blue>false<r>", enable_ansi_colors), .{});
|
||||
try writer.print(comptime Output.prettyFmt("<r><yellow>false<r>", enable_ansi_colors), .{});
|
||||
}
|
||||
// } else if (value.isSymbol()) {
|
||||
// try writer.print(comptime Output.prettyFmt("<r><yellow>Symbol(\"{s}\")<r>", enable_ansi_colors), .{ value.getDescriptionProperty() });
|
||||
} else if (value.isClass(globalThis)) {
|
||||
var printable = ZigString.init(&name_buf);
|
||||
value.getClassName(globalThis, &printable);
|
||||
try writer.print("[class {s}]", .{printable.slice()});
|
||||
} else if (value.isCallable(globalThis.vm())) {
|
||||
var printable = ZigString.init(&name_buf);
|
||||
value.getNameProperty(globalThis, &printable);
|
||||
try writer.print("[Function {s}]", .{printable.slice()});
|
||||
} else {
|
||||
var str = value.toWTFString(JS.VirtualMachine.vm.global);
|
||||
_ = try writer.write(str.slice());
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-- AUTOGENERATED FILE -- 1627963169
|
||||
//-- AUTOGENERATED FILE -- 1627967644
|
||||
// clang-format off
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//-- AUTOGENERATED FILE -- 1627963169
|
||||
//-- AUTOGENERATED FILE -- 1627967644
|
||||
// clang-format: off
|
||||
#pragma once
|
||||
|
||||
@@ -413,7 +413,9 @@ CPP_DECL JSC__JSString* JSC__JSValue__asString(JSC__JSValue JSValue0);
|
||||
CPP_DECL bool JSC__JSValue__eqlCell(JSC__JSValue JSValue0, JSC__JSCell* arg1);
|
||||
CPP_DECL bool JSC__JSValue__eqlValue(JSC__JSValue JSValue0, JSC__JSValue JSValue1);
|
||||
CPP_DECL void JSC__JSValue__forEach(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1, void (* ArgFn2)(JSC__VM* arg0, JSC__JSGlobalObject* arg1, JSC__JSValue JSValue2));
|
||||
CPP_DECL void JSC__JSValue__getClassName(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1, ZigString* arg2);
|
||||
CPP_DECL JSC__JSValue JSC__JSValue__getErrorsProperty(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1);
|
||||
CPP_DECL void JSC__JSValue__getNameProperty(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1, ZigString* arg2);
|
||||
CPP_DECL JSC__JSValue JSC__JSValue__getPrototype(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1);
|
||||
CPP_DECL bool JSC__JSValue__isAggregateError(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1);
|
||||
CPP_DECL bool JSC__JSValue__isAnyInt(JSC__JSValue JSValue0);
|
||||
@@ -422,6 +424,7 @@ CPP_DECL bool JSC__JSValue__isBigInt32(JSC__JSValue JSValue0);
|
||||
CPP_DECL bool JSC__JSValue__isBoolean(JSC__JSValue JSValue0);
|
||||
CPP_DECL bool JSC__JSValue__isCallable(JSC__JSValue JSValue0, JSC__VM* arg1);
|
||||
CPP_DECL bool JSC__JSValue__isCell(JSC__JSValue JSValue0);
|
||||
CPP_DECL bool JSC__JSValue__isClass(JSC__JSValue JSValue0, JSC__JSGlobalObject* arg1);
|
||||
CPP_DECL bool JSC__JSValue__isCustomGetterSetter(JSC__JSValue JSValue0);
|
||||
CPP_DECL bool JSC__JSValue__isError(JSC__JSValue JSValue0);
|
||||
CPP_DECL bool JSC__JSValue__isException(JSC__JSValue JSValue0, JSC__VM* arg1);
|
||||
|
||||
@@ -236,7 +236,9 @@ pub extern fn JSC__JSValue__asString(JSValue0: JSC__JSValue) [*c]JSC__JSString;
|
||||
pub extern fn JSC__JSValue__eqlCell(JSValue0: JSC__JSValue, arg1: [*c]JSC__JSCell) bool;
|
||||
pub extern fn JSC__JSValue__eqlValue(JSValue0: JSC__JSValue, JSValue1: JSC__JSValue) bool;
|
||||
pub extern fn JSC__JSValue__forEach(JSValue0: JSC__JSValue, arg1: [*c]JSC__JSGlobalObject, ArgFn2: ?fn ([*c]JSC__VM, [*c]JSC__JSGlobalObject, JSC__JSValue) callconv(.C) void) void;
|
||||
pub extern fn JSC__JSValue__getClassName(JSValue0: JSC__JSValue, arg1: [*c]JSC__JSGlobalObject, arg2: [*c]ZigString) void;
|
||||
pub extern fn JSC__JSValue__getErrorsProperty(JSValue0: JSC__JSValue, arg1: [*c]JSC__JSGlobalObject) JSC__JSValue;
|
||||
pub extern fn JSC__JSValue__getNameProperty(JSValue0: JSC__JSValue, arg1: [*c]JSC__JSGlobalObject, arg2: [*c]ZigString) void;
|
||||
pub extern fn JSC__JSValue__getPrototype(JSValue0: JSC__JSValue, arg1: [*c]JSC__JSGlobalObject) JSC__JSValue;
|
||||
pub extern fn JSC__JSValue__isAggregateError(JSValue0: JSC__JSValue, arg1: [*c]JSC__JSGlobalObject) bool;
|
||||
pub extern fn JSC__JSValue__isAnyInt(JSValue0: JSC__JSValue) bool;
|
||||
@@ -245,6 +247,7 @@ pub extern fn JSC__JSValue__isBigInt32(JSValue0: JSC__JSValue) bool;
|
||||
pub extern fn JSC__JSValue__isBoolean(JSValue0: JSC__JSValue) bool;
|
||||
pub extern fn JSC__JSValue__isCallable(JSValue0: JSC__JSValue, arg1: [*c]JSC__VM) bool;
|
||||
pub extern fn JSC__JSValue__isCell(JSValue0: JSC__JSValue) bool;
|
||||
pub extern fn JSC__JSValue__isClass(JSValue0: JSC__JSValue, arg1: [*c]JSC__JSGlobalObject) bool;
|
||||
pub extern fn JSC__JSValue__isCustomGetterSetter(JSValue0: JSC__JSValue) bool;
|
||||
pub extern fn JSC__JSValue__isError(JSValue0: JSC__JSValue) bool;
|
||||
pub extern fn JSC__JSValue__isException(JSValue0: JSC__JSValue, arg1: [*c]JSC__VM) bool;
|
||||
|
||||
Reference in New Issue
Block a user