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