From 06047fc2fbf739ef956c9f34f0ac89bdec6cfedc Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sun, 20 Oct 2019 14:12:17 +0200 Subject: [PATCH] Fix switch case not being included correctly (#3178) * Fix switch case not being included correctly * Update dependencies --- src/ast/nodes/SwitchStatement.ts | 6 +++++- .../samples/side-effects-switch-statements/_expected.js | 7 +++++++ test/form/samples/side-effects-switch-statements/main.js | 7 +++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/ast/nodes/SwitchStatement.ts b/src/ast/nodes/SwitchStatement.ts index c97b64b75f7..7939b8ac0b0 100644 --- a/src/ast/nodes/SwitchStatement.ts +++ b/src/ast/nodes/SwitchStatement.ts @@ -67,7 +67,11 @@ export default class SwitchStatement extends StatementBase { context.brokenFlow = brokenFlow; } } - if (this.defaultCase !== null && !(minBrokenFlow === BROKEN_FLOW_BREAK_CONTINUE)) { + if ( + isCaseIncluded && + this.defaultCase !== null && + !(minBrokenFlow === BROKEN_FLOW_BREAK_CONTINUE) + ) { context.brokenFlow = minBrokenFlow; } } diff --git a/test/form/samples/side-effects-switch-statements/_expected.js b/test/form/samples/side-effects-switch-statements/_expected.js index 1af63c0a9ef..c57b6c77b2d 100644 --- a/test/form/samples/side-effects-switch-statements/_expected.js +++ b/test/form/samples/side-effects-switch-statements/_expected.js @@ -53,3 +53,10 @@ for (var i = 0; i < 4; i++) { } effect(); } + +var included; +switch (effect()) { + default: + included = 1; +} +console.log(included); diff --git a/test/form/samples/side-effects-switch-statements/main.js b/test/form/samples/side-effects-switch-statements/main.js index efbcbd1a663..579da725649 100644 --- a/test/form/samples/side-effects-switch-statements/main.js +++ b/test/form/samples/side-effects-switch-statements/main.js @@ -74,3 +74,10 @@ for (var i = 0; i < 4; i++) { } effect(); } + +var included; +switch (effect()) { + default: + included = 1; +} +console.log(included);