Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions crates/oxc_transformer/src/typescript/enum.rs
Original file line number Diff line number Diff line change
Expand Up @@ -427,10 +427,9 @@ impl<'a> TypeScriptEnum<'a> {
let mut value = StringBuilder::new_in(ctx.ast.allocator);
for (quasi, expr) in lit.quasis.iter().zip(&lit.expressions) {
value.push_str(&quasi.value.cooked.unwrap_or(quasi.value.raw));
if let ConstantValue::String(str) =
self.evaluate(expr, prev_members, ctx)?
{
value.push_str(&str);
match self.evaluate(expr, prev_members, ctx)? {
ConstantValue::String(str) => value.push_str(&str),
ConstantValue::Number(num) => value.push_str(&num.to_js_string()),
}
}
Atom::from(value.into_str())
Expand Down
27 changes: 25 additions & 2 deletions tasks/transform_conformance/snapshots/oxc.snap.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
commit: 4cc3d888

Passed: 188/317
Passed: 188/318

# All Passed:
* babel-plugin-transform-class-static-block
Expand Down Expand Up @@ -68,7 +68,7 @@ after transform: SymbolId(0): [ReferenceId(0), ReferenceId(2), ReferenceId(6), R
rebuilt : SymbolId(0): [ReferenceId(0), ReferenceId(2), ReferenceId(6), ReferenceId(10)]


# babel-plugin-transform-typescript (6/28)
# babel-plugin-transform-typescript (6/29)
* allow-declare-fields-false/input.ts
Unresolved references mismatch:
after transform: ["dce"]
Expand Down Expand Up @@ -228,6 +228,29 @@ Symbol flags mismatch for "AnimalSize":
after transform: SymbolId(6): SymbolFlags(RegularEnum)
rebuilt : SymbolId(4): SymbolFlags(FunctionScopedVariable)

* enum-template-literal-number/input.ts
Bindings mismatch:
after transform: ScopeId(1): ["NUM_1", "NUM_2", "NUM_3", "NUM_4", "NumberEnum"]
rebuilt : ScopeId(1): ["NumberEnum"]
Scope flags mismatch:
after transform: ScopeId(1): ScopeFlags(0x0)
rebuilt : ScopeId(1): ScopeFlags(Function)
Bindings mismatch:
after transform: ScopeId(2): ["COMPUTED_1", "COMPUTED_2", "ComputedEnum"]
rebuilt : ScopeId(2): ["ComputedEnum"]
Scope flags mismatch:
after transform: ScopeId(2): ScopeFlags(0x0)
rebuilt : ScopeId(2): ScopeFlags(Function)
Symbol flags mismatch for "NumberEnum":
after transform: SymbolId(0): SymbolFlags(RegularEnum)
rebuilt : SymbolId(0): SymbolFlags(FunctionScopedVariable)
Symbol reference IDs mismatch for "NumberEnum":
after transform: SymbolId(0): [ReferenceId(0), ReferenceId(1), ReferenceId(2), ReferenceId(3), ReferenceId(13)]
rebuilt : SymbolId(0): [ReferenceId(9)]
Symbol flags mismatch for "ComputedEnum":
after transform: SymbolId(5): SymbolFlags(RegularEnum)
rebuilt : SymbolId(2): SymbolFlags(FunctionScopedVariable)

* export-elimination/input.ts
Bindings mismatch:
after transform: ScopeId(0): ["Bar", "Foo", "Func", "Im", "Name", "Ok"]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
enum NumberEnum {
NUM_1 = 1000,
NUM_2 = 2000,
NUM_3 = 3000,
NUM_4 = 4000,
}

enum ComputedEnum {
COMPUTED_1 = `${NumberEnum.NUM_1}-${NumberEnum.NUM_2}`,
COMPUTED_2 = `${NumberEnum.NUM_3}-${NumberEnum.NUM_4}`,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
var NumberEnum = /* @__PURE__ */ function(NumberEnum) {
NumberEnum[NumberEnum["NUM_1"] = 1000] = "NUM_1";
NumberEnum[NumberEnum["NUM_2"] = 2000] = "NUM_2";
NumberEnum[NumberEnum["NUM_3"] = 3000] = "NUM_3";
NumberEnum[NumberEnum["NUM_4"] = 4000] = "NUM_4";
return NumberEnum;
}(NumberEnum || {});

var ComputedEnum = /* @__PURE__ */ function(ComputedEnum) {
ComputedEnum["COMPUTED_1"] = "1000-2000";
ComputedEnum["COMPUTED_2"] = "3000-4000";
return ComputedEnum;
}(ComputedEnum || {});
Loading