Microsoft/TypeScript

Enum value `1 / 0` incorrectly transformed if there is `Infinity` declared in scope

Aperta

#55.091 aperta il 20 lug 2023

 (3 commenti) (2 reazioni) (0 assegnatari)TypeScript (13.395 fork)batch import
BugDomain: enumHelp Wanted

Metriche repository

Star
 (108.860 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

Bug Report

🔎 Search Terms

infinity enum variable let shadow

🕗 Version & Regression Information

Every version I tested

⏯ Playground Link

Playground link with relevant code

💻 Code

{
  let Infinity = 3;

  enum A {
    X = 1 / 0
  }

  console.log(A.X)
}

🙁 Actual behavior

{
    let Infinity = 3;
    let A;
    (function (A) {
        A[A["X"] = Infinity] = "X";
    })(A || (A = {}));
    console.log(A.X);
}

and logs 3

🙂 Expected behavior

It should log the result of 1 / 0, which is Infinity.

Somewhat related to https://github.com/microsoft/TypeScript/issues/54981.

Guida contributor