// 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.3_A3_T1.2
description: Type(x) and Type(y) vary between primitive number and Number object
---*/

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

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

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

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