// 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_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"))));
}
