11.10 Binary bitwise operators

2010-05-22

BitwiseANDExpression :
EqualityExpression
BitwiseANDExpression & EqualityExpression

BitwiseANDExpressionNoIN :
EqualityExpressionNoIn
BitwiseANDExpressionNoIn & EqualityExpressionNoIn

BitwiseXORExpression :
BitwiseANDExpression
BitwiseXORExpression ^ BitwiseANDExpression

BitwiseXORExpressionNoIN :
BitwiseANDExpressionNoIn
BitwiseXORExpressionNoIn ^ BitwiseANDExpressionNoIn

BitwisexORExpression :
BitwiseXORExpression
BitwiseXORExpression | BitwiseXORExpression

BitwisexORExpressionNoIN :
BitwiseXORExpressionNoIn
BitwisexORExpressionNoIn | BitwiseXORExpressionNoIn

They are all evaluated in an equal manner. The pseudo code replaces the specific operator by @. A and B represent of the Productions above.

Code: (Meta Ecma)
function evaluate(A @ B) {
var lref = evaluate(A);
var lval = GetValue(lref);
var rref = evaluate(B);
var rval = GetValue(rref);
var lnum = ToInt32(lval);
var rnum = ToInt32(rval);
return lnum @ rnum; // always 32bit signed int
}