<?xml version="1.0" encoding="UTF-8"?>
<test id="wmlscript/type/operator/1" class="A" scope="wmlscript" testtype="application" type="auto" source="wmls11#6.9" device="both">
  <assertion>When an operator expects operands of type boolean, if the operand is of type boolean or can be converted to a boolean value, then the operation is performed on the boolean values and its result is returned.
</assertion>
  <notes>See 7.1.4 for valid conversion to boolean.</notes>
  <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';

	if (typeof(1 && 0) == 3 &&
		typeof("a" || "") == 3 &&
		typeof(!42) == 3 &&
		typeof(!invalid) == 4 &&
		typeof(3 && invalid) == 4)
	{
		result = 'pass';
		if (Lang.float())
		{
			result = 'fail';	
			if (typeof(true && 3.4) == 3)
			{
				result = 'pass';
			}
		}
	}
	WMLBrowser.setVar(myvar, result);
	WMLBrowser.go('#' + next);
	return 1;
}
]]>
    </script>
  </scripts>
</test>

