// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: |
    If Type(Primitive(x)) is not String or Type(Primitive(y)) is not String,
    then operator x > y returns ToNumber(x) > ToNumber(y)
es5id: 11.8.2_A3.1_T2.6
description: >
    Type(Primitive(x)) is different from Type(Primitive(y)) and both
    types vary between String (primitive or object) and Undefined
---*/

//CHECK#1
if ("1" > undefined !== false) {
  $ERROR('#1: "1" > undefined === false');
}

//CHECK#2
if (undefined > "1" !== false) {
  $ERROR('#2: undefined > "1" === false');
}

//CHECK#3
if (new String("1") > undefined !== false) {
  $ERROR('#3: new String("1") > undefined === false');
}

//CHECK#4
if (undefined > new String("1") !== false) {
  $ERROR('#4: undefined > new String("1") === false');
}
