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