From 811d1d5cd15623254a1ca45c6ca0b1bbd2e5f45d Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sun, 20 Oct 2019 07:52:44 +0200 Subject: [PATCH 1/2] Fix switch case not being included correctly --- 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); From f64c20ae04ae25f3dc3e2cfabda499afcdba5a68 Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Sun, 20 Oct 2019 08:06:30 +0200 Subject: [PATCH 2/2] Update dependencies --- package-lock.json | 65 ++++++++++++++++++++++++++++++----------------- package.json | 8 +++--- 2 files changed, 46 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index f5cbc7ceead..1950a4b5ab0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -314,7 +314,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, "requires": { "es6-promisify": "^5.0.0" } @@ -1438,14 +1437,12 @@ "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, "es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, "requires": { "es6-promise": "^4.0.3" } @@ -1699,13 +1696,14 @@ "dev": true }, "execa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.1.0.tgz", - "integrity": "sha512-KcBxdjv1JlRiHMIRSDtvaGlUb6SQ4TLqxG9blJNTo6bzYYZZBHBZPKqMmK5Eftok7wl1iwDIRofxdu8tBlidQA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.2.0.tgz", + "integrity": "sha512-kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw==", "dev": true, "requires": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.0", @@ -2581,9 +2579,9 @@ "dev": true }, "https-proxy-agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz", - "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.0.tgz", + "integrity": "sha512-y4jAxNEihqvBI5F3SaO2rtsjIOnnNA8sEbuiP+UhJZJHeM2NRm6c09ax2tgqme+SgUUvjao2fJXF4h3D6Cb2HQ==", "dev": true, "requires": { "agent-base": "^4.3.0", @@ -2594,7 +2592,6 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -2602,11 +2599,16 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, "husky": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/husky/-/husky-3.0.9.tgz", @@ -4030,9 +4032,9 @@ } }, "mocha": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.1.tgz", - "integrity": "sha512-VCcWkLHwk79NYQc8cxhkmI8IigTIhsCwZ6RTxQsqK6go4UvEhzJkYuHm8B2YtlSxcYq2fY+ucr4JBwoD6ci80A==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz", + "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -5276,9 +5278,9 @@ } }, "rollup": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.24.0.tgz", - "integrity": "sha512-PiFETY/rPwodQ8TTC52Nz2DSCYUATznGh/ChnxActCr8rV5FIk3afBUb3uxNritQW/Jpbdn3kq1Rwh1HHYMwdQ==", + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.25.0.tgz", + "integrity": "sha512-tcf5ThhnhOUaNrxBSABvaaX9uC8hNxgyJpJmDIXaCkKHq/nPocaDz/4F/KBDiUpOt/ThvUxFrUq3XkyWiyXQiQ==", "dev": true, "requires": { "@types/estree": "*", @@ -5287,9 +5289,9 @@ } }, "rollup-plugin-alias": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-alias/-/rollup-plugin-alias-2.0.1.tgz", - "integrity": "sha512-/wOySYmFzR1TPijsiNBOAV12HYPs7GZtAuim2LKdk5V6RnQSZ34ueVgkFfjJffe/HIFR6Jdwc4+7YOlY5uty4w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-alias/-/rollup-plugin-alias-2.1.0.tgz", + "integrity": "sha512-fbPLCkulSyNAqMvyvucGxlWCVE/+cqkFsFXN4exCX2Poti/+R0LgkhwOj/zqaytaZ4i1rCSXh+zZkVjgxlUBGg==", "dev": true, "requires": { "slash": "^3.0.0" @@ -6042,9 +6044,26 @@ "integrity": "sha512-CKncqSF7sH6p4rzCgkb/z/Pcos5efl0DmolzvlqRQUNcpRIruOhY9+T1FsIlyEbfWd7MsFpodROOwHYh2BaXzw==", "dev": true, "requires": { - "https-proxy-agent": "^2.2.1", + "https-proxy-agent": "^3.0.0", "node-fetch": "^2.2.0", "uuid": "^3.3.2" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "terser": { diff --git a/package.json b/package.json index adecb91d85b..687c22c9655 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "es6-shim": "^0.35.5", "eslint": "^6.5.1", "eslint-plugin-import": "^2.18.2", - "execa": "^3.1.0", + "execa": "^3.2.0", "fixturify": "^1.2.0", "hash.js": "^1.1.7", "husky": "^3.0.9", @@ -97,15 +97,15 @@ "markdownlint-cli": "^0.18.0", "micromatch": "^4.0.2", "minimist": "^1.2.0", - "mocha": "^6.2.1", + "mocha": "^6.2.2", "nyc": "^14.1.1", "prettier": "^1.18.2", "pretty-bytes": "^5.3.0", "pretty-ms": "^5.0.0", "require-relative": "^0.8.7", "requirejs": "^2.3.6", - "rollup": "^1.24.0", - "rollup-plugin-alias": "^2.0.1", + "rollup": "^1.25.0", + "rollup-plugin-alias": "^2.1.0", "rollup-plugin-buble": "^0.19.8", "rollup-plugin-commonjs": "^10.1.0", "rollup-plugin-json": "^4.0.0",