From db8fd44e935f78549e1b13d54edd7792e4ecbdb5 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 25 Jul 2023 18:27:57 +0900 Subject: [PATCH] change Object.values/Object.entries to O from PF --- src/ast/nodes/shared/knownGlobals.ts | 4 ++-- .../_config.js | 3 +++ .../main.js | 13 +++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 test/function/samples/tree-shake-object-with-sideeffctful-getter/_config.js create mode 100644 test/function/samples/tree-shake-object-with-sideeffctful-getter/main.js diff --git a/src/ast/nodes/shared/knownGlobals.ts b/src/ast/nodes/shared/knownGlobals.ts index a6d752d4098..5b97c60426b 100644 --- a/src/ast/nodes/shared/knownGlobals.ts +++ b/src/ast/nodes/shared/knownGlobals.ts @@ -253,8 +253,8 @@ const knownGlobals: GlobalDescription = { isSealed: PF, keys: PF, fromEntries: O, - entries: PF, - values: PF, + entries: O, + values: O, prototype: O }, parseFloat: PF, diff --git a/test/function/samples/tree-shake-object-with-sideeffctful-getter/_config.js b/test/function/samples/tree-shake-object-with-sideeffctful-getter/_config.js new file mode 100644 index 00000000000..e35dd23c351 --- /dev/null +++ b/test/function/samples/tree-shake-object-with-sideeffctful-getter/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'retain functions that accept a object with a getter that has side effects' +}; diff --git a/test/function/samples/tree-shake-object-with-sideeffctful-getter/main.js b/test/function/samples/tree-shake-object-with-sideeffctful-getter/main.js new file mode 100644 index 00000000000..43c8c4499cc --- /dev/null +++ b/test/function/samples/tree-shake-object-with-sideeffctful-getter/main.js @@ -0,0 +1,13 @@ +let effects = 0; + +const obj = { + get foo() { + effects++; + return "foo"; + } +}; + +Object.values(obj); +Object.entries(obj); + +assert.equal(effects, 2);