From 5b893c8ec35c7e0a0e612889d0fe64b5f084f79c Mon Sep 17 00:00:00 2001 From: not-an-aardvark Date: Mon, 25 Apr 2016 19:14:44 -0400 Subject: [PATCH] Avoid syntax error in yield assignments (fixes #1054) --- lib/output.js | 2 -- test/compress/harmony.js | 10 ++++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/output.js b/lib/output.js index 002983e2..2aa5a5a1 100644 --- a/lib/output.js +++ b/lib/output.js @@ -1234,9 +1234,7 @@ function OutputStream(options) { } isYield = (self.right.operator == "yield" || self.right.operator === "yield*"); - isYield && output.print("("); output.print(op); - isYield && output.print(")"); if ((op == "<" || op == "<<") && self.right instanceof AST_UnaryPrefix diff --git a/test/compress/harmony.js b/test/compress/harmony.js index b4abb470..6ee1b246 100644 --- a/test/compress/harmony.js +++ b/test/compress/harmony.js @@ -434,3 +434,13 @@ generators_yield: { } expect_exact: "function*fn(){yield remote()}" } + +generators_yield_assign: { + input: { + function* fn() { + var x = {}; + x.prop = yield 5; + } + } + expect_exact: "function*fn(){var x={};x.prop=yield 5}" +}