Skip to content

Commit f54ec2c

Browse files
authored
fix(es/compat): Fix marker for inlined helpers (#9776)
**Related issue:** - Closes #9673
1 parent 70fcbc4 commit f54ec2c

File tree

5 files changed

+52
-1
lines changed

5 files changed

+52
-1
lines changed

.changeset/modern-carpets-attend.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
swc_core: patch
3+
swc_ecma_transforms_base: patch
4+
---
5+
6+
Add a test
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"jsc": {
3+
"parser": {
4+
"syntax": "ecmascript",
5+
"jsx": false,
6+
"explicitResourceManagement": true
7+
},
8+
"target": "es2022",
9+
"loose": false,
10+
"minify": {
11+
"compress": false,
12+
"mangle": false
13+
}
14+
},
15+
"module": {
16+
"type": "commonjs"
17+
},
18+
"minify": false,
19+
"isModule": true
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
using x = {
2+
[Symbol.dispose]() {
3+
console.log("disposed")
4+
}
5+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
var _ts_add_disposable_resource = require("@swc/helpers/_/_ts_add_disposable_resource");
2+
var _ts_dispose_resources = require("@swc/helpers/_/_ts_dispose_resources");
3+
const env = {
4+
stack: [],
5+
error: void 0,
6+
hasError: false
7+
};
8+
try {
9+
const x = _ts_add_disposable_resource._(env, {
10+
[Symbol.dispose] () {
11+
console.log("disposed");
12+
}
13+
}, false);
14+
;
15+
} catch (e) {
16+
env.error = e;
17+
env.hasError = true;
18+
} finally{
19+
_ts_dispose_resources._(env);
20+
}

crates/swc_ecma_transforms_base/src/helpers/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ impl VisitMut for Marker {
620620
return;
621621
}
622622

623-
if !i.sym.starts_with("__") {
623+
if !(i.sym.starts_with("__") && i.sym.starts_with("_ts_")) {
624624
self.decls.insert(i.sym.clone(), self.decl_ctxt);
625625
}
626626
}

0 commit comments

Comments
 (0)