<?xml version="1.0" encoding="UTF-8"?>
<test id="wmlscript/core/operators/bindings/1" class="A" scope="wmlscript" testtype="application" type="auto" source="wmls11#6.3.12" device="both">
  <assertion>The WMLScript operators respect the operator precedence rules defined in the table of section 6.3.12.
</assertion>
  <results>
    <result>
      <name>test</name>
      <value>pass</value>
    </result>
  </results>
  <method>
    <![CDATA[<card newcontext="true" id="main">
<onevent type="onenterforward">
<go href="<script1>#main('test','card1')"/>
</onevent>
<auto_failed>
</card>]]>
  </method>
  <cards>
    <card id="1">
      <![CDATA[<card id="card1">
<onevent type="onenterforward">
<go href="<resulturl>">
<postfield name="test" value="$test"/>
<sessionvars>
</go>
</onevent>
<auto_failed>
</card>
]]>
    </card>
  </cards>
  <scripts>
    <script id="1">
      <![CDATA[extern function main(myvar,next) {
	var result = 'fail';
	var val = -16;
	var bool = 0;

	bool = val * 2 div 4 + -val << 2 == 32; // ends up true

	var bits = 192 | 96 ^ 96 & 80; // ends up as 224

	var logical = 1 && 0 || 1; // ends up true

	if (bool && bits == 224 && logical) {
		result = 'pass';
	}
	WMLBrowser.setVar(myvar, result);
	WMLBrowser.go('#' + next);
	return 1;
}
]]>
    </script>
  </scripts>
</test>

