<?xml version="1.0" encoding="UTF-8"?>
<test id="wmlscript/core/operators/bindings/4" class="A" scope="wmlscript" testtype="application" type="auto" source="wmls11#6.3.12" device="both">
  <assertion>The WMLScript operators return 'invalid' when type conversions fail.
</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 inval = invalid;

	var test1 = ++inval;
	var test2 = --inval;
	var test3 = +inval;
	var test4 = -inval;
	var test5 = ~inval;
	var test6 = !inval;
	var test7 = 1 * inval;
	var test8 = 1 / inval;
	var test9 = 1 div inval;
	var test10 = 1 % inval;
	var test11 = inval - 1;
	var test12 = inval + 2;
	var test13 = inval << 2;
	var test14 = inval >> 3;
	var test15 = inval >>> 5;
	var test22 = 5 & inval;
	var test23 = 5 | inval;
	var test24 = 5 ^ inval;
	var test27; test27 *= inval;
	var test28; test28 /= inval;
	var test29; test29 div= inval;
	var test30; test30 %= inval;
	var test31; test31 -= inval;
	var test33; test33 <<= inval;
	var test34; test34 >>>= inval;
	var test35; test35 >>= inval;
	var test36; test36 &= inval;
	var test37; test37 ^= inval;
	var test38; test38 |= inval;

	if (!isvalid(test1 ) &&
	!isvalid(test2) &&
	!isvalid(test3) &&
	!isvalid(test4) &&
	!isvalid(test5) &&
	!isvalid(test6) &&
	!isvalid(test7) &&
	!isvalid(test8) &&
	!isvalid(test9) &&
	!isvalid(test10) &&
	!isvalid(test11) &&
	!isvalid(test12) &&
	!isvalid(test13) &&
	!isvalid(test14) &&
	!isvalid(test15) &&
	!isvalid(test22) &&
	!isvalid(test23) &&
	!isvalid(test24) &&
	!isvalid(test27) &&
	!isvalid(test28) &&
	!isvalid(test29) &&
	!isvalid(test30) &&
	!isvalid(test31) &&
	!isvalid(test33) &&
	!isvalid(test34) &&
	!isvalid(test35) &&
	!isvalid(test36) &&
	!isvalid(test37) &&
	!isvalid(test38)) {
		result = 'pass';
	}
	WMLBrowser.setVar(myvar, result);
	WMLBrowser.go('#' + next);
	return 1;
}
]]>
    </script>
  </scripts>
</test>

