fix parse and output of yield (#2690)

fixes #2689
This commit is contained in:
Alex Lam S.L
2017-12-30 03:27:26 +08:00
committed by GitHub
parent 53600e9869
commit 725aac8b46
4 changed files with 111 additions and 88 deletions

View File

@@ -88,9 +88,8 @@ yield_before_punctuators: {
})();
function* g1() { (yield) }
function* g2() { [yield] }
function* g3() { return {yield} } // Added return to avoid {} drop
function* g4() { yield, yield; }
function* g5() { (yield) ? yield : yield; }
function* g3() { yield, yield; }
function* g4() { (yield) ? yield : yield; }
}
expect: {
iter = (function*() {
@@ -98,9 +97,8 @@ yield_before_punctuators: {
})();
function* g1() { (yield) }
function* g2() { [yield] }
function* g3() { return {yield} }
function* g4() { yield, yield; }
function* g5() { (yield) ? yield : yield; }
function* g3() { yield, yield; }
function* g4() { (yield) ? yield : yield; }
}
}
@@ -199,3 +197,21 @@ yield_as_ES5_property: {
expect_exact: '"use strict";console.log({yield:42}.yield);'
expect_stdout: "42"
}
issue_2689: {
options = {
collapse_vars: true,
unused: true,
}
input: {
function* y() {
var t = yield x();
return new t();
}
}
expect: {
function* y() {
return new (yield x());
}
}
}