fix class expression statements (#2051)

- class expression statements require parentheses
- allow unused class expression statements to be dropped

fixes #1782
closes #1784
This commit is contained in:
kzc
2017-06-03 14:45:26 -04:00
committed by Alex Lam S.L
parent 753932b302
commit 82fefc5d29
3 changed files with 50 additions and 0 deletions

View File

@@ -619,3 +619,48 @@ issue_2028: {
expect_stdout: "hello"
node_version: ">=6"
}
class_expression_statement: {
options = {
toplevel: false,
side_effects: false,
unused: false,
}
input: {
(class {});
(class NamedClassExpr {});
let expr = (class AnotherClassExpr {});
class C {}
}
expect_exact: "(class{});(class NamedClassExpr{});let expr=class AnotherClassExpr{};class C{}"
}
class_expression_statement_unused: {
options = {
toplevel: false,
side_effects: true,
unused: true,
}
input: {
(class {});
(class NamedClassExpr {});
let expr = (class AnotherClassExpr {});
class C {}
}
expect_exact: "let expr=class{};class C{}"
}
class_expression_statement_unused_toplevel: {
options = {
toplevel: true,
side_effects: true,
unused: true,
}
input: {
(class {});
(class NamedClassExpr {});
let expr = (class AnotherClassExpr {});
class C {}
}
expect_exact: ""
}