Skip to content

Commit 99ba555

Browse files
authored
fix(es/proposal): Fix declarations for explicit-resource-management (#10198)
**Description:** Preserve the level of function declarations and replace the `kind` of top-level variable declarations to `var`. **Related issue:** - Closes #10168
1 parent e6b7cee commit 99ba555

File tree

206 files changed

+3404
-3379
lines changed

Some content is hidden

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

206 files changed

+3404
-3379
lines changed

.changeset/gentle-parrots-heal.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
swc_ecma_transforms_proposal: patch
3+
swc_core: patch
4+
---
5+
6+
fix(es/proposal): fix declarations for explicit-resource-management

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ try {
99
const foo = _ts_add_disposable_resource._(env, null, false);
1010
const bar = 1;
1111
console.log(baz());
12-
function baz() {
13-
return bar;
14-
}
1512
} catch (e) {
1613
env.error = e;
1714
env.hasError = true;
1815
} finally{
1916
_ts_dispose_resources._(env);
2017
}
18+
function baz() {
19+
return bar;
20+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const env = {
88
try {
99
var _computedKey;
1010
_computedKey = Symbol.dispose;
11-
const _disposable = _ts_add_disposable_resource(env, new Disposable(), false);
11+
var _disposable = _ts_add_disposable_resource(env, new Disposable(), false);
1212
console.log('ok');
1313
} catch (e) {
1414
env.error = e;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const env = {
66
hasError: false
77
};
88
try {
9-
const _disposable = _ts_add_disposable_resource(env, new Disposable(), false);
9+
var _disposable = _ts_add_disposable_resource(env, new Disposable(), false);
1010
console.log('ok');
1111
} catch (e) {
1212
env.error = e;

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ function main() {
1616
};
1717
try {
1818
const file = _ts_add_disposable_resource._(env, new File(), false);
19-
function readFile() {
20-
file.read();
21-
}
2219
readFile();
2320
} catch (e) {
2421
env.error = e;
2522
env.hasError = true;
2623
} finally{
2724
_ts_dispose_resources._(env);
2825
}
26+
function readFile() {
27+
file.read();
28+
}
2929
}

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

Lines changed: 128 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -10,67 +10,12 @@ const env = {
1010
hasError: false
1111
};
1212
try {
13-
const d1 = _ts_add_disposable_resource(env, {
13+
var d1 = _ts_add_disposable_resource(env, {
1414
[Symbol.asyncDispose] () {
1515
return _async_to_generator(function*() {})();
1616
}
1717
}, true);
18-
function af() {
19-
return _af.apply(this, arguments);
20-
}
21-
function _af() {
22-
_af = _async_to_generator(function*() {
23-
const env = {
24-
stack: [],
25-
error: void 0,
26-
hasError: false
27-
};
28-
try {
29-
const d3 = _ts_add_disposable_resource(env, {
30-
[Symbol.asyncDispose] () {
31-
return _async_to_generator(function*() {})();
32-
}
33-
}, true);
34-
yield null;
35-
} catch (e) {
36-
env.error = e;
37-
env.hasError = true;
38-
} finally{
39-
const result = _ts_dispose_resources(env);
40-
if (result) yield result;
41-
}
42-
});
43-
return _af.apply(this, arguments);
44-
}
45-
function ag() {
46-
return _ag.apply(this, arguments);
47-
}
48-
function _ag() {
49-
_ag = _wrap_async_generator(function*() {
50-
const env = {
51-
stack: [],
52-
error: void 0,
53-
hasError: false
54-
};
55-
try {
56-
const d5 = _ts_add_disposable_resource(env, {
57-
[Symbol.asyncDispose] () {
58-
return _async_to_generator(function*() {})();
59-
}
60-
}, true);
61-
yield;
62-
yield _await_async_generator(null);
63-
} catch (e) {
64-
env.error = e;
65-
env.hasError = true;
66-
} finally{
67-
const result = _ts_dispose_resources(env);
68-
if (result) yield _await_async_generator(result);
69-
}
70-
});
71-
return _ag.apply(this, arguments);
72-
}
73-
const a = /*#__PURE__*/ function() {
18+
var a = /*#__PURE__*/ function() {
7419
var _ref = _async_to_generator(function*() {
7520
const env = {
7621
stack: [],
@@ -95,77 +40,6 @@ try {
9540
return _ref.apply(this, arguments);
9641
};
9742
}();
98-
class C1 {
99-
am() {
100-
return _async_to_generator(function*() {
101-
const env = {
102-
stack: [],
103-
error: void 0,
104-
hasError: false
105-
};
106-
try {
107-
const d13 = _ts_add_disposable_resource(env, {
108-
[Symbol.asyncDispose] () {
109-
return _async_to_generator(function*() {})();
110-
}
111-
}, true);
112-
yield null;
113-
} catch (e) {
114-
env.error = e;
115-
env.hasError = true;
116-
} finally{
117-
const result = _ts_dispose_resources(env);
118-
if (result) yield result;
119-
}
120-
})();
121-
}
122-
ag() {
123-
return _wrap_async_generator(function*() {
124-
const env = {
125-
stack: [],
126-
error: void 0,
127-
hasError: false
128-
};
129-
try {
130-
const d15 = _ts_add_disposable_resource(env, {
131-
[Symbol.asyncDispose] () {
132-
return _async_to_generator(function*() {})();
133-
}
134-
}, true);
135-
yield;
136-
yield _await_async_generator(null);
137-
} catch (e) {
138-
env.error = e;
139-
env.hasError = true;
140-
} finally{
141-
const result = _ts_dispose_resources(env);
142-
if (result) yield _await_async_generator(result);
143-
}
144-
})();
145-
}
146-
constructor(){
147-
this.a = /*#__PURE__*/ _async_to_generator(function*() {
148-
const env = {
149-
stack: [],
150-
error: void 0,
151-
hasError: false
152-
};
153-
try {
154-
const d7 = _ts_add_disposable_resource(env, {
155-
[Symbol.asyncDispose] () {
156-
return _async_to_generator(function*() {})();
157-
}
158-
}, true);
159-
} catch (e) {
160-
env.error = e;
161-
env.hasError = true;
162-
} finally{
163-
const result = _ts_dispose_resources(env);
164-
if (result) yield result;
165-
}
166-
});
167-
}
168-
}
16943
{
17044
const env = {
17145
stack: [],
@@ -457,4 +331,130 @@ try {
457331
const result = _ts_dispose_resources(env);
458332
if (result) await result;
459333
}
334+
function af() {
335+
return _af.apply(this, arguments);
336+
}
337+
function _af() {
338+
_af = _async_to_generator(function*() {
339+
const env = {
340+
stack: [],
341+
error: void 0,
342+
hasError: false
343+
};
344+
try {
345+
const d3 = _ts_add_disposable_resource(env, {
346+
[Symbol.asyncDispose] () {
347+
return _async_to_generator(function*() {})();
348+
}
349+
}, true);
350+
yield null;
351+
} catch (e) {
352+
env.error = e;
353+
env.hasError = true;
354+
} finally{
355+
const result = _ts_dispose_resources(env);
356+
if (result) yield result;
357+
}
358+
});
359+
return _af.apply(this, arguments);
360+
}
361+
function ag() {
362+
return _ag.apply(this, arguments);
363+
}
364+
function _ag() {
365+
_ag = _wrap_async_generator(function*() {
366+
const env = {
367+
stack: [],
368+
error: void 0,
369+
hasError: false
370+
};
371+
try {
372+
const d5 = _ts_add_disposable_resource(env, {
373+
[Symbol.asyncDispose] () {
374+
return _async_to_generator(function*() {})();
375+
}
376+
}, true);
377+
yield;
378+
yield _await_async_generator(null);
379+
} catch (e) {
380+
env.error = e;
381+
env.hasError = true;
382+
} finally{
383+
const result = _ts_dispose_resources(env);
384+
if (result) yield _await_async_generator(result);
385+
}
386+
});
387+
return _ag.apply(this, arguments);
388+
}
389+
class C1 {
390+
am() {
391+
return _async_to_generator(function*() {
392+
const env = {
393+
stack: [],
394+
error: void 0,
395+
hasError: false
396+
};
397+
try {
398+
const d13 = _ts_add_disposable_resource(env, {
399+
[Symbol.asyncDispose] () {
400+
return _async_to_generator(function*() {})();
401+
}
402+
}, true);
403+
yield null;
404+
} catch (e) {
405+
env.error = e;
406+
env.hasError = true;
407+
} finally{
408+
const result = _ts_dispose_resources(env);
409+
if (result) yield result;
410+
}
411+
})();
412+
}
413+
ag() {
414+
return _wrap_async_generator(function*() {
415+
const env = {
416+
stack: [],
417+
error: void 0,
418+
hasError: false
419+
};
420+
try {
421+
const d15 = _ts_add_disposable_resource(env, {
422+
[Symbol.asyncDispose] () {
423+
return _async_to_generator(function*() {})();
424+
}
425+
}, true);
426+
yield;
427+
yield _await_async_generator(null);
428+
} catch (e) {
429+
env.error = e;
430+
env.hasError = true;
431+
} finally{
432+
const result = _ts_dispose_resources(env);
433+
if (result) yield _await_async_generator(result);
434+
}
435+
})();
436+
}
437+
constructor(){
438+
this.a = /*#__PURE__*/ _async_to_generator(function*() {
439+
const env = {
440+
stack: [],
441+
error: void 0,
442+
hasError: false
443+
};
444+
try {
445+
const d7 = _ts_add_disposable_resource(env, {
446+
[Symbol.asyncDispose] () {
447+
return _async_to_generator(function*() {})();
448+
}
449+
}, true);
450+
} catch (e) {
451+
env.error = e;
452+
env.hasError = true;
453+
} finally{
454+
const result = _ts_dispose_resources(env);
455+
if (result) yield result;
456+
}
457+
});
458+
}
459+
}
460460
export { };

0 commit comments

Comments
 (0)