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