From 736ecba509eab5698ce875fe76e9b595535fe282 Mon Sep 17 00:00:00 2001 From: TrickyPi <530257315@qq.com> Date: Sun, 23 Apr 2023 20:03:38 +0800 Subject: [PATCH 1/7] fix: mark Map is impure --- src/ast/nodes/shared/knownGlobals.ts | 2 +- .../samples/tree-shake-map-constructor/_config.js | 4 ++++ .../samples/tree-shake-map-constructor/main.js | 12 ++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 test/function/samples/tree-shake-map-constructor/_config.js create mode 100644 test/function/samples/tree-shake-map-constructor/main.js diff --git a/src/ast/nodes/shared/knownGlobals.ts b/src/ast/nodes/shared/knownGlobals.ts index 21d4e751af2..34b21ca9eb4 100644 --- a/src/ast/nodes/shared/knownGlobals.ts +++ b/src/ast/nodes/shared/knownGlobals.ts @@ -164,7 +164,7 @@ const knownGlobals: GlobalDescription = { isNaN: PF, isPrototypeOf: O, JSON: O, - Map: PC, + Map: C, Math: { __proto__: null, [ValueProperties]: IMPURE, diff --git a/test/function/samples/tree-shake-map-constructor/_config.js b/test/function/samples/tree-shake-map-constructor/_config.js new file mode 100644 index 00000000000..1de38a64953 --- /dev/null +++ b/test/function/samples/tree-shake-map-constructor/_config.js @@ -0,0 +1,4 @@ +module.exports = { + description: + 'Retain the Map constructor is called with the new keyword if the accepted param has side effects' +}; diff --git a/test/function/samples/tree-shake-map-constructor/main.js b/test/function/samples/tree-shake-map-constructor/main.js new file mode 100644 index 00000000000..f088c82c32f --- /dev/null +++ b/test/function/samples/tree-shake-map-constructor/main.js @@ -0,0 +1,12 @@ +assert.ok( + new Map({ + [Symbol.iterator]() { + return { + next() { + console.log('side effect'); + return { done: true }; + } + }; + } + }) +); From f089270194193b3066d8cd90883de90e0578096b Mon Sep 17 00:00:00 2001 From: TrickyPi <530257315@qq.com> Date: Mon, 24 Apr 2023 13:44:51 +0800 Subject: [PATCH 2/7] test: tweak test --- .../tree-shake-map-constructor/main.js | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/test/function/samples/tree-shake-map-constructor/main.js b/test/function/samples/tree-shake-map-constructor/main.js index f088c82c32f..fe883187019 100644 --- a/test/function/samples/tree-shake-map-constructor/main.js +++ b/test/function/samples/tree-shake-map-constructor/main.js @@ -1,12 +1,14 @@ -assert.ok( - new Map({ - [Symbol.iterator]() { - return { - next() { - console.log('side effect'); - return { done: true }; - } - }; - } - }) -); +let effect = false; + +new Map({ + [Symbol.iterator]() { + return { + next() { + effect = true; + return { done: true }; + } + }; + } +}); + +assert.ok(effect); From d571ee21ecc83cfee5565557573532fb97eb132b Mon Sep 17 00:00:00 2001 From: TrickyPi <530257315@qq.com> Date: Tue, 25 Apr 2023 12:23:25 +0800 Subject: [PATCH 3/7] fix: mark some known globals or their functions as impure --- src/ast/nodes/shared/knownGlobals.ts | 10 +++---- .../samples/tree-shake-iterable/_config.js | 3 ++ .../samples/tree-shake-iterable/main.js | 29 +++++++++++++++++++ .../tree-shake-map-constructor/_config.js | 4 --- .../tree-shake-map-constructor/main.js | 14 --------- 5 files changed, 37 insertions(+), 23 deletions(-) create mode 100644 test/function/samples/tree-shake-iterable/_config.js create mode 100644 test/function/samples/tree-shake-iterable/main.js delete mode 100644 test/function/samples/tree-shake-map-constructor/_config.js delete mode 100644 test/function/samples/tree-shake-map-constructor/main.js diff --git a/src/ast/nodes/shared/knownGlobals.ts b/src/ast/nodes/shared/knownGlobals.ts index 34b21ca9eb4..a6c7a6eaa10 100644 --- a/src/ast/nodes/shared/knownGlobals.ts +++ b/src/ast/nodes/shared/knownGlobals.ts @@ -94,7 +94,7 @@ const PC: GlobalDescription = { const ARRAY_TYPE: GlobalDescription = { __proto__: null, [ValueProperties]: PURE, - from: PF, + from: O, of: PF, prototype: O }; @@ -237,7 +237,7 @@ const knownGlobals: GlobalDescription = { isFrozen: PF, isSealed: PF, keys: PF, - fromEntries: PF, + fromEntries: O, entries: PF, prototype: O }, @@ -260,7 +260,7 @@ const knownGlobals: GlobalDescription = { ReferenceError: PC, Reflect: O, RegExp: PC, - Set: PC, + Set: C, SharedArrayBuffer: C, String: { __proto__: null, @@ -300,8 +300,8 @@ const knownGlobals: GlobalDescription = { unescape: PF, URIError: PC, valueOf: O, - WeakMap: PC, - WeakSet: PC, + WeakMap: C, + WeakSet: C, // Additional globals shared by Node and Browser that are not strictly part of the language clearInterval: C, diff --git a/test/function/samples/tree-shake-iterable/_config.js b/test/function/samples/tree-shake-iterable/_config.js new file mode 100644 index 00000000000..2448fd8d804 --- /dev/null +++ b/test/function/samples/tree-shake-iterable/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'Retain functions that consume iterable' +}; diff --git a/test/function/samples/tree-shake-iterable/main.js b/test/function/samples/tree-shake-iterable/main.js new file mode 100644 index 00000000000..31990102554 --- /dev/null +++ b/test/function/samples/tree-shake-iterable/main.js @@ -0,0 +1,29 @@ +let effects = []; + +const iterable = { + [Symbol.iterator]() { + return { + next() { + effects.push('effect'); + return { done: true }; + } + }; + } +}; + +new Map(iterable); +new Set(iterable); +new WeakMap(iterable); +new WeakSet(iterable); +Float32Array.from(iterable); +Float64Array.from(iterable); +Int16Array.from(iterable); +Int32Array.from(iterable); +Int8Array.from(iterable); +Uint16Array.from(iterable); +Uint32Array.from(iterable); +Uint8Array.from(iterable); +Uint8ClampedArray.from(iterable); +Object.fromEntries(iterable); + +assert.equal(effects.length, 14); diff --git a/test/function/samples/tree-shake-map-constructor/_config.js b/test/function/samples/tree-shake-map-constructor/_config.js deleted file mode 100644 index 1de38a64953..00000000000 --- a/test/function/samples/tree-shake-map-constructor/_config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - description: - 'Retain the Map constructor is called with the new keyword if the accepted param has side effects' -}; diff --git a/test/function/samples/tree-shake-map-constructor/main.js b/test/function/samples/tree-shake-map-constructor/main.js deleted file mode 100644 index fe883187019..00000000000 --- a/test/function/samples/tree-shake-map-constructor/main.js +++ /dev/null @@ -1,14 +0,0 @@ -let effect = false; - -new Map({ - [Symbol.iterator]() { - return { - next() { - effect = true; - return { done: true }; - } - }; - } -}); - -assert.ok(effect); From 0d7ad72b3ff48b8d14380819a977be2965591dbf Mon Sep 17 00:00:00 2001 From: TrickyPi <530257315@qq.com> Date: Tue, 25 Apr 2023 13:06:40 +0800 Subject: [PATCH 4/7] chore: update lint-staged version --- package-lock.json | 127 ++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 56 insertions(+), 73 deletions(-) diff --git a/package-lock.json b/package-lock.json index e72d7bcc13a..e9e481a811f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,7 +64,7 @@ "husky": "^8.0.3", "inquirer": "^9.1.4", "is-reference": "^3.0.1", - "lint-staged": "^13.1.2", + "lint-staged": "^13.2.1", "locate-character": "^2.0.5", "magic-string": "^0.30.0", "mocha": "^10.2.0", @@ -4320,14 +4320,14 @@ } }, "node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -4336,7 +4336,7 @@ "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" @@ -5145,12 +5145,12 @@ } }, "node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true, "engines": { - "node": ">=12.20.0" + "node": ">=14.18.0" } }, "node_modules/husky": { @@ -5941,9 +5941,9 @@ } }, "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, "engines": { "node": ">=10" @@ -5956,24 +5956,24 @@ "dev": true }, "node_modules/lint-staged": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.2.tgz", - "integrity": "sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.1.tgz", + "integrity": "sha512-8gfzinVXoPfga5Dz/ZOn8I2GOhf81Wvs+KwbEXQn/oWZAvCVS2PivrXfVbFJc93zD16uC0neS47RXHIjXKYZQw==", "dev": true, "dependencies": { + "chalk": "5.2.0", "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", + "commander": "^10.0.0", "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", + "execa": "^7.0.0", + "lilconfig": "2.1.0", + "listr2": "^5.0.7", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "pidtree": "^0.6.0", "string-argv": "^0.3.1", - "yaml": "^2.1.3" + "yaml": "^2.2.1" }, "bin": { "lint-staged": "bin/lint-staged.js" @@ -5985,19 +5985,10 @@ "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, "node_modules/listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", + "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", "dev": true, "dependencies": { "cli-truncate": "^2.1.0", @@ -9996,9 +9987,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", "dev": true, "engines": { "node": ">= 14" @@ -13158,14 +13149,14 @@ "dev": true }, "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", + "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", "dev": true, "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", - "human-signals": "^3.0.1", + "human-signals": "^4.3.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", @@ -13765,9 +13756,9 @@ } }, "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "dev": true }, "husky": { @@ -14329,9 +14320,9 @@ } }, "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true }, "lines-and-columns": { @@ -14341,38 +14332,30 @@ "dev": true }, "lint-staged": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.2.tgz", - "integrity": "sha512-K9b4FPbWkpnupvK3WXZLbgu9pchUJ6N7TtVZjbaPsoizkqFUDkUReUL25xdrCljJs7uLUF3tZ7nVPeo/6lp+6w==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.2.1.tgz", + "integrity": "sha512-8gfzinVXoPfga5Dz/ZOn8I2GOhf81Wvs+KwbEXQn/oWZAvCVS2PivrXfVbFJc93zD16uC0neS47RXHIjXKYZQw==", "dev": true, "requires": { + "chalk": "5.2.0", "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", + "commander": "^10.0.0", "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", + "execa": "^7.0.0", + "lilconfig": "2.1.0", + "listr2": "^5.0.7", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", + "object-inspect": "^1.12.3", "pidtree": "^0.6.0", "string-argv": "^0.3.1", - "yaml": "^2.1.3" - }, - "dependencies": { - "commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true - } + "yaml": "^2.2.1" } }, "listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.8.tgz", + "integrity": "sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==", "dev": true, "requires": { "cli-truncate": "^2.1.0", @@ -17286,9 +17269,9 @@ "dev": true }, "yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", "dev": true }, "yargs": { diff --git a/package.json b/package.json index dab603c97c5..50e5c620dea 100644 --- a/package.json +++ b/package.json @@ -115,7 +115,7 @@ "husky": "^8.0.3", "inquirer": "^9.1.4", "is-reference": "^3.0.1", - "lint-staged": "^13.1.2", + "lint-staged": "^13.2.1", "locate-character": "^2.0.5", "magic-string": "^0.30.0", "mocha": "^10.2.0", From a7775b2da8dfe8896e028619a4ee20c30d0762a5 Mon Sep 17 00:00:00 2001 From: TrickyPi <530257315@qq.com> Date: Wed, 26 Apr 2023 02:37:48 +0800 Subject: [PATCH 5/7] test: tweak test --- test/function/samples/tree-shake-iterable/main.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/function/samples/tree-shake-iterable/main.js b/test/function/samples/tree-shake-iterable/main.js index 31990102554..c776a4b4605 100644 --- a/test/function/samples/tree-shake-iterable/main.js +++ b/test/function/samples/tree-shake-iterable/main.js @@ -1,10 +1,10 @@ -let effects = []; +let effects = 0; const iterable = { [Symbol.iterator]() { return { next() { - effects.push('effect'); + effects++; return { done: true }; } }; @@ -26,4 +26,4 @@ Uint8Array.from(iterable); Uint8ClampedArray.from(iterable); Object.fromEntries(iterable); -assert.equal(effects.length, 14); +assert.equal(effects, 14); From d11f03d399f02c9a2f33ac2e1dc9998364c219e1 Mon Sep 17 00:00:00 2001 From: TrickyPi <530257315@qq.com> Date: Wed, 26 Apr 2023 23:37:58 +0800 Subject: [PATCH 6/7] test: add more test cases --- test/function/samples/tree-shake-iterable/_config.js | 2 +- test/function/samples/tree-shake-iterable/main.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/test/function/samples/tree-shake-iterable/_config.js b/test/function/samples/tree-shake-iterable/_config.js index 2448fd8d804..19d6004e133 100644 --- a/test/function/samples/tree-shake-iterable/_config.js +++ b/test/function/samples/tree-shake-iterable/_config.js @@ -1,3 +1,3 @@ module.exports = { - description: 'Retain functions that consume iterable' + description: 'retain functions that accept a iterable that has side effects on iteration' }; diff --git a/test/function/samples/tree-shake-iterable/main.js b/test/function/samples/tree-shake-iterable/main.js index c776a4b4605..8447c52bff3 100644 --- a/test/function/samples/tree-shake-iterable/main.js +++ b/test/function/samples/tree-shake-iterable/main.js @@ -15,6 +15,9 @@ new Map(iterable); new Set(iterable); new WeakMap(iterable); new WeakSet(iterable); +Array.from(iterable); +BigInt64Array.from(iterable); +BigUint64Array.from(iterable); Float32Array.from(iterable); Float64Array.from(iterable); Int16Array.from(iterable); @@ -26,4 +29,4 @@ Uint8Array.from(iterable); Uint8ClampedArray.from(iterable); Object.fromEntries(iterable); -assert.equal(effects, 14); +assert.equal(effects.length, 17); From 0f35bb0c6b316b6db1d9e43bc28bb9528d6ea420 Mon Sep 17 00:00:00 2001 From: TrickyPi <530257315@qq.com> Date: Thu, 27 Apr 2023 00:00:33 +0800 Subject: [PATCH 7/7] test: tweak test --- test/function/samples/tree-shake-iterable/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/function/samples/tree-shake-iterable/main.js b/test/function/samples/tree-shake-iterable/main.js index 8447c52bff3..6ac8d2d2759 100644 --- a/test/function/samples/tree-shake-iterable/main.js +++ b/test/function/samples/tree-shake-iterable/main.js @@ -29,4 +29,4 @@ Uint8Array.from(iterable); Uint8ClampedArray.from(iterable); Object.fromEntries(iterable); -assert.equal(effects.length, 17); +assert.equal(effects, 17);