diff --git a/build.zig b/build.zig
index 2f761073..b9cf6cd7 100644
--- a/build.zig
+++ b/build.zig
@@ -17,7 +17,6 @@
// along with this program. If not, see .
const std = @import("std");
-const builtin = @import("builtin");
const Build = std.Build;
diff --git a/src/browser/Mime.zig b/src/browser/Mime.zig
index 144f6b23..e452ce53 100644
--- a/src/browser/Mime.zig
+++ b/src/browser/Mime.zig
@@ -274,14 +274,6 @@ fn parseContentType(value: []const u8) !struct { ContentType, usize } {
} }, attribute_start };
}
-const T_SPECIAL = blk: {
- var v = [_]bool{false} ** 256;
- for ("()<>@,;:\\\"/[]?=") |b| {
- v[b] = true;
- }
- break :blk v;
-};
-
const VALID_CODEPOINTS = blk: {
var v: [256]bool = undefined;
for (0..256) |i| {
diff --git a/src/browser/Page.zig b/src/browser/Page.zig
index 3d7214f5..37f92b57 100644
--- a/src/browser/Page.zig
+++ b/src/browser/Page.zig
@@ -19,7 +19,6 @@
const std = @import("std");
const JS = @import("js/js.zig");
const builtin = @import("builtin");
-const reflect = @import("reflect.zig");
const Allocator = std.mem.Allocator;
@@ -47,7 +46,6 @@ const Element = @import("webapi/Element.zig");
const Window = @import("webapi/Window.zig");
const Location = @import("webapi/Location.zig");
const Document = @import("webapi/Document.zig");
-const DocumentFragment = @import("webapi/DocumentFragment.zig");
const ShadowRoot = @import("webapi/ShadowRoot.zig");
const Performance = @import("webapi/Performance.zig");
const Screen = @import("webapi/Screen.zig");
diff --git a/src/browser/Session.zig b/src/browser/Session.zig
index f0ef1552..ca0002f4 100644
--- a/src/browser/Session.zig
+++ b/src/browser/Session.zig
@@ -29,7 +29,6 @@ const Page = @import("Page.zig");
const Browser = @import("Browser.zig");
const Allocator = std.mem.Allocator;
-const NavigateOpts = Page.NavigateOpts;
const IS_DEBUG = @import("builtin").mode == .Debug;
// Session is like a browser's tab.
diff --git a/src/browser/URL.zig b/src/browser/URL.zig
index ead1ba37..984e8071 100644
--- a/src/browser/URL.zig
+++ b/src/browser/URL.zig
@@ -495,11 +495,6 @@ pub fn concatQueryString(arena: Allocator, url: []const u8, query_string: []cons
return buf.items[0 .. buf.items.len - 1 :0];
}
-const KnownProtocol = enum {
- @"http:",
- @"https:",
-};
-
const testing = @import("../testing.zig");
test "URL: isCompleteHTTPUrl" {
try testing.expectEqual(true, isCompleteHTTPUrl("http://example.com/about"));
diff --git a/src/browser/js/Caller.zig b/src/browser/js/Caller.zig
index d705e01f..a6635879 100644
--- a/src/browser/js/Caller.zig
+++ b/src/browser/js/Caller.zig
@@ -23,7 +23,6 @@ const log = @import("../../log.zig");
const js = @import("js.zig");
const v8 = js.v8;
-const bridge = @import("bridge.zig");
const Context = @import("Context.zig");
const Page = @import("../Page.zig");
diff --git a/src/browser/js/Env.zig b/src/browser/js/Env.zig
index a27a8f83..fd09044d 100644
--- a/src/browser/js/Env.zig
+++ b/src/browser/js/Env.zig
@@ -23,7 +23,6 @@ const v8 = js.v8;
const log = @import("../../log.zig");
const bridge = @import("bridge.zig");
-const Caller = @import("Caller.zig");
const Context = @import("Context.zig");
const Platform = @import("Platform.zig");
const Snapshot = @import("Snapshot.zig");
diff --git a/src/browser/js/ExecutionWorld.zig b/src/browser/js/ExecutionWorld.zig
index 1a8f9681..372709cb 100644
--- a/src/browser/js/ExecutionWorld.zig
+++ b/src/browser/js/ExecutionWorld.zig
@@ -28,7 +28,6 @@ const Env = @import("Env.zig");
const Context = @import("Context.zig");
const Page = @import("../Page.zig");
-const ScriptManager = @import("../ScriptManager.zig");
const ArenaAllocator = std.heap.ArenaAllocator;
@@ -83,7 +82,7 @@ pub fn createContext(self: *ExecutionWorld, page: *Page, enter: bool) !*Context
if (comptime IS_DEBUG) {
// Getting this into the snapshot is tricky (anything involving the
- // global is tricky). Easier to do here, and in debug more, we're
+ // global is tricky). Easier to do here, and in debug mode, we're
// fine with paying the small perf hit.
const js_global = v8.FunctionTemplate.initDefault(isolate);
const global_template = js_global.getInstanceTemplate();
diff --git a/src/browser/js/Function.zig b/src/browser/js/Function.zig
index e10f8f56..aa87f57a 100644
--- a/src/browser/js/Function.zig
+++ b/src/browser/js/Function.zig
@@ -20,8 +20,6 @@ const std = @import("std");
const js = @import("js.zig");
const v8 = js.v8;
-const Caller = @import("Caller.zig");
-const Context = @import("Context.zig");
const PersistentFunction = v8.Persistent(v8.Function);
const Allocator = std.mem.Allocator;
diff --git a/src/browser/js/Object.zig b/src/browser/js/Object.zig
index 0e25b963..f2bc3a4d 100644
--- a/src/browser/js/Object.zig
+++ b/src/browser/js/Object.zig
@@ -22,7 +22,6 @@ const v8 = js.v8;
const IS_DEBUG = @import("builtin").mode == .Debug;
-const Caller = @import("Caller.zig");
const Context = @import("Context.zig");
const PersistentObject = v8.Persistent(v8.Object);
diff --git a/src/browser/js/This.zig b/src/browser/js/This.zig
index 37ac352b..e86e97e3 100644
--- a/src/browser/js/This.zig
+++ b/src/browser/js/This.zig
@@ -18,9 +18,6 @@
const std = @import("std");
const js = @import("js.zig");
-const v8 = js.v8;
-
-const Allocator = std.mem.Allocator;
// This only exists so that we know whether a function wants the opaque
// JS argument (js.Object), or if it wants the receiver as an opaque
diff --git a/src/browser/js/js.zig b/src/browser/js/js.zig
index c56e41d8..f3e30c9b 100644
--- a/src/browser/js/js.zig
+++ b/src/browser/js/js.zig
@@ -37,8 +37,6 @@ pub const Object = @import("Object.zig");
pub const TryCatch = @import("TryCatch.zig");
pub const Function = @import("Function.zig");
-const Caller = @import("Caller.zig");
-const Page = @import("../Page.zig");
const Allocator = std.mem.Allocator;
pub fn Bridge(comptime T: type) type {
diff --git a/src/browser/webapi/AbstractRange.zig b/src/browser/webapi/AbstractRange.zig
index 387334c4..b23fb8ca 100644
--- a/src/browser/webapi/AbstractRange.zig
+++ b/src/browser/webapi/AbstractRange.zig
@@ -24,7 +24,7 @@ const Range = @import("Range.zig");
const AbstractRange = @This();
-const _prototype_root = true;
+pub const _prototype_root = true;
_type: Type,
diff --git a/src/browser/webapi/Blob.zig b/src/browser/webapi/Blob.zig
index 58106caf..e21dbbac 100644
--- a/src/browser/webapi/Blob.zig
+++ b/src/browser/webapi/Blob.zig
@@ -26,7 +26,7 @@ const Page = @import("../Page.zig");
/// https://developer.mozilla.org/en-US/docs/Web/API/Blob
const Blob = @This();
-const _prototype_root = true;
+pub const _prototype_root = true;
_type: Type,
diff --git a/src/browser/webapi/DOMImplementation.zig b/src/browser/webapi/DOMImplementation.zig
index e7ea602e..82514c95 100644
--- a/src/browser/webapi/DOMImplementation.zig
+++ b/src/browser/webapi/DOMImplementation.zig
@@ -22,7 +22,6 @@ const js = @import("../js/js.zig");
const Page = @import("../Page.zig");
const Node = @import("Node.zig");
const Document = @import("Document.zig");
-const HTMLDocument = @import("HTMLDocument.zig");
const DocumentType = @import("DocumentType.zig");
const DOMImplementation = @This();
diff --git a/src/browser/webapi/DOMNodeIterator.zig b/src/browser/webapi/DOMNodeIterator.zig
index 3314416e..454bbc39 100644
--- a/src/browser/webapi/DOMNodeIterator.zig
+++ b/src/browser/webapi/DOMNodeIterator.zig
@@ -22,7 +22,6 @@ const Page = @import("../Page.zig");
const Node = @import("Node.zig");
const NodeFilter = @import("NodeFilter.zig");
-const TreeWalker = @import("TreeWalker.zig");
pub const FilterOpts = NodeFilter.FilterOpts;
const DOMNodeIterator = @This();
diff --git a/src/browser/webapi/DOMParser.zig b/src/browser/webapi/DOMParser.zig
index 0d714264..eb2d95d8 100644
--- a/src/browser/webapi/DOMParser.zig
+++ b/src/browser/webapi/DOMParser.zig
@@ -20,7 +20,6 @@ const std = @import("std");
const js = @import("../js/js.zig");
const Page = @import("../Page.zig");
-const Document = @import("Document.zig");
const HTMLDocument = @import("HTMLDocument.zig");
const DOMParser = @This();
diff --git a/src/browser/webapi/DOMRect.zig b/src/browser/webapi/DOMRect.zig
index 4b3e3672..49a72e1d 100644
--- a/src/browser/webapi/DOMRect.zig
+++ b/src/browser/webapi/DOMRect.zig
@@ -19,7 +19,6 @@
const DOMRect = @This();
const js = @import("../js/js.zig");
-const Page = @import("../Page.zig");
_x: f64,
_y: f64,
diff --git a/src/browser/webapi/DocumentType.zig b/src/browser/webapi/DocumentType.zig
index ff2b4f11..fc3e093a 100644
--- a/src/browser/webapi/DocumentType.zig
+++ b/src/browser/webapi/DocumentType.zig
@@ -19,7 +19,6 @@
const std = @import("std");
const js = @import("../js/js.zig");
-const Page = @import("../Page.zig");
const Node = @import("Node.zig");
const DocumentType = @This();
diff --git a/src/browser/webapi/Event.zig b/src/browser/webapi/Event.zig
index f32f21ab..c5b0d724 100644
--- a/src/browser/webapi/Event.zig
+++ b/src/browser/webapi/Event.zig
@@ -26,7 +26,7 @@ const String = @import("../../string.zig").String;
pub const Event = @This();
-const _prototype_root = true;
+pub const _prototype_root = true;
_type: Type,
_bubbles: bool = false,
diff --git a/src/browser/webapi/EventTarget.zig b/src/browser/webapi/EventTarget.zig
index 75996fe3..33531d02 100644
--- a/src/browser/webapi/EventTarget.zig
+++ b/src/browser/webapi/EventTarget.zig
@@ -27,7 +27,7 @@ const Event = @import("Event.zig");
const EventTarget = @This();
-const _prototype_root = true;
+pub const _prototype_root = true;
_type: Type,
pub const Type = union(enum) {
diff --git a/src/browser/webapi/NodeFilter.zig b/src/browser/webapi/NodeFilter.zig
index bdb523a8..b1020fc5 100644
--- a/src/browser/webapi/NodeFilter.zig
+++ b/src/browser/webapi/NodeFilter.zig
@@ -18,7 +18,6 @@
const std = @import("std");
const js = @import("../js/js.zig");
-const Page = @import("../Page.zig");
const Node = @import("Node.zig");
const NodeFilter = @This();
diff --git a/src/browser/webapi/ResizeObserver.zig b/src/browser/webapi/ResizeObserver.zig
index cc78e9c5..04e396ab 100644
--- a/src/browser/webapi/ResizeObserver.zig
+++ b/src/browser/webapi/ResizeObserver.zig
@@ -18,7 +18,6 @@
const std = @import("std");
const js = @import("../js/js.zig");
-const Page = @import("../Page.zig");
const Element = @import("Element.zig");
pub const ResizeObserver = @This();
diff --git a/src/browser/webapi/collections/ChildNodes.zig b/src/browser/webapi/collections/ChildNodes.zig
index 1008d7e9..bbee731e 100644
--- a/src/browser/webapi/collections/ChildNodes.zig
+++ b/src/browser/webapi/collections/ChildNodes.zig
@@ -17,7 +17,6 @@
// along with this program. If not, see .
const std = @import("std");
-const js = @import("../../js/js.zig");
const Node = @import("../Node.zig");
const Page = @import("../../Page.zig");
diff --git a/src/browser/webapi/collections/HTMLCollection.zig b/src/browser/webapi/collections/HTMLCollection.zig
index e1b0f547..3f10ea4e 100644
--- a/src/browser/webapi/collections/HTMLCollection.zig
+++ b/src/browser/webapi/collections/HTMLCollection.zig
@@ -23,7 +23,6 @@ const Page = @import("../../Page.zig");
const Element = @import("../Element.zig");
const TreeWalker = @import("../TreeWalker.zig");
const NodeLive = @import("node_live.zig").NodeLive;
-const Form = @import("../element/html/Form.zig");
const Mode = enum {
tag,
diff --git a/src/browser/webapi/collections/HTMLOptionsCollection.zig b/src/browser/webapi/collections/HTMLOptionsCollection.zig
index 4474cb76..781c858a 100644
--- a/src/browser/webapi/collections/HTMLOptionsCollection.zig
+++ b/src/browser/webapi/collections/HTMLOptionsCollection.zig
@@ -23,7 +23,6 @@ const Page = @import("../../Page.zig");
const Node = @import("../Node.zig");
const Element = @import("../Element.zig");
const HTMLCollection = @import("HTMLCollection.zig");
-const NodeLive = @import("node_live.zig").NodeLive;
const HTMLOptionsCollection = @This();
diff --git a/src/browser/webapi/collections/NodeList.zig b/src/browser/webapi/collections/NodeList.zig
index cd8ec250..67ef6358 100644
--- a/src/browser/webapi/collections/NodeList.zig
+++ b/src/browser/webapi/collections/NodeList.zig
@@ -22,12 +22,10 @@ const log = @import("../../..//log.zig");
const js = @import("../../js/js.zig");
const Page = @import("../../Page.zig");
const Node = @import("../Node.zig");
-const Element = @import("../Element.zig");
const ChildNodes = @import("ChildNodes.zig");
const RadioNodeList = @import("RadioNodeList.zig");
const SelectorList = @import("../selector/List.zig");
-const HTMLFormControlsCollection = @import("HTMLFormControlsCollection.zig");
const Mode = enum {
child_nodes,
diff --git a/src/browser/webapi/collections/node_live.zig b/src/browser/webapi/collections/node_live.zig
index 5e5f084d..b5bfb17d 100644
--- a/src/browser/webapi/collections/node_live.zig
+++ b/src/browser/webapi/collections/node_live.zig
@@ -17,7 +17,6 @@
// along with this program. If not, see .
const std = @import("std");
-const builtin = @import("builtin");
const String = @import("../../../string.zig").String;
@@ -30,8 +29,6 @@ const TreeWalker = @import("../TreeWalker.zig");
const Selector = @import("../selector/Selector.zig");
const Form = @import("../element/html/Form.zig");
-const Allocator = std.mem.Allocator;
-
const Mode = enum {
tag,
tag_name,
diff --git a/src/browser/webapi/element/html/Form.zig b/src/browser/webapi/element/html/Form.zig
index 1c6fe87a..d654d2ee 100644
--- a/src/browser/webapi/element/html/Form.zig
+++ b/src/browser/webapi/element/html/Form.zig
@@ -22,7 +22,6 @@ const Page = @import("../../../Page.zig");
const Node = @import("../../Node.zig");
const Element = @import("../../Element.zig");
const HtmlElement = @import("../Html.zig");
-const TreeWalker = @import("../../TreeWalker.zig");
const collections = @import("../../collections.zig");
pub const Input = @import("Input.zig");
diff --git a/src/browser/webapi/event/KeyboardEvent.zig b/src/browser/webapi/event/KeyboardEvent.zig
index d0f47d23..f175ddee 100644
--- a/src/browser/webapi/event/KeyboardEvent.zig
+++ b/src/browser/webapi/event/KeyboardEvent.zig
@@ -19,8 +19,6 @@
const std = @import("std");
const Event = @import("../Event.zig");
const UIEvent = @import("UIEvent.zig");
-const EventTarget = @import("../EventTarget.zig");
-const Window = @import("../Window.zig");
const Page = @import("../../Page.zig");
const js = @import("../../js/js.zig");
diff --git a/src/browser/webapi/event/MouseEvent.zig b/src/browser/webapi/event/MouseEvent.zig
index 977034cf..c0bd14c7 100644
--- a/src/browser/webapi/event/MouseEvent.zig
+++ b/src/browser/webapi/event/MouseEvent.zig
@@ -20,7 +20,6 @@ const std = @import("std");
const Event = @import("../Event.zig");
const UIEvent = @import("UIEvent.zig");
const EventTarget = @import("../EventTarget.zig");
-const Window = @import("../Window.zig");
const Page = @import("../../Page.zig");
const js = @import("../../js/js.zig");
diff --git a/src/browser/webapi/event/NavigationCurrentEntryChangeEvent.zig b/src/browser/webapi/event/NavigationCurrentEntryChangeEvent.zig
index b22e32f0..0a12a8a3 100644
--- a/src/browser/webapi/event/NavigationCurrentEntryChangeEvent.zig
+++ b/src/browser/webapi/event/NavigationCurrentEntryChangeEvent.zig
@@ -19,7 +19,6 @@
const std = @import("std");
const Event = @import("../Event.zig");
const Page = @import("../../Page.zig");
-const Navigaton = @import("../navigation/Navigation.zig");
const NavigationHistoryEntry = @import("../navigation/NavigationHistoryEntry.zig");
const NavigationType = @import("../navigation/root.zig").NavigationType;
const js = @import("../../js/js.zig");
diff --git a/src/browser/webapi/event/PageTransitionEvent.zig b/src/browser/webapi/event/PageTransitionEvent.zig
index 37b7edf1..4a260481 100644
--- a/src/browser/webapi/event/PageTransitionEvent.zig
+++ b/src/browser/webapi/event/PageTransitionEvent.zig
@@ -16,8 +16,6 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-const log = @import("../../../log.zig");
-// const Window = @import("../html/window.zig").Window;
const Event = @import("../Event.zig");
const js = @import("../../js/js.zig");
const Page = @import("../../Page.zig");
diff --git a/src/browser/webapi/event/PopStateEvent.zig b/src/browser/webapi/event/PopStateEvent.zig
index 305ef5cc..f6a00615 100644
--- a/src/browser/webapi/event/PopStateEvent.zig
+++ b/src/browser/webapi/event/PopStateEvent.zig
@@ -16,8 +16,6 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-const log = @import("../../../log.zig");
-// const Window = @import("../html/window.zig").Window;
const Event = @import("../Event.zig");
const js = @import("../../js/js.zig");
const Page = @import("../../Page.zig");
diff --git a/src/browser/webapi/navigation/NavigationEventTarget.zig b/src/browser/webapi/navigation/NavigationEventTarget.zig
index 0872d7fb..4ab6df66 100644
--- a/src/browser/webapi/navigation/NavigationEventTarget.zig
+++ b/src/browser/webapi/navigation/NavigationEventTarget.zig
@@ -17,10 +17,10 @@
// along with this program. If not, see .
const std = @import("std");
-const EventTarget = @import("../EventTarget.zig");
const js = @import("../../js/js.zig");
const Page = @import("../../Page.zig");
-const Event = @import("../Event.zig");
+
+const EventTarget = @import("../EventTarget.zig");
const NavigationCurrentEntryChangeEvent = @import("../event/NavigationCurrentEntryChangeEvent.zig");
pub const NavigationEventTarget = @This();
diff --git a/src/browser/webapi/navigation/root.zig b/src/browser/webapi/navigation/root.zig
index ef8b20e2..e007c714 100644
--- a/src/browser/webapi/navigation/root.zig
+++ b/src/browser/webapi/navigation/root.zig
@@ -17,13 +17,9 @@
// along with this program. If not, see .
const std = @import("std");
-const log = @import("../../../log.zig");
const js = @import("../../js/js.zig");
-const Page = @import("../../Page.zig");
-const Navigation = @import("Navigation.zig");
-const NavigationEventTarget = @import("NavigationEventTarget.zig");
const NavigationHistoryEntry = @import("NavigationHistoryEntry.zig");
pub const NavigationType = enum {
diff --git a/src/browser/webapi/net/Fetch.zig b/src/browser/webapi/net/Fetch.zig
index 87f794f5..9f878985 100644
--- a/src/browser/webapi/net/Fetch.zig
+++ b/src/browser/webapi/net/Fetch.zig
@@ -25,11 +25,9 @@ const js = @import("../../js/js.zig");
const Page = @import("../../Page.zig");
const URL = @import("../../URL.zig");
-const Headers = @import("Headers.zig");
const Request = @import("Request.zig");
const Response = @import("Response.zig");
-const Allocator = std.mem.Allocator;
const IS_DEBUG = @import("builtin").mode == .Debug;
const Fetch = @This();
diff --git a/src/browser/webapi/net/Headers.zig b/src/browser/webapi/net/Headers.zig
index 5c962655..7a2f60ac 100644
--- a/src/browser/webapi/net/Headers.zig
+++ b/src/browser/webapi/net/Headers.zig
@@ -1,7 +1,6 @@
const std = @import("std");
const js = @import("../../js/js.zig");
const log = @import("../../../log.zig");
-const String = @import("../../../string.zig").String;
const Page = @import("../../Page.zig");
const KeyValueList = @import("../KeyValueList.zig");
diff --git a/src/browser/webapi/net/URLSearchParams.zig b/src/browser/webapi/net/URLSearchParams.zig
index cb4a8764..52615ccb 100644
--- a/src/browser/webapi/net/URLSearchParams.zig
+++ b/src/browser/webapi/net/URLSearchParams.zig
@@ -26,7 +26,6 @@ const Allocator = std.mem.Allocator;
const Page = @import("../../Page.zig");
const FormData = @import("FormData.zig");
const KeyValueList = @import("../KeyValueList.zig");
-const GenericIterator = @import("../collections/iterator.zig").Entry;
const URLSearchParams = @This();
diff --git a/src/cdp/domains/input.zig b/src/cdp/domains/input.zig
index 492e9b9e..777f7049 100644
--- a/src/cdp/domains/input.zig
+++ b/src/cdp/domains/input.zig
@@ -17,7 +17,6 @@
// along with this program. If not, see .
const std = @import("std");
-const Page = @import("../../browser/Page.zig");
pub fn processMessage(cmd: anytype) !void {
const action = std.meta.stringToEnum(enum {
diff --git a/src/http/Http.zig b/src/http/Http.zig
index 8d6dcacb..44bb17fa 100644
--- a/src/http/Http.zig
+++ b/src/http/Http.zig
@@ -17,7 +17,6 @@
// along with this program. If not, see .
const std = @import("std");
-const posix = std.posix;
pub const c = @cImport({
@cInclude("curl/curl.h");
diff --git a/src/lightpanda.zig b/src/lightpanda.zig
index 0af3ae75..f2cd5ac9 100644
--- a/src/lightpanda.zig
+++ b/src/lightpanda.zig
@@ -28,8 +28,6 @@ pub const js = @import("browser/js/js.zig");
pub const dump = @import("browser/dump.zig");
pub const build_config = @import("build_config");
-const Allocator = std.mem.Allocator;
-
pub const FetchOpts = struct {
wait_ms: u32 = 5000,
dump: dump.RootOpts,
diff --git a/src/testing.zig b/src/testing.zig
index 3bc24a8e..8534055f 100644
--- a/src/testing.zig
+++ b/src/testing.zig
@@ -332,7 +332,6 @@ pub var test_browser: Browser = undefined;
pub var test_session: *Session = undefined;
const WEB_API_TEST_ROOT = "src/browser/tests/";
-const WEB_API_HELPER_PATH = WEB_API_TEST_ROOT ++ "testing.js";
const HtmlRunnerOpts = struct {};
pub fn htmlRunner(comptime path: []const u8, opts: HtmlRunnerOpts) !void {