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