// 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_T1.3
description: Type(x) and Type(y) are primitive string and String object
---*/

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

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

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

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

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

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