fix bugs found by exception scope verification (#20285)

Co-authored-by: 190n <7763597+190n@users.noreply.github.com>
This commit is contained in:
190n
2025-06-18 23:08:19 -07:00
committed by GitHub
parent aa37ecb7a5
commit 346e97dde2
98 changed files with 4263 additions and 933 deletions

View File

@@ -3715,10 +3715,10 @@ pub fn shellCmdFromJS(
var builder = ShellSrcBuilder.init(globalThis, out_script, jsstrings);
var jsobjref_buf: [128]u8 = [_]u8{0} ** 128;
var string_iter = string_args.arrayIterator(globalThis);
var string_iter = try string_args.arrayIterator(globalThis);
var i: u32 = 0;
const last = string_iter.len -| 1;
while (string_iter.next()) |js_value| {
while (try string_iter.next()) |js_value| {
defer i += 1;
if (!try builder.appendJSValueStr(js_value, false)) {
return globalThis.throw("Shell script string contains invalid UTF-16", .{});
@@ -3726,7 +3726,7 @@ pub fn shellCmdFromJS(
// const str = js_value.getZigString(globalThis);
// try script.appendSlice(str.full());
if (i < last) {
const template_value = template_args.next() orelse {
const template_value = try template_args.next() orelse {
return globalThis.throw("Shell script is missing JSValue arg", .{});
};
try handleTemplateValue(globalThis, template_value, out_jsobjs, out_script, jsstrings, jsobjref_buf[0..]);
@@ -3806,10 +3806,10 @@ pub fn handleTemplateValue(
}
if (template_value.jsType().isArray()) {
var array = template_value.arrayIterator(globalThis);
var array = try template_value.arrayIterator(globalThis);
const last = array.len -| 1;
var i: u32 = 0;
while (array.next()) |arr| : (i += 1) {
while (try array.next()) |arr| : (i += 1) {
try handleTemplateValue(globalThis, arr, out_jsobjs, out_script, jsstrings, jsobjref_buf);
if (i < last) {
const str = bun.String.static(" ");
@@ -3822,7 +3822,7 @@ pub fn handleTemplateValue(
}
if (template_value.isObject()) {
if (template_value.getOwnTruthy(globalThis, "raw")) |maybe_str| {
if (try template_value.getOwnTruthy(globalThis, "raw")) |maybe_str| {
const bunstr = try maybe_str.toBunString(globalThis);
defer bunstr.deref();
if (!try builder.appendBunStr(bunstr, false)) {
@@ -4308,7 +4308,7 @@ pub const TestingAPIs = struct {
const template_args_js = arguments.nextEat() orelse {
return globalThis.throw("shell: expected 2 arguments, got 0", .{});
};
var template_args = template_args_js.arrayIterator(globalThis);
var template_args = try template_args_js.arrayIterator(globalThis);
var stack_alloc = std.heap.stackFallback(@sizeOf(bun.String) * 4, arena.allocator());
var jsstrings = try std.ArrayList(bun.String).initCapacity(stack_alloc.get(), 4);
defer {
@@ -4376,7 +4376,7 @@ pub const TestingAPIs = struct {
const template_args_js = arguments.nextEat() orelse {
return globalThis.throw("shell: expected 2 arguments, got 0", .{});
};
var template_args = template_args_js.arrayIterator(globalThis);
var template_args = try template_args_js.arrayIterator(globalThis);
var stack_alloc = std.heap.stackFallback(@sizeOf(bun.String) * 4, arena.allocator());
var jsstrings = try std.ArrayList(bun.String).initCapacity(stack_alloc.get(), 4);
defer {