// 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.7.3_A3_T2.2
description: >
    Type(x) is different from Type(y) and both types vary between
    Number (primitive or object) and String (primitive and object)
---*/

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

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

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

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

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

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

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

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

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

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