-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Closed
Labels
Description
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
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)