aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar dave caruso <me@paperdave.net> 2023-08-22 21:54:59 -0700
committerGravatar GitHub <noreply@github.com> 2023-08-22 21:54:59 -0700
commit8518fbb573dc3359179c885cb5d79f7185c88ee4 (patch)
tree6389633c913220fe8d9df144e5a531812fddf5fe
parentd86084dd8e69d41ae36303024e330e257df534b7 (diff)
downloadbun-8518fbb573dc3359179c885cb5d79f7185c88ee4.tar.gz
bun-8518fbb573dc3359179c885cb5d79f7185c88ee4.tar.zst
bun-8518fbb573dc3359179c885cb5d79f7185c88ee4.zip
fix yield (#4264)
-rw-r--r--src/js_parser.zig2
-rw-r--r--test/bundler/bundler_edgecase.test.ts16
2 files changed, 17 insertions, 1 deletions
diff --git a/src/js_parser.zig b/src/js_parser.zig
index ebe2a01c9..bd3c0f140 100644
--- a/src/js_parser.zig
+++ b/src/js_parser.zig
@@ -11325,7 +11325,7 @@ fn NewParser_(
var value: ?ExprNodeIndex = null;
switch (p.lexer.token) {
- .t_close_brace, .t_close_paren, .t_colon, .t_comma, .t_semicolon => {},
+ .t_close_brace, .t_close_paren, .t_close_bracket, .t_colon, .t_comma, .t_semicolon => {},
else => {
if (isStar or !p.lexer.has_newline_before) {
value = try p.parseExpr(.yield);
diff --git a/test/bundler/bundler_edgecase.test.ts b/test/bundler/bundler_edgecase.test.ts
index de2482907..0cbb97b1e 100644
--- a/test/bundler/bundler_edgecase.test.ts
+++ b/test/bundler/bundler_edgecase.test.ts
@@ -952,4 +952,20 @@ describe("bundler", () => {
stdout: "pass",
},
});
+ itBundled("edgecase/YieldKeyword", {
+ files: {
+ "/entry.js": /* js */ `
+ function* foo() {
+ yield 1;
+ [yield];
+ yield yield yield;
+ [yield * 2];
+ [yield (yield)];
+ { x: yield };
+ (yield).hello
+ yield+1
+ }
+ `,
+ },
+ });
});