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