Files
ask262/engine262/src/runtime-semantics/MultiplicativeExpression.mts
T

19 lines
971 B
TypeScript

import { Q } from '../completion.mts';
import type { ValueEvaluator } from '../evaluator.mts';
import type { ParseNode } from '../parser/ParseNode.mts';
import { EvaluateStringOrNumericBinaryExpression } from './all.mts';
/** https://tc39.es/ecma262/#sec-multiplicative-operators-runtime-semantics-evaluation */
// MultiplicativeExpression :
// MultiplicativeExpression MultiplicativeOperator ExponentiationExpression
export function* Evaluate_MultiplicativeExpression({
MultiplicativeExpression,
MultiplicativeOperator,
ExponentiationExpression,
}: ParseNode.MultiplicativeExpression): ValueEvaluator {
// 1. Let opText be the source text matched by MultiplicativeOperator.
const opText = MultiplicativeOperator;
// 2. Return ? EvaluateStringOrNumericBinaryExpression(MultiplicativeExpression, opText, ExponentiationExpression).
return Q(yield* EvaluateStringOrNumericBinaryExpression(MultiplicativeExpression, opText, ExponentiationExpression));
}