aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/defines.zig25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/defines.zig b/src/defines.zig
index 88665aa06..a0e3bc8ea 100644
--- a/src/defines.zig
+++ b/src/defines.zig
@@ -184,6 +184,11 @@ pub const DotDefine = struct {
var nan_val = js_ast.E.Number{ .value = std.math.nan_f64 };
var inf_val = js_ast.E.Number{ .value = std.math.inf_f64 };
+const __dirname_str: string = std.fs.path.sep_str ++ "__dirname_is_not_implemented";
+const __filename_str: string = "__filename_is_not_implemented.js";
+var __dirname = js_ast.E.String{ .utf8 = __dirname_str };
+var __filename = js_ast.E.String{ .utf8 = __filename_str };
+
pub const Define = struct {
identifiers: std.StringHashMap(IdentifierDefine),
dots: std.StringHashMap([]DotDefine),
@@ -194,7 +199,7 @@ pub const Define = struct {
define.allocator = allocator;
define.identifiers = std.StringHashMap(IdentifierDefine).init(allocator);
define.dots = std.StringHashMap([]DotDefine).init(allocator);
- try define.identifiers.ensureCapacity(641);
+ try define.identifiers.ensureCapacity(641 + 2);
try define.dots.ensureCapacity(64);
var val = js_ast.Expr.Data{ .e_undefined = .{} };
@@ -233,6 +238,24 @@ pub const Define = struct {
}
}
+ // Node.js backwards compatibility hack
+ define.identifiers.putAssumeCapacity(
+ "__dirname",
+ DefineData{
+ .value = js_ast.Expr.Data{
+ .e_string = &__dirname,
+ },
+ },
+ );
+ define.identifiers.putAssumeCapacity(
+ "__filename",
+ DefineData{
+ .value = js_ast.Expr.Data{
+ .e_string = &__filename,
+ },
+ },
+ );
+
// Step 2. Swap in certain literal values because those can be constant folded
define.identifiers.putAssumeCapacity("undefined", value_define);
define.identifiers.putAssumeCapacity("NaN", DefineData{