Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Treeshaking removed some default value of desctructing (Can not reproduce in some small repos) #6075

@gooff327

Description

@gooff327

Rollup Version

4.46.2

Operating System (or Browser)

MacOS, Chrome 139.0.7258.128

Node Version (if applicable)

v22.16.0

Link To Reproduction

https://rollupjs.org/repl/?version=4.46.2&shareable=JTdCJTIyZXhhbXBsZSUyMiUzQW51bGwlMkMlMjJtb2R1bGVzJTIyJTNBJTVCJTdCJTIyY29kZSUyMiUzQSUyMiUyRiUyRiUyMFRSRUUtU0hBS0lORyU1Q25pbXBvcnQlMjAlN0IlMjBjdWJlJTIwJTdEJTIwZnJvbSUyMCcuJTJGbWF0aHMuanMnJTNCJTVDbiU1Q25jb25zb2xlLmxvZyhjdWJlKDUpKSUzQiUyMCUyRiUyRiUyMDEyNSUyMiUyQyUyMmlzRW50cnklMjIlM0F0cnVlJTJDJTIybmFtZSUyMiUzQSUyMm1haW4uanMlMjIlN0QlMkMlN0IlMjJjb2RlJTIyJTNBJTIyJTJGJTJGJTIwbWF0aHMuanMlNUNuJTVDbiUyRiUyRiUyMFRoaXMlMjBmdW5jdGlvbiUyMGlzbid0JTIwdXNlZCUyMGFueXdoZXJlJTJDJTIwc28lNUNuJTJGJTJGJTIwUm9sbHVwJTIwZXhjbHVkZXMlMjBpdCUyMGZyb20lMjB0aGUlMjBidW5kbGUuLi4lNUNuZXhwb3J0JTIwY29uc3QlMjBzcXVhcmUlMjAlM0QlMjB4JTIwJTNEJTNFJTIweCUyMColMjB4JTNCJTVDbmNvbnN0JTIwYSUyMCUzRCUyMCU1QiU1RCU1Q25jb25zdCUyMCU1QmZpcnN0JTIwJTNEJTIwJTdCJTIwc2FtcGxlJTNBJTIwJTVCJTVEJTdEJTJDJTIwc2Vjb25kJTIwJTNEJTIwJTVCJTVEJTJDJTIwbGFzdCUyMCUzRCUyMCU3QnRlc3QxJTNBJTIwJTVCJTVEJTJDJTIwdGVzdDIlM0ElMjAlNUIlNUQlN0QlNUQlMjAlM0QlMjBhJTVDbmNvbnN0JTIwaXNUcnV0eSUyMCUzRCUyMGxhc3QudGVzdDEubGVuZ3RoJTIwJTI2JTI2JTIwbGFzdC50ZXN0MS5sZW5ndGglMjAlM0UlMjAxJTVDbiUyRiUyRiUyMGV4cGVjdCUyMC5sZW5ndGglMjBjYW4lMjBhY2Nlc3MlMjByaWdodCU1Q24lMkYlMkYlMjBhY3R1YWxseSUyMGxhc3QlMjAlM0QlMjAlN0IlN0QlNUNuJTVDbiU1Q24lNUNuJTJGJTJGJTIwY29uc29sZS5sb2cobGFzdCklNUNuJTJGJTJGJTIwVGhpcyUyMGZ1bmN0aW9uJTIwZ2V0cyUyMGluY2x1ZGVkJTVDbiUyRiUyRiUyMHJld3JpdGUlMjB0aGlzJTIwYXMlMjAlNjBzcXVhcmUoeCklMjAqJTIweCU2MCU1Q24lMkYlMkYlMjBhbmQlMjBzZWUlMjB3aGF0JTIwaGFwcGVucyElNUNuZXhwb3J0JTIwY29uc3QlMjBjdWJlJTIwJTNEJTIweCUyMCUzRCUzRSUyMHNxdWFyZSh4KSUyMColMjB4JTNCJTVDbiU1Q24lMkYlMkYlMjBUaGlzJTIwJTVDJTIyc2lkZSUyMGVmZmVjdCU1QyUyMiUyMGNyZWF0ZXMlMjBhJTIwZ2xvYmFsJTVDbiUyRiUyRiUyMHZhcmlhYmxlJTIwYW5kJTIwd2lsbCUyMG5vdCUyMGJlJTIwcmVtb3ZlZC4lNUNuJTJGJTJGJTIwd2luZG93LmVmZmVjdDElMjAlM0QlMjAnY3JlYXRlZCclM0IlNUNuJTVDbmNvbnN0JTIwaW5jbHVkZUVmZmVjdCUyMCUzRCUyMGZhbHNlJTNCJTVDbmlmJTIwKGluY2x1ZGVFZmZlY3QpJTIwJTdCJTVDbiU1Q3QlMkYlMkYlMjBPbiUyMHRoZSUyMG90aGVyJTIwaGFuZCUyQyUyMHRoaXMlMjBpcyUyMG5ldmVyJTVDbiU1Q3QlMkYlMkYlMjBleGVjdXRlZCUyMGFuZCUyMHRodXMlMjByZW1vdmVkLiU1Q24lNUN0d2luZG93LmVmZmVjdDElMjAlM0QlMjAnbm90JTIwY3JlYXRlZCclM0IlNUNuJTdEJTIyJTJDJTIyaXNFbnRyeSUyMiUzQWZhbHNlJTJDJTIybmFtZSUyMiUzQSUyMm1hdGhzLmpzJTIyJTdEJTVEJTJDJTIyb3B0aW9ucyUyMiUzQSU3QiUyMm91dHB1dCUyMiUzQSU3QiUyMmZvcm1hdCUyMiUzQSUyMmVzJTIyJTdEJTJDJTIydHJlZXNoYWtlJTIyJTNBdHJ1ZSU3RCU3RA==

Expected Behaviour

It can not be reproduced in demos, but it reproduces in my big monorepo; it produces two different codes when I toggle rollupOptions.treeshake in my vite.config.ts; Here are some samples as follows:

   const [sample = { guids: []}] = response
   console.log(sample.guids.length)
   // treeshake build
   const [sample = {guids: []}] = response
   console.log(sample.guids.length)
const [sample = { guid: "test_guid"}] = response
console.log(sample.guid)
// treeshake build
const [sample = {guid:  "test_guid"}] = response
console.log(sample.guid)
   const [sample =["test_sample"]] = response
   console.log(sample)
   // treeshake build
   const [sample = ["test_sample"]] = response
   console.log(sample)

Actual Behaviour


    const [sample = { guids: []}, last=[]] = response
    console.log(sample.guids.length)
    // treeshake build
    const [sample = {}, ] = response
    console.log(sample.guids.length && sample.guids.length === last.length )
   // treeshake off build - not reproduced in link
    const [sample = { guids: []}] = response
    console.log(sample.guids.length && sample.guids.length === last.length )


   const [sample = { guid: "test_guid"}] = response
   console.log(sample.guid)
   // treeshake build
   const [sample = {}] = response
   console.log(sample.guid)

    const [sample =["test_sample"]] = response
    console.log(sample)
    // treeshake build
    const [sample = ["test_sample"]] = response
    console.log(sample)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions