aboutsummaryrefslogtreecommitdiff
path: root/src/js_parser/js_parser.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/js_parser/js_parser.zig')
-rw-r--r--src/js_parser/js_parser.zig24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/js_parser/js_parser.zig b/src/js_parser/js_parser.zig
index 2d1f78ba3..7fb347c19 100644
--- a/src/js_parser/js_parser.zig
+++ b/src/js_parser/js_parser.zig
@@ -9759,14 +9759,14 @@ pub const P = struct {
}
// // trim empty statements
- // if (data.stmts.len == 0) {
- // stmts.append(Stmt{ .data = Prefill.Data.SEmpty, .loc = stmt.loc }) catch unreachable;
- // return;
- // } else if (data.stmts.len == 1 and !statementCaresAboutScope(data.stmts[0])) {
- // // Unwrap blocks containing a single statement
- // stmts.append(data.stmts[0]) catch unreachable;
- // return;
- // }
+ if (data.stmts.len == 0) {
+ stmts.append(Stmt{ .data = Prefill.Data.SEmpty, .loc = stmt.loc }) catch unreachable;
+ return;
+ } else if (data.stmts.len == 1 and !statementCaresAboutScope(data.stmts[0])) {
+ // Unwrap blocks containing a single statement
+ stmts.append(data.stmts[0]) catch unreachable;
+ return;
+ }
stmts.append(stmt.*) catch unreachable;
return;
},
@@ -9809,6 +9809,7 @@ pub const P = struct {
data.no = p.visitSingleStmt(no, .none);
}
+ // Trim unnecessary "else" clauses
if (data.no != null and @as(Stmt.Tag, data.no.?.data) == .s_empty) {
data.no = null;
}
@@ -10279,9 +10280,14 @@ pub const P = struct {
switch (expr.data) {
.e_dot => |ex| {
if (parts.len > 1) {
+ if (ex.optional_chain != null) {
+ return false;
+ }
+
// Intermediates must be dot expressions
const last = parts.len - 1;
- return strings.eql(parts[last], ex.name) and ex.optional_chain == null and p.isDotDefineMatch(ex.target, parts[0..last]);
+ const is_tail_match = strings.eql(parts[last], ex.name);
+ return is_tail_match and p.isDotDefineMatch(ex.target, parts[0..last]);
}
},
.e_import_meta => |ex| {