Skip to content

Commit 6b5dbc6

Browse files
authored
fix(es/proposal): Fix exported class for explicit-resource-management (#10393)
**Related issue:** - Close #10392
1 parent abfb07f commit 6b5dbc6

File tree

244 files changed

+2908
-2639
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

244 files changed

+2908
-2639
lines changed

.changeset/mean-rings-punch.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
swc_core: patch
3+
swc_ecma_transforms_proposal: patch
4+
---
5+
6+
fix(es/proposal): Fix exported class for `explicit-resource-management`

crates/swc/tests/fixture/issues-8xxx/8629/output/1.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ const env = {
88
try {
99
var _computedKey;
1010
_computedKey = Symbol.dispose;
11+
var Disposable = class {
12+
[_computedKey]() {
13+
console.log('dispose');
14+
}
15+
};
1116
var _disposable = _ts_add_disposable_resource(env, new Disposable(), false);
1217
console.log('ok');
1318
} catch (e) {
@@ -16,8 +21,4 @@ try {
1621
} finally{
1722
_ts_dispose_resources(env);
1823
}
19-
export class Disposable {
20-
[_computedKey]() {
21-
console.log('dispose');
22-
}
23-
}
24+
export { Disposable };

crates/swc/tests/tsc-references/awaitUsingDeclarations.1(target=es2015).1.normal.js

+71-71
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,77 @@ try {
3535
if (result) yield result;
3636
}
3737
})();
38+
var C1 = class {
39+
am() {
40+
return /*#__PURE__*/ _async_to_generator(function*() {
41+
const env = {
42+
stack: [],
43+
error: void 0,
44+
hasError: false
45+
};
46+
try {
47+
const d13 = _ts_add_disposable_resource(env, {
48+
[Symbol.asyncDispose] () {
49+
return /*#__PURE__*/ _async_to_generator(function*() {})();
50+
}
51+
}, true);
52+
yield null;
53+
} catch (e) {
54+
env.error = e;
55+
env.hasError = true;
56+
} finally{
57+
const result = _ts_dispose_resources(env);
58+
if (result) yield result;
59+
}
60+
})();
61+
}
62+
ag() {
63+
return /*#__PURE__*/ _wrap_async_generator(function*() {
64+
const env = {
65+
stack: [],
66+
error: void 0,
67+
hasError: false
68+
};
69+
try {
70+
const d15 = _ts_add_disposable_resource(env, {
71+
[Symbol.asyncDispose] () {
72+
return /*#__PURE__*/ _async_to_generator(function*() {})();
73+
}
74+
}, true);
75+
yield;
76+
yield _await_async_generator(null);
77+
} catch (e) {
78+
env.error = e;
79+
env.hasError = true;
80+
} finally{
81+
const result = _ts_dispose_resources(env);
82+
if (result) yield _await_async_generator(result);
83+
}
84+
})();
85+
}
86+
constructor(){
87+
this.a = ()=>/*#__PURE__*/ _async_to_generator(function*() {
88+
const env = {
89+
stack: [],
90+
error: void 0,
91+
hasError: false
92+
};
93+
try {
94+
const d7 = _ts_add_disposable_resource(env, {
95+
[Symbol.asyncDispose] () {
96+
return /*#__PURE__*/ _async_to_generator(function*() {})();
97+
}
98+
}, true);
99+
} catch (e) {
100+
env.error = e;
101+
env.hasError = true;
102+
} finally{
103+
const result = _ts_dispose_resources(env);
104+
if (result) yield result;
105+
}
106+
})();
107+
}
108+
};
38109
{
39110
const env = {
40111
stack: [],
@@ -373,75 +444,4 @@ function ag() {
373444
}
374445
})();
375446
}
376-
class C1 {
377-
am() {
378-
return /*#__PURE__*/ _async_to_generator(function*() {
379-
const env = {
380-
stack: [],
381-
error: void 0,
382-
hasError: false
383-
};
384-
try {
385-
const d13 = _ts_add_disposable_resource(env, {
386-
[Symbol.asyncDispose] () {
387-
return /*#__PURE__*/ _async_to_generator(function*() {})();
388-
}
389-
}, true);
390-
yield null;
391-
} catch (e) {
392-
env.error = e;
393-
env.hasError = true;
394-
} finally{
395-
const result = _ts_dispose_resources(env);
396-
if (result) yield result;
397-
}
398-
})();
399-
}
400-
ag() {
401-
return /*#__PURE__*/ _wrap_async_generator(function*() {
402-
const env = {
403-
stack: [],
404-
error: void 0,
405-
hasError: false
406-
};
407-
try {
408-
const d15 = _ts_add_disposable_resource(env, {
409-
[Symbol.asyncDispose] () {
410-
return /*#__PURE__*/ _async_to_generator(function*() {})();
411-
}
412-
}, true);
413-
yield;
414-
yield _await_async_generator(null);
415-
} catch (e) {
416-
env.error = e;
417-
env.hasError = true;
418-
} finally{
419-
const result = _ts_dispose_resources(env);
420-
if (result) yield _await_async_generator(result);
421-
}
422-
})();
423-
}
424-
constructor(){
425-
this.a = ()=>/*#__PURE__*/ _async_to_generator(function*() {
426-
const env = {
427-
stack: [],
428-
error: void 0,
429-
hasError: false
430-
};
431-
try {
432-
const d7 = _ts_add_disposable_resource(env, {
433-
[Symbol.asyncDispose] () {
434-
return /*#__PURE__*/ _async_to_generator(function*() {})();
435-
}
436-
}, true);
437-
} catch (e) {
438-
env.error = e;
439-
env.hasError = true;
440-
} finally{
441-
const result = _ts_dispose_resources(env);
442-
if (result) yield result;
443-
}
444-
})();
445-
}
446-
}
447447
export { };

crates/swc/tests/tsc-references/awaitUsingDeclarations.1(target=es2017).1.normal.js

+61-61
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,67 @@ try {
2828
if (result) await result;
2929
}
3030
};
31+
var C1 = class {
32+
async am() {
33+
const env = {
34+
stack: [],
35+
error: void 0,
36+
hasError: false
37+
};
38+
try {
39+
const d13 = _ts_add_disposable_resource(env, {
40+
async [Symbol.asyncDispose] () {}
41+
}, true);
42+
await null;
43+
} catch (e) {
44+
env.error = e;
45+
env.hasError = true;
46+
} finally{
47+
const result = _ts_dispose_resources(env);
48+
if (result) await result;
49+
}
50+
}
51+
async *ag() {
52+
const env = {
53+
stack: [],
54+
error: void 0,
55+
hasError: false
56+
};
57+
try {
58+
const d15 = _ts_add_disposable_resource(env, {
59+
async [Symbol.asyncDispose] () {}
60+
}, true);
61+
yield;
62+
await null;
63+
} catch (e) {
64+
env.error = e;
65+
env.hasError = true;
66+
} finally{
67+
const result = _ts_dispose_resources(env);
68+
if (result) await result;
69+
}
70+
}
71+
constructor(){
72+
this.a = async ()=>{
73+
const env = {
74+
stack: [],
75+
error: void 0,
76+
hasError: false
77+
};
78+
try {
79+
const d7 = _ts_add_disposable_resource(env, {
80+
async [Symbol.asyncDispose] () {}
81+
}, true);
82+
} catch (e) {
83+
env.error = e;
84+
env.hasError = true;
85+
} finally{
86+
const result = _ts_dispose_resources(env);
87+
if (result) await result;
88+
}
89+
};
90+
}
91+
};
3192
{
3293
const env = {
3394
stack: [],
@@ -330,65 +391,4 @@ async function* ag() {
330391
if (result) await result;
331392
}
332393
}
333-
class C1 {
334-
async am() {
335-
const env = {
336-
stack: [],
337-
error: void 0,
338-
hasError: false
339-
};
340-
try {
341-
const d13 = _ts_add_disposable_resource(env, {
342-
async [Symbol.asyncDispose] () {}
343-
}, true);
344-
await null;
345-
} catch (e) {
346-
env.error = e;
347-
env.hasError = true;
348-
} finally{
349-
const result = _ts_dispose_resources(env);
350-
if (result) await result;
351-
}
352-
}
353-
async *ag() {
354-
const env = {
355-
stack: [],
356-
error: void 0,
357-
hasError: false
358-
};
359-
try {
360-
const d15 = _ts_add_disposable_resource(env, {
361-
async [Symbol.asyncDispose] () {}
362-
}, true);
363-
yield;
364-
await null;
365-
} catch (e) {
366-
env.error = e;
367-
env.hasError = true;
368-
} finally{
369-
const result = _ts_dispose_resources(env);
370-
if (result) await result;
371-
}
372-
}
373-
constructor(){
374-
this.a = async ()=>{
375-
const env = {
376-
stack: [],
377-
error: void 0,
378-
hasError: false
379-
};
380-
try {
381-
const d7 = _ts_add_disposable_resource(env, {
382-
async [Symbol.asyncDispose] () {}
383-
}, true);
384-
} catch (e) {
385-
env.error = e;
386-
env.hasError = true;
387-
} finally{
388-
const result = _ts_dispose_resources(env);
389-
if (result) await result;
390-
}
391-
};
392-
}
393-
}
394394
export { };

0 commit comments

Comments
 (0)