Skip to content

[Bug]: References to merging enum member is lost #16133

@magic-akari

Description

@magic-akari

💻

  • Would you like to work on a fix?

How are you using Babel?

Programmatic API (babel.transform, babel.parse)

Input code

enum Animals {
	Cat = 1
}

enum Animals {
	Dog = 2
}

enum Animals {
	CatDog =  Cat - Dog
}

Configuration file name

No response

Configuration

No response

Current and expected behavior

Current:

var Animals = /*#__PURE__*/function (Animals) {
  Animals[Animals["Cat"] = 1] = "Cat";
  return Animals;
}(Animals || {});
Animals = /*#__PURE__*/function (Animals) {
  Animals[Animals["Dog"] = 2] = "Dog";
  return Animals;
}(Animals || {});
Animals = function (Animals) {
  Animals[Animals["CatDog"] = Animals.Cat - Dog] = "CatDog";
  return Animals;
}(Animals || {});

Expected:

var Animals = /*#__PURE__*/function (Animals) {
  Animals[Animals["Cat"] = 1] = "Cat";
  return Animals;
}(Animals || {});
Animals = /*#__PURE__*/function (Animals) {
  Animals[Animals["Dog"] = 2] = "Dog";
  return Animals;
}(Animals || {});
Animals = function (Animals) {
  Animals[Animals["CatDog"] = Animals.Cat - Animals.Dog] = "CatDog";
  return Animals;
}(Animals || {});

Note

The Dog should be qualified

Environment

Playground:
https://babeljs.io/repl#?browsers=defaults%2C%20not%20ie%2011%2C%20not%20ie_mob%2011&build=&builtIns=false&corejs=3.21&spec=false&loose=false&code_lz=KYOwrgtgBAgiCWECGAbAzlA3gKAJAGEkAXKAXigEZsBfbbUSWBZdLPAEQHsBzMqAJhp0G0OIlQYcBYl17kohEgFoosoUA&debug=false&forceAllTransforms=false&modules=false&shippedProposals=false&circleciRepo=&evaluate=false&fileSize=false&timeTravel=false&sourceType=module&lineWrap=true&presets=env%2Ctypescript&prettier=false&targets=&version=7.23.4&externalPlugins=&assumptions=%7B%7D

Possible solution

No response

Additional context

No response

Metadata

Metadata

Labels

area: typescriptoutdatedA closed issue/PR that is archived due to age. Recommended to make a new issue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions