//-------------------------------------------------------------------------------------------------------
// 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);
