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