From 3e437a6ae0d4a68f8f29c60276918d662ad7bbc7 Mon Sep 17 00:00:00 2001 From: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Date: Fri, 2 Jun 2023 20:45:48 -0700 Subject: [PATCH] check package name length in `shouldUnwrapRequire()` (#3183) * make sure length is equal * add and use `indexEqualAny` --- src/runtime.zig | 2 +- src/string_immutable.zig | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/runtime.zig b/src/runtime.zig index 7312aa4bde..6916df6b1b 100644 --- a/src/runtime.zig +++ b/src/runtime.zig @@ -329,7 +329,7 @@ pub const Runtime = struct { commonjs_at_runtime: bool = false, pub fn shouldUnwrapRequire(this: *const Features, package_name: string) bool { - return package_name.len > 0 and strings.indexAny(this.unwrap_commonjs_packages, package_name) != null; + return package_name.len > 0 and strings.indexEqualAny(this.unwrap_commonjs_packages, package_name) != null; } pub const ReplaceableExport = union(enum) { diff --git a/src/string_immutable.zig b/src/string_immutable.zig index 25d4fb01a2..3d1724d4ef 100644 --- a/src/string_immutable.zig +++ b/src/string_immutable.zig @@ -127,6 +127,11 @@ pub inline fn indexAnyComptime(target: string, comptime chars: string) ?usize { return null; } +pub inline fn indexEqualAny(in: anytype, target: string) ?usize { + for (in, 0..) |str, i| if (eqlLong(str, target, true)) return i; + return null; +} + pub fn repeatingAlloc(allocator: std.mem.Allocator, count: usize, char: u8) ![]u8 { var buf = try allocator.alloc(u8, count); repeatingBuf(buf, char);