// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
es5id: 11.10.2_A3_T2.7
description: >
    Type(x) is different from Type(y) and both types vary between
    String (primitive or object) and Null
---*/

//CHECK#1
if (("1" ^ null) !== 1) {
  $ERROR('#1: ("1" ^ null) === 1. Actual: ' + (("1" ^ null)));
}

//CHECK#2
if ((null ^ "1") !== 1) {
  $ERROR('#2: (null ^ "1") === 1. Actual: ' + ((null ^ "1")));
}

//CHECK#3
if ((new String("1") ^ null) !== 1) {
  $ERROR('#3: (new String("1") ^ null) === 1. Actual: ' + ((new String("1") ^ null)));
}

//CHECK#4
if ((null ^ new String("1")) !== 1) {
  $ERROR('#4: (null ^ new String("1")) === 1. Actual: ' + ((null ^ new String("1"))));
}
