Microsoft/TypeScript

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

オープン

#55,091 opened on 2023/07/20

 (3 件のコメント) (2 件のリアクション) (0 人の担当者)TypeScript (13,395 件のフォーク)batch import
BugDomain: enumHelp Wanted

Repository metrics

Stars
 (108,860 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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.

コントリビューターガイド