diff options
| -rw-r--r-- | src/defines.zig | 25 | 
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{ | 
