diff options
-rw-r--r-- | src/bun.js/test/jest.zig | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/bun.js/test/jest.zig b/src/bun.js/test/jest.zig index 240698753..c0c607622 100644 --- a/src/bun.js/test/jest.zig +++ b/src/bun.js/test/jest.zig @@ -1201,20 +1201,27 @@ pub const TestScope = struct { exception: js.ExceptionRef, is_only: bool, ) js.JSObjectRef { - var args = arguments[0..@minimum(arguments.len, 2)]; + var args = bun.cast([]const JSC.JSValue, arguments[0..@minimum(arguments.len, 2)]); var label: string = ""; if (args.len == 0) { return this; } - if (js.JSValueIsString(ctx, args[0])) { + var label_value = args[0]; + var function_value = if (args.len > 1) args[1] else JSC.JSValue.zero; + + if (label_value.isEmptyOrUndefinedOrNull() or !label_value.isString()) { + function_value = label_value; + label_value = .zero; + } + + if (label_value != .zero) { const allocator = getAllocator(ctx); - label = (JSC.JSValue.fromRef(arguments[0]).toSlice(ctx, allocator).cloneIfNeeded(allocator) catch unreachable).slice(); - args = args[1..]; + label = (label_value.toSlice(ctx, allocator).cloneIfNeeded(allocator) catch unreachable).slice(); } - var function = args[0].?.value(); - if (!function.isCell() or !function.isCallable(ctx.vm())) { + const function = function_value; + if (function.isEmptyOrUndefinedOrNull() or !function.isCell() or !function.isCallable(ctx.vm())) { JSError(getAllocator(ctx), "test() expects a function", .{}, ctx, exception); return this; } |