Skip to content

Commit 114ac43

Browse files
committed
fix(transformer): TransformOptions::enable_all enable decorator transform
1 parent 03051ae commit 114ac43

File tree

7 files changed

+1714
-359
lines changed

7 files changed

+1714
-359
lines changed

crates/oxc_transformer/src/decorator/options.rs

+8
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,11 @@ pub struct DecoratorOptions {
1818
/// in TypeScript, and it only works when `legacy` is true.
1919
pub emit_decorator_metadata: bool,
2020
}
21+
22+
impl DecoratorOptions {
23+
pub fn enable_all() -> Self {
24+
// Should be `emit_decorator_metadata: true` but there's a bug somewhere that crashes conformance
25+
// with that option enabled
26+
DecoratorOptions { legacy: true, emit_decorator_metadata: false }
27+
}
28+
}

crates/oxc_transformer/src/options/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ impl TransformOptions {
8282
cwd: PathBuf::new(),
8383
assumptions: CompilerAssumptions::default(),
8484
typescript: TypeScriptOptions::default(),
85-
decorator: DecoratorOptions::default(),
85+
decorator: DecoratorOptions::enable_all(),
8686
jsx: JsxOptions {
8787
development: true,
8888
refresh: Some(ReactRefreshOptions::default()),

tasks/benchmark/benches/transformer.rs

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ fn bench_transformer(criterion: &mut Criterion) {
2424
// Even the plugins are unfinished, we still want to enable all of them
2525
// to track the performance changes during the development.
2626
transform_options.env = EnvOptions::enable_all(/* include_unfinished_plugins */ true);
27-
transform_options.decorator.legacy = true;
2827
transform_options.decorator.emit_decorator_metadata = true;
2928

3029
group.bench_function(id, |b| {

tasks/coverage/snapshots/semantic_babel.snap

+39-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ commit: 578ac4df
22

33
semantic_babel Summary:
44
AST Parsed : 2322/2322 (100.00%)
5-
Positive Passed: 1902/2322 (81.91%)
5+
Positive Passed: 1898/2322 (81.74%)
66
tasks/coverage/babel/packages/babel-parser/test/fixtures/annex-b/enabled/3.3-function-in-if-body/input.js
77
semantic error: Symbol scope ID mismatch for "f":
88
after transform: SymbolId(0): ScopeId(4294967294)
@@ -11,6 +11,28 @@ Symbol scope ID mismatch for "g":
1111
after transform: SymbolId(1): ScopeId(4294967294)
1212
rebuilt : SymbolId(1): ScopeId(4294967294)
1313

14+
tasks/coverage/babel/packages/babel-parser/test/fixtures/comments/decorators/decorators-after-export/input.js
15+
semantic error: Symbol span mismatch for "C":
16+
after transform: SymbolId(0): Span { start: 65, end: 66 }
17+
rebuilt : SymbolId(1): Span { start: 0, end: 0 }
18+
Symbol span mismatch for "C":
19+
after transform: SymbolId(1): Span { start: 0, end: 0 }
20+
rebuilt : SymbolId(2): Span { start: 65, end: 66 }
21+
Symbol flags mismatch for "_default":
22+
after transform: SymbolId(3): SymbolFlags(Class)
23+
rebuilt : SymbolId(3): SymbolFlags(BlockScopedVariable)
24+
25+
tasks/coverage/babel/packages/babel-parser/test/fixtures/comments/decorators/decorators-before-export/input.js
26+
semantic error: Symbol span mismatch for "C":
27+
after transform: SymbolId(0): Span { start: 65, end: 66 }
28+
rebuilt : SymbolId(1): Span { start: 0, end: 0 }
29+
Symbol span mismatch for "C":
30+
after transform: SymbolId(1): Span { start: 0, end: 0 }
31+
rebuilt : SymbolId(2): Span { start: 65, end: 66 }
32+
Symbol flags mismatch for "_default":
33+
after transform: SymbolId(3): SymbolFlags(Class)
34+
rebuilt : SymbolId(3): SymbolFlags(BlockScopedVariable)
35+
1436
tasks/coverage/babel/packages/babel-parser/test/fixtures/core/opts/allowNewTargetOutsideFunction-true/input.js
1537
semantic error: Unexpected new.target expression
1638
Unexpected new.target expression
@@ -598,6 +620,22 @@ semantic error: Bindings mismatch:
598620
after transform: ScopeId(0): ["x"]
599621
rebuilt : ScopeId(0): []
600622
623+
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments/input.ts
624+
semantic error: Symbol span mismatch for "Test":
625+
after transform: SymbolId(0): Span { start: 27, end: 31 }
626+
rebuilt : SymbolId(1): Span { start: 0, end: 0 }
627+
Symbol span mismatch for "Test":
628+
after transform: SymbolId(1): Span { start: 0, end: 0 }
629+
rebuilt : SymbolId(2): Span { start: 27, end: 31 }
630+
631+
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/decorators/type-arguments-babel-7/input.ts
632+
semantic error: Symbol span mismatch for "Test":
633+
after transform: SymbolId(0): Span { start: 27, end: 31 }
634+
rebuilt : SymbolId(1): Span { start: 0, end: 0 }
635+
Symbol span mismatch for "Test":
636+
after transform: SymbolId(1): Span { start: 0, end: 0 }
637+
rebuilt : SymbolId(2): Span { start: 27, end: 31 }
638+
601639
tasks/coverage/babel/packages/babel-parser/test/fixtures/typescript/enum/const/input.ts
602640
semantic error: Scope flags mismatch:
603641
after transform: ScopeId(1): ScopeFlags(StrictMode)

tasks/coverage/snapshots/semantic_misc.snap

+33-19
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
semantic_misc Summary:
22
AST Parsed : 33/33 (100.00%)
3-
Positive Passed: 19/33 (57.58%)
3+
Positive Passed: 18/33 (54.55%)
44
tasks/coverage/misc/pass/oxc-1288.ts
55
semantic error: Bindings mismatch:
66
after transform: ScopeId(0): ["from"]
@@ -21,6 +21,14 @@ semantic error: Scope children mismatch:
2121
after transform: ScopeId(0): [ScopeId(1)]
2222
rebuilt : ScopeId(0): []
2323

24+
tasks/coverage/misc/pass/oxc-2562.ts
25+
semantic error: Symbol span mismatch for "HooksController":
26+
after transform: SymbolId(0): Span { start: 67, end: 82 }
27+
rebuilt : SymbolId(1): Span { start: 0, end: 0 }
28+
Symbol span mismatch for "HooksController":
29+
after transform: SymbolId(1): Span { start: 0, end: 0 }
30+
rebuilt : SymbolId(2): Span { start: 67, end: 82 }
31+
2432
tasks/coverage/misc/pass/oxc-2592.ts
2533
semantic error: Scope children mismatch:
2634
after transform: ScopeId(0): [ScopeId(1)]
@@ -41,53 +49,59 @@ rebuilt : []
4149

4250
tasks/coverage/misc/pass/oxc-3948-1.ts
4351
semantic error: Bindings mismatch:
44-
after transform: ScopeId(0): ["BrowserWorkingCopyBackupTracker", "CancellationToken", "DisposableStore", "EditorPart", "EditorService", "IEditorGroupsService", "IEditorService", "IFilesConfigurationService", "IInstantiationService", "ILifecycleService", "ILogService", "IUntitledTextResourceEditorInput", "IWorkingCopyBackup", "IWorkingCopyBackupService", "IWorkingCopyEditorHandler", "IWorkingCopyEditorService", "IWorkingCopyService", "InMemoryTestWorkingCopyBackupService", "LifecyclePhase", "Schemas", "TestServiceAccessor", "TestWorkingCopy", "URI", "UntitledTextEditorInput", "VSBuffer", "_asyncToGenerator", "_defineProperty", "assert", "bufferToReadable", "createEditorPart", "ensureNoDisposablesAreLeakedInTestSuite", "isWindows", "registerTestResourceEditor", "timeout", "toResource", "toTypedWorkingCopyId", "toUntypedWorkingCopyId", "workbenchInstantiationService", "workbenchTeardown"]
45-
rebuilt : ScopeId(0): ["BrowserWorkingCopyBackupTracker", "DisposableStore", "EditorService", "IEditorGroupsService", "IEditorService", "IFilesConfigurationService", "ILifecycleService", "ILogService", "IWorkingCopyBackupService", "IWorkingCopyEditorService", "IWorkingCopyService", "InMemoryTestWorkingCopyBackupService", "LifecyclePhase", "Schemas", "TestServiceAccessor", "TestWorkingCopy", "URI", "UntitledTextEditorInput", "VSBuffer", "_asyncToGenerator", "_defineProperty", "assert", "bufferToReadable", "createEditorPart", "ensureNoDisposablesAreLeakedInTestSuite", "isWindows", "registerTestResourceEditor", "timeout", "toResource", "toTypedWorkingCopyId", "toUntypedWorkingCopyId", "workbenchInstantiationService", "workbenchTeardown"]
52+
after transform: ScopeId(0): ["BrowserWorkingCopyBackupTracker", "CancellationToken", "DisposableStore", "EditorPart", "EditorService", "IEditorGroupsService", "IEditorService", "IFilesConfigurationService", "IInstantiationService", "ILifecycleService", "ILogService", "IUntitledTextResourceEditorInput", "IWorkingCopyBackup", "IWorkingCopyBackupService", "IWorkingCopyEditorHandler", "IWorkingCopyEditorService", "IWorkingCopyService", "InMemoryTestWorkingCopyBackupService", "LifecyclePhase", "Schemas", "TestServiceAccessor", "TestWorkingCopy", "URI", "UntitledTextEditorInput", "VSBuffer", "_asyncToGenerator", "_decorate", "_decorateParam", "_defineProperty", "assert", "bufferToReadable", "createEditorPart", "ensureNoDisposablesAreLeakedInTestSuite", "isWindows", "registerTestResourceEditor", "timeout", "toResource", "toTypedWorkingCopyId", "toUntypedWorkingCopyId", "workbenchInstantiationService", "workbenchTeardown"]
53+
rebuilt : ScopeId(0): ["BrowserWorkingCopyBackupTracker", "DisposableStore", "EditorService", "IEditorGroupsService", "IEditorService", "IFilesConfigurationService", "ILifecycleService", "ILogService", "IWorkingCopyBackupService", "IWorkingCopyEditorService", "IWorkingCopyService", "InMemoryTestWorkingCopyBackupService", "LifecyclePhase", "Schemas", "TestServiceAccessor", "TestWorkingCopy", "URI", "UntitledTextEditorInput", "VSBuffer", "_asyncToGenerator", "_decorate", "_decorateParam", "_defineProperty", "assert", "bufferToReadable", "createEditorPart", "ensureNoDisposablesAreLeakedInTestSuite", "isWindows", "registerTestResourceEditor", "timeout", "toResource", "toTypedWorkingCopyId", "toUntypedWorkingCopyId", "workbenchInstantiationService", "workbenchTeardown"]
4654
Symbol reference IDs mismatch for "URI":
4755
after transform: SymbolId(1): [ReferenceId(109), ReferenceId(117), ReferenceId(156), ReferenceId(158), ReferenceId(160), ReferenceId(162)]
48-
rebuilt : SymbolId(1): [ReferenceId(160), ReferenceId(162), ReferenceId(164), ReferenceId(166)]
56+
rebuilt : SymbolId(1): [ReferenceId(171), ReferenceId(173), ReferenceId(175), ReferenceId(177)]
4957
Symbol reference IDs mismatch for "IEditorService":
5058
after transform: SymbolId(2): [ReferenceId(23), ReferenceId(24), ReferenceId(67), ReferenceId(184)]
51-
rebuilt : SymbolId(2): [ReferenceId(17), ReferenceId(59), ReferenceId(187)]
59+
rebuilt : SymbolId(2): [ReferenceId(38), ReferenceId(70), ReferenceId(198)]
5260
Symbol reference IDs mismatch for "IEditorGroupsService":
5361
after transform: SymbolId(4): [ReferenceId(25), ReferenceId(26), ReferenceId(57), ReferenceId(176)]
54-
rebuilt : SymbolId(3): [ReferenceId(18), ReferenceId(50), ReferenceId(180)]
62+
rebuilt : SymbolId(3): [ReferenceId(40), ReferenceId(61), ReferenceId(191)]
5563
Symbol reference IDs mismatch for "EditorService":
5664
after transform: SymbolId(5): [ReferenceId(61), ReferenceId(64), ReferenceId(178), ReferenceId(181)]
57-
rebuilt : SymbolId(4): [ReferenceId(56), ReferenceId(184)]
65+
rebuilt : SymbolId(4): [ReferenceId(67), ReferenceId(195)]
5866
Symbol reference IDs mismatch for "IWorkingCopyBackupService":
5967
after transform: SymbolId(7): [ReferenceId(11), ReferenceId(12), ReferenceId(51), ReferenceId(170)]
60-
rebuilt : SymbolId(5): [ReferenceId(11), ReferenceId(44), ReferenceId(174)]
68+
rebuilt : SymbolId(5): [ReferenceId(26), ReferenceId(55), ReferenceId(185)]
6169
Symbol reference IDs mismatch for "IFilesConfigurationService":
6270
after transform: SymbolId(10): [ReferenceId(13), ReferenceId(14)]
63-
rebuilt : SymbolId(8): [ReferenceId(12)]
71+
rebuilt : SymbolId(8): [ReferenceId(28)]
6472
Symbol reference IDs mismatch for "IWorkingCopyService":
6573
after transform: SymbolId(11): [ReferenceId(15), ReferenceId(16)]
66-
rebuilt : SymbolId(9): [ReferenceId(13)]
74+
rebuilt : SymbolId(9): [ReferenceId(30)]
6775
Symbol reference IDs mismatch for "ILogService":
6876
after transform: SymbolId(13): [ReferenceId(19), ReferenceId(20)]
69-
rebuilt : SymbolId(10): [ReferenceId(15)]
77+
rebuilt : SymbolId(10): [ReferenceId(34)]
7078
Symbol reference IDs mismatch for "ILifecycleService":
7179
after transform: SymbolId(14): [ReferenceId(17), ReferenceId(18)]
72-
rebuilt : SymbolId(11): [ReferenceId(14)]
80+
rebuilt : SymbolId(11): [ReferenceId(32)]
7381
Symbol reference IDs mismatch for "UntitledTextEditorInput":
7482
after transform: SymbolId(17): [ReferenceId(38), ReferenceId(87)]
75-
rebuilt : SymbolId(13): [ReferenceId(31)]
83+
rebuilt : SymbolId(13): [ReferenceId(42)]
7684
Symbol reference IDs mismatch for "InMemoryTestWorkingCopyBackupService":
7785
after transform: SymbolId(19): [ReferenceId(43), ReferenceId(46), ReferenceId(165)]
78-
rebuilt : SymbolId(15): [ReferenceId(39), ReferenceId(169)]
86+
rebuilt : SymbolId(15): [ReferenceId(50), ReferenceId(180)]
7987
Symbol reference IDs mismatch for "TestServiceAccessor":
8088
after transform: SymbolId(21): [ReferenceId(1), ReferenceId(40), ReferenceId(71), ReferenceId(155), ReferenceId(188)]
81-
rebuilt : SymbolId(17): [ReferenceId(63), ReferenceId(191)]
89+
rebuilt : SymbolId(17): [ReferenceId(74), ReferenceId(202)]
8290
Symbol reference IDs mismatch for "IWorkingCopyEditorService":
8391
after transform: SymbolId(32): [ReferenceId(21), ReferenceId(22)]
84-
rebuilt : SymbolId(26): [ReferenceId(16)]
92+
rebuilt : SymbolId(26): [ReferenceId(36)]
93+
Symbol span mismatch for "TestWorkingCopyBackupTracker":
94+
after transform: SymbolId(39): Span { start: 3208, end: 3236 }
95+
rebuilt : SymbolId(37): Span { start: 0, end: 0 }
8596
Symbol reference IDs mismatch for "TestWorkingCopyBackupTracker":
86-
after transform: SymbolId(39): [ReferenceId(42), ReferenceId(74), ReferenceId(154), ReferenceId(215)]
87-
rebuilt : SymbolId(35): [ReferenceId(66), ReferenceId(218)]
97+
after transform: SymbolId(39): [ReferenceId(42), ReferenceId(74), ReferenceId(154), ReferenceId(215), ReferenceId(351), ReferenceId(353)]
98+
rebuilt : SymbolId(37): [ReferenceId(23), ReferenceId(41), ReferenceId(77), ReferenceId(229)]
99+
Symbol span mismatch for "TestWorkingCopyBackupTracker":
100+
after transform: SymbolId(135): Span { start: 0, end: 0 }
101+
rebuilt : SymbolId(38): Span { start: 3208, end: 3236 }
88102
Unresolved reference IDs mismatch for "Promise":
89103
after transform: [ReferenceId(36), ReferenceId(39), ReferenceId(82), ReferenceId(114), ReferenceId(153), ReferenceId(282)]
90-
rebuilt : [ReferenceId(291)]
104+
rebuilt : [ReferenceId(302)]
91105

92106
tasks/coverage/misc/pass/oxc-4449.ts
93107
semantic error: Bindings mismatch:

0 commit comments

Comments
 (0)