Microsoft/TypeScript
View on GitHub`.length` property of function literals is not `readonly`
Open
#49,113 opened on May 14, 2022
BugDomain: lib.d.tsHelp Wanted
Repository metrics
- Stars
- (48,455 stars)
- PR merge metrics
- (Avg merge 6d 17h) (9 merged PRs in 30d)
Description
Bug Report
Function .length property is inconsistently readonly depending on whether Function constructor is used or not.
🔎 Search Terms
function length readonly
🕗 Version & Regression Information
v4.6.2 (haven't checked older versions)
⏯ Playground Link
Playground link with relevant code
💻 Code
const f = new Function()
f.length = 1 // Error here: Cannot assign to 'length' because it is a read-only property.
const f2 = () => {}
f2.length = 1 // No error here
🙁 Actual behavior
The length property of the function created with new Function() is readonly while the length property of function literals is not.
🙂 Expected behavior
Both length properties should be readonly. Alternative both could be non-readonly but that seems worse since JS doesn't modify the length when assigning a value.