fix(emit): 变量声明赋值 class 表达式参与函数名推断
This commit is contained in:
@@ -24,7 +24,12 @@ impl Emitter {
|
|||||||
let val_reg = self.emit_expression(init, ctx)?;
|
let val_reg = self.emit_expression(init, ctx)?;
|
||||||
self.emit_binding_pattern(&d.id, val_reg, decl.kind, is_const, ctx)?;
|
self.emit_binding_pattern(&d.id, val_reg, decl.kind, is_const, ctx)?;
|
||||||
if let BindingPattern::BindingIdentifier(bi) = &d.id {
|
if let BindingPattern::BindingIdentifier(bi) = &d.id {
|
||||||
if matches!(*init, Expression::ArrowFunctionExpression(_) | Expression::FunctionExpression(_)) {
|
if matches!(
|
||||||
|
*init,
|
||||||
|
Expression::ArrowFunctionExpression(_)
|
||||||
|
| Expression::FunctionExpression(_)
|
||||||
|
| Expression::ClassExpression(_)
|
||||||
|
) {
|
||||||
if let Some(sub_mod) = ctx.nested.last_mut() {
|
if let Some(sub_mod) = ctx.nested.last_mut() {
|
||||||
if sub_mod.function_name.is_none() {
|
if sub_mod.function_name.is_none() {
|
||||||
sub_mod.function_name = Some(bi.name.to_string());
|
sub_mod.function_name = Some(bi.name.to_string());
|
||||||
|
|||||||
Reference in New Issue
Block a user