feat: 生成器基础支持(YIELD 帧快照挂起/恢复 + GeneratorPrototype next/return/throw)

- 新增 YIELD/SUSPEND_BODY opcode;function* 识别与 yield emit
- GeneratorState 全量快照 VM 执行上下文(regs/pc/bytecode/spill/save/try/cell 栈段/迭代器)
- 调用时参数初始化(默认值/解构副作用与异常在 g() 时刻生效)
- %GeneratorPrototype%/%GeneratorFunction.prototype% 内建对象与 next/return/throw
- session GC trace 生成器状态 JsValues;闭包捕获分析补 yield/赋值目标扫描
This commit is contained in:
爱特每羊队
2026-08-09 18:02:08 +08:00
parent 7c2e9ec1ff
commit 6f80c12ac9
26 changed files with 1265 additions and 107 deletions
-8
View File
@@ -401,8 +401,6 @@ fn is_skipped(meta: &TestMeta) -> Option<String> {
let excluded_features = [
"Proxy",
"BigInt",
"generators",
"generator",
"async-functions",
"Intl",
"Temporal",
@@ -418,12 +416,6 @@ fn is_skipped(meta: &TestMeta) -> Option<String> {
}
}
// 仅当 description 与 features 都表明 generator/async 时才跳过
// (许多 description 含 "async" 的测试测的是非 async 功能)。
if meta.description.contains("generator") && meta.features.iter().any(|f| f.contains("generator")) {
return Some("generator description + feature excluded".into());
}
None
}