mirror of
https://github.com/bendtherules/ask262.git
synced 2026-08-19 00:31:06 +00:00
15 lines
917 B
TypeScript
15 lines
917 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-binary-bitwise-operators-runtime-semantics-evaluation */
|
|
// BitwiseANDExpression : BitwiseANDExpression `&` EqualityExpression
|
|
// BitwiseXORExpression : BitwiseXORExpression `^` BitwiseANDExpression
|
|
// BitwiseORExpression : BitwiseORExpression `|` BitwiseXORExpression
|
|
// The production A : A @ B, where @ is one of the bitwise operators in the
|
|
// productions above, is evaluated as follows:
|
|
export function* Evaluate_BinaryBitwiseExpression({ A, operator, B }: ParseNode.BitwiseANDExpression | ParseNode.BitwiseXORExpression | ParseNode.BitwiseORExpression): ValueEvaluator {
|
|
return Q(yield* EvaluateStringOrNumericBinaryExpression(A, operator, B));
|
|
}
|