aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-04-29 14:43:30 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-04-29 14:43:30 -0700
commit3731376943862e17646b477bc98ce3871f064e99 (patch)
treea9205d8911005750a9d29148952006b7b6137ee0 /src
parent75d2ee53b024b06fd9cde629d42fa8f921e02258 (diff)
downloadbun-3731376943862e17646b477bc98ce3871f064e99.tar.gz
bun-3731376943862e17646b477bc98ce3871f064e99.tar.zst
bun-3731376943862e17646b477bc98ce3871f064e99.zip
okay
Former-commit-id: 38c7eb73c14e3fe76a265a8da1506f90722a914d
Diffstat (limited to 'src')
-rw-r--r--src/defines.zig16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/defines.zig b/src/defines.zig
index 00253a1ad..173e5dd0f 100644
--- a/src/defines.zig
+++ b/src/defines.zig
@@ -24,6 +24,7 @@ const Globals = struct {
pub const InfinityData = js_ast.Expr.Data{ .e_number = Globals.InfinityPtr };
};
+const defines_path = fs.Path.init("/tmp/internal/defines.json");
pub const RawDefines = std.StringHashMap(string);
pub const UserDefines = std.StringHashMap(DefineData);
@@ -90,7 +91,7 @@ pub const DefineData = struct {
continue;
}
var _log = log;
- var source = logger.Source{ .contents = entry.value, .path = fs.Path.init("/internal/defines.json"), .identifier_name = "" };
+ var source = logger.Source{ .contents = entry.value, .path = defines_path, .identifier_name = "" };
var expr = try json_parser.ParseJSON(&source, _log, allocator);
var data: js_ast.Expr.Data = undefined;
switch (expr.data) {
@@ -160,7 +161,7 @@ pub const Define = struct {
if (global.len == 1) {
// TODO: when https://github.com/ziglang/zig/pull/8596 is merged, switch to putAssumeCapacityNoClobber
- try define.identifiers.put(global[0], value_define);
+ define.identifiers.putAssumeCapacity(global[0], value_define);
} else {
const key = global[global.len - 1];
// TODO: move this to comptime
@@ -250,7 +251,7 @@ pub const Define = struct {
try define.dots.put(tail, list.toOwnedSlice());
}
} else {
- // IS_BROWSER
+ // e.g. IS_BROWSER
try define.identifiers.put(user_define.key, user_define.value);
}
}
@@ -265,23 +266,30 @@ test "UserDefines" {
try alloc.setup(std.heap.page_allocator);
var orig = RawDefines.init(alloc.dynamic);
try orig.put("process.env.NODE_ENV", "\"development\"");
+ try orig.put("globalThis", "window");
var log = logger.Log.init(alloc.dynamic);
var data = try DefineData.from_input(orig, &log, alloc.dynamic);
expect(data.contains("process.env.NODE_ENV"));
+ expect(data.contains("globalThis"));
+ const globalThis = data.get("globalThis");
const val = data.get("process.env.NODE_ENV");
expect(val != null);
expect(strings.utf16EqlString(val.?.value.e_string.value, "development"));
+ std.testing.expectEqualStrings(globalThis.?.original_name.?, "window");
}
+// 396,000ns was upper end of last time this was checked how long it took
+// => 0.396ms
test "Defines" {
try alloc.setup(std.heap.page_allocator);
+ const start = std.time.nanoTimestamp();
var orig = RawDefines.init(alloc.dynamic);
try orig.put("process.env.NODE_ENV", "\"development\"");
var log = logger.Log.init(alloc.dynamic);
var data = try DefineData.from_input(orig, &log, alloc.dynamic);
-
var defines = try Define.init(alloc.dynamic, data);
+ std.debug.print("Time: {d}", .{std.time.nanoTimestamp() - start});
const node_env_dots = defines.dots.get("NODE_ENV");
expect(node_env_dots != null);
expect(node_env_dots.?.len > 0);