//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(new String('he' + 'llo') > new Object());
write(new String('he' + 'llo') > new Object());
write(new String('he' + 'llo') > [1, 2, 3]);
write(new String('he' + 'llo') > [1 ,2 , 3]);
write(new String('he' + 'llo') > new Array(3));
write(new String('he' + 'llo') > Array(3));
write(new String('he' + 'llo') > new Array(1 ,2 ,3));
write(new String('he' + 'llo') > Array(1));
write(new String('he' + 'llo') > foo);
write(new Object() > undefined);
write(new Object() > null);
write(new Object() > true);
write(new Object() > false);
write(new Object() > Boolean(true));
write(new Object() > Boolean(false));
write(new Object() > new Boolean(true));
write(new Object() > new Boolean(false));
write(new Object() > NaN);
write(new Object() > +0);
write(new Object() > -0);
write(new Object() > 0);
write(new Object() > 0.0);
write(new Object() > -0.0);
write(new Object() > +0.0);
write(new Object() > 1);
write(new Object() > 10);
write(new Object() > 10.0);
write(new Object() > 10.1);
write(new Object() > -1);
write(new Object() > -10);
write(new Object() > -10.0);
write(new Object() > -10.1);
write(new Object() > Number.MAX_VALUE);
write(new Object() > Number.MIN_VALUE);
write(new Object() > Number.NaN);
write(new Object() > Number.POSITIVE_INFINITY);
write(new Object() > Number.NEGATIVE_INFINITY);
write(new Object() > new Number(NaN));
write(new Object() > new Number(+0));
write(new Object() > new Number(-0));
write(new Object() > new Number(0));
write(new Object() > new Number(0.0));
write(new Object() > new Number(-0.0));
write(new Object() > new Number(+0.0));
write(new Object() > new Number(1));
write(new Object() > new Number(10));
write(new Object() > new Number(10.0));
write(new Object() > new Number(10.1));
write(new Object() > new Number(-1));
write(new Object() > new Number(-10));
write(new Object() > new Number(-10.0));
write(new Object() > new Number(-10.1));
write(new Object() > new Number(Number.MAX_VALUE));
write(new Object() > new Number(Number.MIN_VALUE));
write(new Object() > new Number(Number.NaN));
write(new Object() > new Number(Number.POSITIVE_INFINITY));
write(new Object() > new Number(Number.NEGATIVE_INFINITY));
write(new Object() > '');
write(new Object() > 0xa);
write(new Object() > 04);
write(new Object() > 'hello');
write(new Object() > 'hel' + 'lo');
write(new Object() > String(''));
write(new Object() > String('hello'));
write(new Object() > String('h' + 'ello'));
write(new Object() > new String(''));
write(new Object() > new String('hello'));
write(new Object() > new String('he' + 'llo'));
write(new Object() > new Object());
write(new Object() > new Object());
write(new Object() > [1, 2, 3]);
write(new Object() > [1 ,2 , 3]);
write(new Object() > new Array(3));
write(new Object() > Array(3));
write(new Object() > new Array(1 ,2 ,3));
write(new Object() > Array(1));
write(new Object() > foo);
write(new Object() > undefined);
write(new Object() > null);
write(new Object() > true);
write(new Object() > false);
write(new Object() > Boolean(true));
write(new Object() > Boolean(false));
write(new Object() > new Boolean(true));
write(new Object() > new Boolean(false));
write(new Object() > NaN);
write(new Object() > +0);
write(new Object() > -0);
write(new Object() > 0);
write(new Object() > 0.0);
write(new Object() > -0.0);
write(new Object() > +0.0);
write(new Object() > 1);
write(new Object() > 10);
write(new Object() > 10.0);
write(new Object() > 10.1);
write(new Object() > -1);
write(new Object() > -10);
write(new Object() > -10.0);
write(new Object() > -10.1);
write(new Object() > Number.MAX_VALUE);
write(new Object() > Number.MIN_VALUE);
write(new Object() > Number.NaN);
write(new Object() > Number.POSITIVE_INFINITY);
write(new Object() > Number.NEGATIVE_INFINITY);
write(new Object() > new Number(NaN));
write(new Object() > new Number(+0));
write(new Object() > new Number(-0));
write(new Object() > new Number(0));
write(new Object() > new Number(0.0));
write(new Object() > new Number(-0.0));
write(new Object() > new Number(+0.0));
write(new Object() > new Number(1));
write(new Object() > new Number(10));
write(new Object() > new Number(10.0));
write(new Object() > new Number(10.1));
write(new Object() > new Number(-1));
write(new Object() > new Number(-10));
write(new Object() > new Number(-10.0));
write(new Object() > new Number(-10.1));
write(new Object() > new Number(Number.MAX_VALUE));
write(new Object() > new Number(Number.MIN_VALUE));
write(new Object() > new Number(Number.NaN));
write(new Object() > new Number(Number.POSITIVE_INFINITY));
write(new Object() > new Number(Number.NEGATIVE_INFINITY));
write(new Object() > '');
write(new Object() > 0xa);
write(new Object() > 04);
write(new Object() > 'hello');
write(new Object() > 'hel' + 'lo');
write(new Object() > String(''));
write(new Object() > String('hello'));
write(new Object() > String('h' + 'ello'));
write(new Object() > new String(''));
write(new Object() > new String('hello'));
write(new Object() > new String('he' + 'llo'));
write(new Object() > new Object());
write(new Object() > new Object());
write(new Object() > [1, 2, 3]);
write(new Object() > [1 ,2 , 3]);
write(new Object() > new Array(3));
write(new Object() > Array(3));
write(new Object() > new Array(1 ,2 ,3));
write(new Object() > Array(1));
write(new Object() > foo);
write([1, 2, 3] > undefined);
write([1, 2, 3] > null);
write([1, 2, 3] > true);
write([1, 2, 3] > false);
write([1, 2, 3] > Boolean(true));
write([1, 2, 3] > Boolean(false));
write([1, 2, 3] > new Boolean(true));
write([1, 2, 3] > new Boolean(false));
write([1, 2, 3] > NaN);
write([1, 2, 3] > +0);
write([1, 2, 3] > -0);
write([1, 2, 3] > 0);
write([1, 2, 3] > 0.0);
write([1, 2, 3] > -0.0);
write([1, 2, 3] > +0.0);
write([1, 2, 3] > 1);
write([1, 2, 3] > 10);
write([1, 2, 3] > 10.0);
write([1, 2, 3] > 10.1);
write([1, 2, 3] > -1);
write([1, 2, 3] > -10);
write([1, 2, 3] > -10.0);
write([1, 2, 3] > -10.1);
write([1, 2, 3] > Number.MAX_VALUE);
write([1, 2, 3] > Number.MIN_VALUE);
write([1, 2, 3] > Number.NaN);
write([1, 2, 3] > Number.POSITIVE_INFINITY);
write([1, 2, 3] > Number.NEGATIVE_INFINITY);
write([1, 2, 3] > new Number(NaN));
write([1, 2, 3] > new Number(+0));
write([1, 2, 3] > new Number(-0));
write([1, 2, 3] > new Number(0));
write([1, 2, 3] > new Number(0.0));
write([1, 2, 3] > new Number(-0.0));
write([1, 2, 3] > new Number(+0.0));
write([1, 2, 3] > new Number(1));
write([1, 2, 3] > new Number(10));
write([1, 2, 3] > new Number(10.0));
write([1, 2, 3] > new Number(10.1));
write([1, 2, 3] > new Number(-1));
write([1, 2, 3] > new Number(-10));
write([1, 2, 3] > new Number(-10.0));
write([1, 2, 3] > new Number(-10.1));
write([1, 2, 3] > new Number(Number.MAX_VALUE));
write([1, 2, 3] > new Number(Number.MIN_VALUE));
write([1, 2, 3] > new Number(Number.NaN));
write([1, 2, 3] > new Number(Number.POSITIVE_INFINITY));
write([1, 2, 3] > new Number(Number.NEGATIVE_INFINITY));
write([1, 2, 3] > '');
write([1, 2, 3] > 0xa);
write([1, 2, 3] > 04);
write([1, 2, 3] > 'hello');
write([1, 2, 3] > 'hel' + 'lo');
write([1, 2, 3] > String(''));
write([1, 2, 3] > String('hello'));
write([1, 2, 3] > String('h' + 'ello'));
write([1, 2, 3] > new String(''));
write([1, 2, 3] > new String('hello'));
write([1, 2, 3] > new String('he' + 'llo'));
write([1, 2, 3] > new Object());
write([1, 2, 3] > new Object());
write([1, 2, 3] > [1, 2, 3]);
write([1, 2, 3] > [1 ,2 , 3]);
write([1, 2, 3] > new Array(3));
write([1, 2, 3] > Array(3));
write([1, 2, 3] > new Array(1 ,2 ,3));
write([1, 2, 3] > Array(1));
write([1, 2, 3] > foo);
write([1 ,2 , 3] > undefined);
write([1 ,2 , 3] > null);
write([1 ,2 , 3] > true);
write([1 ,2 , 3] > false);
write([1 ,2 , 3] > Boolean(true));
write([1 ,2 , 3] > Boolean(false));
write([1 ,2 , 3] > new Boolean(true));
write([1 ,2 , 3] > new Boolean(false));
write([1 ,2 , 3] > NaN);
write([1 ,2 , 3] > +0);
write([1 ,2 , 3] > -0);
write([1 ,2 , 3] > 0);
write([1 ,2 , 3] > 0.0);
write([1 ,2 , 3] > -0.0);
write([1 ,2 , 3] > +0.0);
write([1 ,2 , 3] > 1);
write([1 ,2 , 3] > 10);
write([1 ,2 , 3] > 10.0);
write([1 ,2 , 3] > 10.1);
write([1 ,2 , 3] > -1);
write([1 ,2 , 3] > -10);
write([1 ,2 , 3] > -10.0);
write([1 ,2 , 3] > -10.1);
write([1 ,2 , 3] > Number.MAX_VALUE);
write([1 ,2 , 3] > Number.MIN_VALUE);
write([1 ,2 , 3] > Number.NaN);
write([1 ,2 , 3] > Number.POSITIVE_INFINITY);
write([1 ,2 , 3] > Number.NEGATIVE_INFINITY);
write([1 ,2 , 3] > new Number(NaN));
write([1 ,2 , 3] > new Number(+0));
write([1 ,2 , 3] > new Number(-0));
write([1 ,2 , 3] > new Number(0));
write([1 ,2 , 3] > new Number(0.0));
write([1 ,2 , 3] > new Number(-0.0));
write([1 ,2 , 3] > new Number(+0.0));
write([1 ,2 , 3] > new Number(1));
write([1 ,2 , 3] > new Number(10));
write([1 ,2 , 3] > new Number(10.0));
write([1 ,2 , 3] > new Number(10.1));
write([1 ,2 , 3] > new Number(-1));
write([1 ,2 , 3] > new Number(-10));
write([1 ,2 , 3] > new Number(-10.0));
write([1 ,2 , 3] > new Number(-10.1));
write([1 ,2 , 3] > new Number(Number.MAX_VALUE));
write([1 ,2 , 3] > new Number(Number.MIN_VALUE));
write([1 ,2 , 3] > new Number(Number.NaN));
write([1 ,2 , 3] > new Number(Number.POSITIVE_INFINITY));
write([1 ,2 , 3] > new Number(Number.NEGATIVE_INFINITY));
write([1 ,2 , 3] > '');
write([1 ,2 , 3] > 0xa);
write([1 ,2 , 3] > 04);
write([1 ,2 , 3] > 'hello');
write([1 ,2 , 3] > 'hel' + 'lo');
write([1 ,2 , 3] > String(''));
write([1 ,2 , 3] > String('hello'));
write([1 ,2 , 3] > String('h' + 'ello'));
write([1 ,2 , 3] > new String(''));
write([1 ,2 , 3] > new String('hello'));
write([1 ,2 , 3] > new String('he' + 'llo'));
write([1 ,2 , 3] > new Object());
write([1 ,2 , 3] > new Object());
write([1 ,2 , 3] > [1, 2, 3]);
write([1 ,2 , 3] > [1 ,2 , 3]);
write([1 ,2 , 3] > new Array(3));
write([1 ,2 , 3] > Array(3));
write([1 ,2 , 3] > new Array(1 ,2 ,3));
write([1 ,2 , 3] > Array(1));
write([1 ,2 , 3] > foo);
write(new Array(3) > undefined);
write(new Array(3) > null);
write(new Array(3) > true);
write(new Array(3) > false);
write(new Array(3) > Boolean(true));
write(new Array(3) > Boolean(false));
write(new Array(3) > new Boolean(true));
write(new Array(3) > new Boolean(false));
write(new Array(3) > NaN);
write(new Array(3) > +0);
write(new Array(3) > -0);
write(new Array(3) > 0);
write(new Array(3) > 0.0);
write(new Array(3) > -0.0);
write(new Array(3) > +0.0);
write(new Array(3) > 1);
write(new Array(3) > 10);
write(new Array(3) > 10.0);
write(new Array(3) > 10.1);
write(new Array(3) > -1);
write(new Array(3) > -10);
write(new Array(3) > -10.0);
write(new Array(3) > -10.1);
write(new Array(3) > Number.MAX_VALUE);
write(new Array(3) > Number.MIN_VALUE);
write(new Array(3) > Number.NaN);
write(new Array(3) > Number.POSITIVE_INFINITY);
write(new Array(3) > Number.NEGATIVE_INFINITY);
write(new Array(3) > new Number(NaN));
write(new Array(3) > new Number(+0));
write(new Array(3) > new Number(-0));
write(new Array(3) > new Number(0));
write(new Array(3) > new Number(0.0));
write(new Array(3) > new Number(-0.0));
write(new Array(3) > new Number(+0.0));
write(new Array(3) > new Number(1));
write(new Array(3) > new Number(10));
write(new Array(3) > new Number(10.0));
write(new Array(3) > new Number(10.1));
write(new Array(3) > new Number(-1));
write(new Array(3) > new Number(-10));
write(new Array(3) > new Number(-10.0));
write(new Array(3) > new Number(-10.1));
write(new Array(3) > new Number(Number.MAX_VALUE));
write(new Array(3) > new Number(Number.MIN_VALUE));
write(new Array(3) > new Number(Number.NaN));
write(new Array(3) > new Number(Number.POSITIVE_INFINITY));
write(new Array(3) > new Number(Number.NEGATIVE_INFINITY));
write(new Array(3) > '');
write(new Array(3) > 0xa);
write(new Array(3) > 04);
write(new Array(3) > 'hello');
write(new Array(3) > 'hel' + 'lo');
write(new Array(3) > String(''));
write(new Array(3) > String('hello'));
write(new Array(3) > String('h' + 'ello'));
write(new Array(3) > new String(''));
write(new Array(3) > new String('hello'));
write(new Array(3) > new String('he' + 'llo'));
write(new Array(3) > new Object());
write(new Array(3) > new Object());
write(new Array(3) > [1, 2, 3]);
write(new Array(3) > [1 ,2 , 3]);
write(new Array(3) > new Array(3));
write(new Array(3) > Array(3));
write(new Array(3) > new Array(1 ,2 ,3));
write(new Array(3) > Array(1));
write(new Array(3) > foo);
write(Array(3) > undefined);
write(Array(3) > null);
write(Array(3) > true);
write(Array(3) > false);
write(Array(3) > Boolean(true));
write(Array(3) > Boolean(false));
write(Array(3) > new Boolean(true));
write(Array(3) > new Boolean(false));
write(Array(3) > NaN);
write(Array(3) > +0);
write(Array(3) > -0);
write(Array(3) > 0);
write(Array(3) > 0.0);
write(Array(3) > -0.0);
write(Array(3) > +0.0);
write(Array(3) > 1);
write(Array(3) > 10);
write(Array(3) > 10.0);
write(Array(3) > 10.1);
write(Array(3) > -1);
write(Array(3) > -10);
write(Array(3) > -10.0);
write(Array(3) > -10.1);
write(Array(3) > Number.MAX_VALUE);
write(Array(3) > Number.MIN_VALUE);
write(Array(3) > Number.NaN);
write(Array(3) > Number.POSITIVE_INFINITY);
write(Array(3) > Number.NEGATIVE_INFINITY);
write(Array(3) > new Number(NaN));
write(Array(3) > new Number(+0));
write(Array(3) > new Number(-0));
write(Array(3) > new Number(0));
write(Array(3) > new Number(0.0));
write(Array(3) > new Number(-0.0));
write(Array(3) > new Number(+0.0));
write(Array(3) > new Number(1));
write(Array(3) > new Number(10));
write(Array(3) > new Number(10.0));
write(Array(3) > new Number(10.1));
write(Array(3) > new Number(-1));
write(Array(3) > new Number(-10));
write(Array(3) > new Number(-10.0));
write(Array(3) > new Number(-10.1));
write(Array(3) > new Number(Number.MAX_VALUE));
write(Array(3) > new Number(Number.MIN_VALUE));
write(Array(3) > new Number(Number.NaN));
write(Array(3) > new Number(Number.POSITIVE_INFINITY));
write(Array(3) > new Number(Number.NEGATIVE_INFINITY));
write(Array(3) > '');
write(Array(3) > 0xa);
write(Array(3) > 04);
write(Array(3) > 'hello');
write(Array(3) > 'hel' + 'lo');
write(Array(3) > String(''));
write(Array(3) > String('hello'));
write(Array(3) > String('h' + 'ello'));
write(Array(3) > new String(''));
write(Array(3) > new String('hello'));
write(Array(3) > new String('he' + 'llo'));
write(Array(3) > new Object());
write(Array(3) > new Object());
write(Array(3) > [1, 2, 3]);
write(Array(3) > [1 ,2 , 3]);
write(Array(3) > new Array(3));
write(Array(3) > Array(3));
write(Array(3) > new Array(1 ,2 ,3));
write(Array(3) > Array(1));
write(Array(3) > foo);
write(new Array(1 ,2 ,3) > undefined);
write(new Array(1 ,2 ,3) > null);
write(new Array(1 ,2 ,3) > true);
write(new Array(1 ,2 ,3) > false);
write(new Array(1 ,2 ,3) > Boolean(true));
write(new Array(1 ,2 ,3) > Boolean(false));
write(new Array(1 ,2 ,3) > new Boolean(true));
write(new Array(1 ,2 ,3) > new Boolean(false));
write(new Array(1 ,2 ,3) > NaN);
write(new Array(1 ,2 ,3) > +0);
write(new Array(1 ,2 ,3) > -0);
write(new Array(1 ,2 ,3) > 0);
write(new Array(1 ,2 ,3) > 0.0);
write(new Array(1 ,2 ,3) > -0.0);
write(new Array(1 ,2 ,3) > +0.0);
write(new Array(1 ,2 ,3) > 1);
write(new Array(1 ,2 ,3) > 10);
write(new Array(1 ,2 ,3) > 10.0);
write(new Array(1 ,2 ,3) > 10.1);
write(new Array(1 ,2 ,3) > -1);
write(new Array(1 ,2 ,3) > -10);
write(new Array(1 ,2 ,3) > -10.0);
write(new Array(1 ,2 ,3) > -10.1);
write(new Array(1 ,2 ,3) > Number.MAX_VALUE);
write(new Array(1 ,2 ,3) > Number.MIN_VALUE);
write(new Array(1 ,2 ,3) > Number.NaN);
write(new Array(1 ,2 ,3) > Number.POSITIVE_INFINITY);
write(new Array(1 ,2 ,3) > Number.NEGATIVE_INFINITY);
write(new Array(1 ,2 ,3) > new Number(NaN));
write(new Array(1 ,2 ,3) > new Number(+0));
write(new Array(1 ,2 ,3) > new Number(-0));
write(new Array(1 ,2 ,3) > new Number(0));
write(new Array(1 ,2 ,3) > new Number(0.0));
write(new Array(1 ,2 ,3) > new Number(-0.0));
write(new Array(1 ,2 ,3) > new Number(+0.0));
write(new Array(1 ,2 ,3) > new Number(1));
write(new Array(1 ,2 ,3) > new Number(10));
write(new Array(1 ,2 ,3) > new Number(10.0));
write(new Array(1 ,2 ,3) > new Number(10.1));
write(new Array(1 ,2 ,3) > new Number(-1));
write(new Array(1 ,2 ,3) > new Number(-10));
write(new Array(1 ,2 ,3) > new Number(-10.0));
write(new Array(1 ,2 ,3) > new Number(-10.1));
write(new Array(1 ,2 ,3) > new Number(Number.MAX_VALUE));
write(new Array(1 ,2 ,3) > new Number(Number.MIN_VALUE));
write(new Array(1 ,2 ,3) > new Number(Number.NaN));
write(new Array(1 ,2 ,3) > new Number(Number.POSITIVE_INFINITY));
write(new Array(1 ,2 ,3) > new Number(Number.NEGATIVE_INFINITY));
write(new Array(1 ,2 ,3) > '');
write(new Array(1 ,2 ,3) > 0xa);
write(new Array(1 ,2 ,3) > 04);
write(new Array(1 ,2 ,3) > 'hello');
write(new Array(1 ,2 ,3) > 'hel' + 'lo');
write(new Array(1 ,2 ,3) > String(''));
write(new Array(1 ,2 ,3) > String('hello'));
write(new Array(1 ,2 ,3) > String('h' + 'ello'));
write(new Array(1 ,2 ,3) > new String(''));
write(new Array(1 ,2 ,3) > new String('hello'));
write(new Array(1 ,2 ,3) > new String('he' + 'llo'));
write(new Array(1 ,2 ,3) > new Object());
write(new Array(1 ,2 ,3) > new Object());
write(new Array(1 ,2 ,3) > [1, 2, 3]);
write(new Array(1 ,2 ,3) > [1 ,2 , 3]);
write(new Array(1 ,2 ,3) > new Array(3));
write(new Array(1 ,2 ,3) > Array(3));
write(new Array(1 ,2 ,3) > new Array(1 ,2 ,3));
write(new Array(1 ,2 ,3) > Array(1));
write(new Array(1 ,2 ,3) > foo);
write(Array(1) > undefined);
write(Array(1) > null);
write(Array(1) > true);
write(Array(1) > false);
write(Array(1) > Boolean(true));
write(Array(1) > Boolean(false));
write(Array(1) > new Boolean(true));
write(Array(1) > new Boolean(false));
write(Array(1) > NaN);
write(Array(1) > +0);
write(Array(1) > -0);
write(Array(1) > 0);
write(Array(1) > 0.0);
write(Array(1) > -0.0);
write(Array(1) > +0.0);
write(Array(1) > 1);
write(Array(1) > 10);
write(Array(1) > 10.0);
write(Array(1) > 10.1);
write(Array(1) > -1);
write(Array(1) > -10);
write(Array(1) > -10.0);
write(Array(1) > -10.1);
write(Array(1) > Number.MAX_VALUE);
write(Array(1) > Number.MIN_VALUE);
write(Array(1) > Number.NaN);
write(Array(1) > Number.POSITIVE_INFINITY);
write(Array(1) > Number.NEGATIVE_INFINITY);
write(Array(1) > new Number(NaN));
write(Array(1) > new Number(+0));
write(Array(1) > new Number(-0));
write(Array(1) > new Number(0));
write(Array(1) > new Number(0.0));
write(Array(1) > new Number(-0.0));
write(Array(1) > new Number(+0.0));
write(Array(1) > new Number(1));
write(Array(1) > new Number(10));
write(Array(1) > new Number(10.0));
write(Array(1) > new Number(10.1));
write(Array(1) > new Number(-1));
write(Array(1) > new Number(-10));
write(Array(1) > new Number(-10.0));
write(Array(1) > new Number(-10.1));
write(Array(1) > new Number(Number.MAX_VALUE));
write(Array(1) > new Number(Number.MIN_VALUE));
write(Array(1) > new Number(Number.NaN));
write(Array(1) > new Number(Number.POSITIVE_INFINITY));
write(Array(1) > new Number(Number.NEGATIVE_INFINITY));
write(Array(1) > '');
write(Array(1) > 0xa);
write(Array(1) > 04);
write(Array(1) > 'hello');
write(Array(1) > 'hel' + 'lo');
write(Array(1) > String(''));
write(Array(1) > String('hello'));
write(Array(1) > String('h' + 'ello'));
write(Array(1) > new String(''));
write(Array(1) > new String('hello'));
write(Array(1) > new String('he' + 'llo'));
write(Array(1) > new Object());
write(Array(1) > new Object());
write(Array(1) > [1, 2, 3]);
write(Array(1) > [1 ,2 , 3]);
write(Array(1) > new Array(3));
write(Array(1) > Array(3));
write(Array(1) > new Array(1 ,2 ,3));
write(Array(1) > Array(1));
write(Array(1) > foo);
write(foo > undefined);
write(foo > null);
write(foo > true);
write(foo > false);
write(foo > Boolean(true));
write(foo > Boolean(false));
write(foo > new Boolean(true));
write(foo > new Boolean(false));
write(foo > NaN);
write(foo > +0);
write(foo > -0);
write(foo > 0);
write(foo > 0.0);
write(foo > -0.0);
write(foo > +0.0);
write(foo > 1);
write(foo > 10);
write(foo > 10.0);
write(foo > 10.1);
write(foo > -1);
write(foo > -10);
write(foo > -10.0);
write(foo > -10.1);
write(foo > Number.MAX_VALUE);
write(foo > Number.MIN_VALUE);
write(foo > Number.NaN);
write(foo > Number.POSITIVE_INFINITY);
write(foo > Number.NEGATIVE_INFINITY);
write(foo > new Number(NaN));
write(foo > new Number(+0));
write(foo > new Number(-0));
write(foo > new Number(0));
write(foo > new Number(0.0));
write(foo > new Number(-0.0));
write(foo > new Number(+0.0));
write(foo > new Number(1));
write(foo > new Number(10));
write(foo > new Number(10.0));
write(foo > new Number(10.1));
write(foo > new Number(-1));
write(foo > new Number(-10));
write(foo > new Number(-10.0));
write(foo > new Number(-10.1));
write(foo > new Number(Number.MAX_VALUE));
write(foo > new Number(Number.MIN_VALUE));
write(foo > new Number(Number.NaN));
write(foo > new Number(Number.POSITIVE_INFINITY));
write(foo > new Number(Number.NEGATIVE_INFINITY));
write(foo > '');
write(foo > 0xa);
write(foo > 04);
write(foo > 'hello');
write(foo > 'hel' + 'lo');
write(foo > String(''));
write(foo > String('hello'));
write(foo > String('h' + 'ello'));
write(foo > new String(''));
write(foo > new String('hello'));
write(foo > new String('he' + 'llo'));
write(foo > new Object());
write(foo > new Object());
write(foo > [1, 2, 3]);
write(foo > [1 ,2 , 3]);
write(foo > new Array(3));
write(foo > Array(3));
write(foo > new Array(1 ,2 ,3));
write(foo > Array(1));
write(foo > foo);
