Skip to content

Lone surrogate in enum member name / const enum value is corrupted to U+FFFD in emitted JS #4092

Description

Steps to reproduce

main.ts:

enum E {
  "\uD800lone" = 1,
}
const enum S {
  C = "\uD800",
}
const c = S.C;
tsgo main.ts

Behavior with typescript@6.0

"use strict";
var E;
(function (E) {
    E[E["\uD800lone"] = 1] = "\uD800lone";
})(E || (E = {}));
const c = "\uD800" /* S.C */;

Behavior with tsgo

"use strict";
var E;
(function (E) {
    E[E["\uFFFDlone"] = 1] = "\uFFFDlone";
})(E || (E = {}));
const c = "\uFFFD" /* S.C */;

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions