Skip to content

Wrong namespace property definition when namespaced output.name with first-level reserved key. #5603

@7086cmd

Description

@7086cmd

Rollup Version

v4.20.0

Operating System (or Browser)

macOS / Chrome

Node Version (if applicable)

Does not apply

Link To Reproduction

https://rollupjs.org/repl/?version=4.20.0&shareable=JTdCJTIyZXhhbXBsZSUyMiUzQW51bGwlMkMlMjJtb2R1bGVzJTIyJTNBJTVCJTdCJTIyY29kZSUyMiUzQSUyMiUyRiUyRiUyMFRSRUUtU0hBS0lORyU1Q25pbXBvcnQlMjAlN0IlMjBqb2luJTIwJTdEJTIwZnJvbSUyMCdub2RlJTNBcGF0aCclM0IlNUNuJTVDbmNvbnNvbGUubG9nKGN1YmUoNSkpJTNCJTIwJTJGJTJGJTIwMTI1JTVDbmpvaW4oJ2EnJTJDJTIwJ2InKSU1Q25leHBvcnQlMjBkZWZhdWx0JTIwam9pbiUyMiUyQyUyMmlzRW50cnklMjIlM0F0cnVlJTJDJTIybmFtZSUyMiUzQSUyMm1haW4uanMlMjIlN0QlNUQlMkMlMjJvcHRpb25zJTIyJTNBJTdCJTIyb3V0cHV0JTIyJTNBJTdCJTIyZXhwb3J0cyUyMiUzQSUyMm5hbWVkJTIyJTJDJTIyZXh0ZW5kJTIyJTNBZmFsc2UlMkMlMjJmb3JtYXQlMjIlM0ElMjJpaWZlJTIyJTJDJTIyZ2xvYmFscyUyMiUzQSU3QiUyMm5vZGUlM0FwYXRoJTIyJTNBJTIyMSUyMiU3RCUyQyUyMm5hbWUlMjIlM0ElMjJ0b1N0cmluZy52YWx1ZU9mLmhlbGxvJTIyJTdEJTJDJTIydHJlZXNoYWtlJTIyJTNBdHJ1ZSU3RCU3RA==

Actual Behaviour

this[undefined] = this[undefined] || {};
this[undefined].valueOf = this[undefined].valueOf || {};
this.toString.valueOf.hello = ...

Expected Behaviour

this.toString = this.toString || {};
this.toString.valueOf = this.toString.valueOf || {};
this.toString.valueOf.hello = ...

Or maybe throw an error 🤔 (?) It would be great to create a warning since it is an override to standard APIs, but it is not a illegal action.

These reserved keys include: toString, valueOf, etc.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions