본문 실행 없이 generator object 반환
Generator의 세 타입 축이 yield·return·next 입력을 분리한다
function* 호출은 본문을 실행하지 않고 suspended 상태의 객체를 만든다. 각 next가 실행을 재개해 다음 yield 또는 종료까지 진행한다.
next(){ value: TYield, done: false }next(input)input: TNext가 직전 yield 표현식의 결과가 된다.
return·끝{ value: TReturn, done: true }TYield · 밖으로yield value와 done:false의 value 타입
TReturn · 종료값return value와 done:true의 value 타입
TNext · 안으로소비자가 다음 재개 때 넣는 값의 타입
done으로 좁혀 yield와 return 값을 구분한다.
첫 next(x)의 x는 버려진다. 먼저 next()로 시작한다.
for...of 경계반복은 yielded 값만 소비한다. 종료값이 필요하면 수동 next로 done:true를 읽는다.
검증 기준: 무한 generator는 소비자의 종료 조건을 명시하고, 외부 중단 때 정리가 필요하면 try/finally와 iterator return() 경로를 시험한다.