mirror of
https://github.com/swc-project/swc.git
synced 2024-12-23 13:51:19 +03:00
fix(es/transforms/compat): Fix new_target
(#2736)
This commit is contained in:
parent
79fc464f8d
commit
571c5e3123
@ -85,6 +85,8 @@ impl VisitMut for NewTarget {
|
||||
let old = self.in_constructor;
|
||||
|
||||
self.in_constructor = true;
|
||||
self.in_arrow_expr = false;
|
||||
self.var = None;
|
||||
|
||||
c.visit_mut_children_with(self);
|
||||
|
||||
|
@ -0,0 +1,22 @@
|
||||
const targets = [];
|
||||
|
||||
{
|
||||
function foo() {
|
||||
targets.push(new.target);
|
||||
}
|
||||
foo();
|
||||
}
|
||||
|
||||
expect(targets[0]).toBeUndefined();
|
||||
|
||||
{
|
||||
class Foo {
|
||||
constructor() {
|
||||
targets.push(new.target);
|
||||
}
|
||||
}
|
||||
|
||||
new Foo();
|
||||
}
|
||||
|
||||
expect(targets[1]).not.toBeUndefined();
|
@ -0,0 +1,11 @@
|
||||
{
|
||||
class Foo {
|
||||
constructor() {
|
||||
new.target;
|
||||
}
|
||||
|
||||
test() {
|
||||
new.target;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
class Foo {
|
||||
constructor() {
|
||||
this.constructor;
|
||||
}
|
||||
test() {
|
||||
void 0;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
(() => {
|
||||
class Foo {
|
||||
constructor() {
|
||||
new.target;
|
||||
}
|
||||
|
||||
test() {
|
||||
new.target;
|
||||
}
|
||||
}
|
||||
})()
|
@ -0,0 +1,10 @@
|
||||
(() => {
|
||||
class Foo {
|
||||
constructor() {
|
||||
this.constructor;
|
||||
}
|
||||
test() {
|
||||
void 0;
|
||||
}
|
||||
}
|
||||
})()
|
Loading…
Reference in New Issue
Block a user