Skip to content

Crash: Maximum call stack size exceeded when declare const enum has a computed property named [object] followed by an object member #63173

@na7ure-a

Description

@na7ure-a

🔎 Search Terms

"Maximum call stack size exceeded" enum

"RangeError: Maximum call stack size exceeded" checkComputedPropertyName

"const enum" computed property crash

recursive enum member resolution

🕗 Version & Regression Information

Crashes in 5.7.3, 5.8.3, 5.9.3, Nightly,TS7.

⏯ Playground Link

https://www.typescriptlang.org/zh/play/?target=7&ts=6.0.0-dev.20260220&ssl=3&ssc=7&pln=2&pc=18#code/CYUwxgNghgTiAEYD2A7AzgF3iFBXAtvAKLwDeAUPFfANpIBGAVuBgLrwC88AjADSXUAgv2rwGzMFi7cADPwC+5IgDpByjEgDKGGAEsUAcwAUASgDcQA

💻 Code

declare const enum E {
    [object] = 1,
    A,
    object = 10,
}
E.A.toString();

🙁 Actual behavior

.\nightly\node_modules\.bin\tsc.cmd --ignoreConfig constEnumPropertyAccess3_mutated_batch12.ts        
D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:123669
      throw e;
      ^

RangeError: Maximum call stack size exceeded
    at getSymbolLinks (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:47892:26)                                                                                                  
    at getDeclaredTypeOfEnum (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:57437:19)                                                                                           
    at getDeclaredTypeOfEnumMember (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:57484:24)                                                                                     
    at getTypeOfEnumMember (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:56859:40)                                                                                             
    at getTypeOfSymbol (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:56963:14)                                                                                                 
    at getNarrowedTypeOfSymbol (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:71997:18)                                                                                         
    at checkIdentifier (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:72148:16)                                                                                                 
    at checkExpressionWorker (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:81009:16)                                                                                           
    at checkExpression (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:80952:32)                                                                                                 
    at checkComputedPropertyName (D:\do\typeFuzz\ts-versions\nightly\node_modules\typescript\lib\_tsc.js:74061:28)                                                                                       

Node.js v22.19.0

🙂 Expected behavior

The compiler should not crash.

Additional information about the issue

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScriptDomain: CrashesUnhandled exceptions/panics with no immediate primary root cause identifiedHelp WantedYou can do this

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions