aboutsummaryrefslogtreecommitdiff
path: root/src/js_parser.zig
diff options
context:
space:
mode:
authorGravatar Dylan Conway <dylan.conway567@gmail.com> 2022-12-07 21:29:32 -0800
committerGravatar Dylan Conway <dylan.conway567@gmail.com> 2022-12-07 21:29:32 -0800
commit0b94ccdf8c75ab9df4cc965a067d8b881aeb8245 (patch)
tree2a56cc1a399faa9bbfb38fa32a9e712760e419d0 /src/js_parser.zig
parent845421c44bf492db743126a6fe73ab6fdddeac2e (diff)
downloadbun-0b94ccdf8c75ab9df4cc965a067d8b881aeb8245.tar.gz
bun-0b94ccdf8c75ab9df4cc965a067d8b881aeb8245.tar.zst
bun-0b94ccdf8c75ab9df4cc965a067d8b881aeb8245.zip
disable assignment on user specified assigns
Diffstat (limited to 'src/js_parser.zig')
-rw-r--r--src/js_parser.zig10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/js_parser.zig b/src/js_parser.zig
index b60d31705..5a58ba305 100644
--- a/src/js_parser.zig
+++ b/src/js_parser.zig
@@ -14632,7 +14632,7 @@ fn NewParser_(
// delete process.env["NODE_ENV"]
// shouldn't be transformed into
// delete undefined
- if (!is_delete_target and !is_call_target) {
+ if (!is_delete_target and !is_call_target and in.assign_target == .none) {
// We check for defines here as well
// esbuild doesn't do this
// In a lot of codebases, people will sometimes do:
@@ -14785,9 +14785,11 @@ fn NewParser_(
if (p.define.dots.get(e_.name)) |parts| {
for (parts) |define| {
if (p.isDotDefineMatch(expr, define.parts)) {
- // Substitute user-specified defines
- if (!define.data.isUndefined()) {
- return p.valueForDefine(expr.loc, in.assign_target, is_delete_target, &define.data);
+ if (in.assign_target == .none) {
+ // Substitute user-specified defines
+ if (!define.data.isUndefined()) {
+ return p.valueForDefine(expr.loc, in.assign_target, is_delete_target, &define.data);
+ }
}
// Copy the side effect flags over in case this expression is unused