mirror of
https://github.com/bendtherules/ask262.git
synced 2026-08-18 13:21:55 +00:00
19 lines
679 B
TypeScript
19 lines
679 B
TypeScript
import { Evaluate } from '../evaluator.mts';
|
|
import { Q } from '../completion.mts';
|
|
import type { ParseNode } from '../parser/ParseNode.mts';
|
|
import { GetValue } from '#self';
|
|
import type { Value, ValueEvaluator } from '#self';
|
|
|
|
/** https://tc39.es/ecma262/#sec-comma-operator-runtime-semantics-evaluation */
|
|
// Expression :
|
|
// AssignmentExpression
|
|
// Expression `,` AssignmentExpression
|
|
export function* Evaluate_CommaOperator({ ExpressionList }: ParseNode.CommaOperator): ValueEvaluator {
|
|
let result!: Value;
|
|
for (const Expression of ExpressionList) {
|
|
const lref = Q(yield* Evaluate(Expression));
|
|
result = Q(yield* GetValue(lref));
|
|
}
|
|
return result;
|
|
}
|