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

//CHECK#1
if (1 << undefined !== 1) {
  $ERROR('#1: 1 << undefined === 1. Actual: ' + (1 << undefined));
}

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

//CHECK#3
if (new Number(1) << undefined !== 1) {
  $ERROR('#3: new Number(1) << undefined === 1. Actual: ' + (new Number(1) << undefined));
}

//CHECK#4
if (undefined << new Number(1) !== 0) {
  $ERROR('#4: undefined << new Number(1) === 0. Actual: ' + (undefined << new Number(1)));
}
