feat: 实现默认参数(形参 initializer 与解构默认值)

This commit is contained in:
2026-08-07 15:26:25 +08:00
parent 192b697335
commit 66c952d2b2
4 changed files with 51 additions and 14 deletions
@@ -22,12 +22,16 @@ impl Emitter {
for (idx, param) in fd.params.items.iter().enumerate() {
match &param.pattern {
oxide_parser::BindingPattern::BindingIdentifier(bi) => {
param_names.push(ParamSpec::Identifier(bi.name.to_string()))
param_names.push(ParamSpec::Identifier {
name: bi.name.to_string(),
initializer: param.initializer.as_deref(),
})
}
pattern => param_names.push(ParamSpec::Pattern {
synthetic_name: format!("@@param_{idx}"),
pattern,
}),
synthetic_name: format!("@@param_{idx}"),
pattern,
initializer: param.initializer.as_deref(),
}),
}
}
let body_stmts: &[Statement] = if let Some(body) = &fd.body { &body.statements } else { &[] };
@@ -50,3 +54,4 @@ impl Emitter {
Ok(None)
}
}