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