seq.js 34 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. function write(v) { WScript.Echo(v + ""); }
  6. function foo() {}
  7. write(undefined === undefined);
  8. write(undefined === null);
  9. write(undefined === true);
  10. write(undefined === false);
  11. write(undefined === Boolean(true));
  12. write(undefined === Boolean(false));
  13. write(undefined === new Boolean(true));
  14. write(undefined === new Boolean(false));
  15. write(undefined === NaN);
  16. write(undefined === +0);
  17. write(undefined === -0);
  18. write(undefined === 0);
  19. write(undefined === 0.0);
  20. write(undefined === -0.0);
  21. write(undefined === +0.0);
  22. write(undefined === 1);
  23. write(undefined === 10);
  24. write(undefined === 10.0);
  25. write(undefined === 10.1);
  26. write(undefined === -1);
  27. write(undefined === -10);
  28. write(undefined === -10.0);
  29. write(undefined === -10.1);
  30. write(undefined === Number.MAX_VALUE);
  31. write(undefined === Number.MIN_VALUE);
  32. write(undefined === Number.NaN);
  33. write(undefined === Number.POSITIVE_INFINITY);
  34. write(undefined === Number.NEGATIVE_INFINITY);
  35. write(undefined === new Number(NaN));
  36. write(undefined === new Number(+0));
  37. write(undefined === new Number(-0));
  38. write(undefined === new Number(0));
  39. write(undefined === new Number(0.0));
  40. write(undefined === new Number(-0.0));
  41. write(undefined === new Number(+0.0));
  42. write(undefined === new Number(1));
  43. write(undefined === new Number(10));
  44. write(undefined === new Number(10.0));
  45. write(undefined === new Number(10.1));
  46. write(undefined === new Number(-1));
  47. write(undefined === new Number(-10));
  48. write(undefined === new Number(-10.0));
  49. write(undefined === new Number(-10.1));
  50. write(undefined === new Number(Number.MAX_VALUE));
  51. write(undefined === new Number(Number.MIN_VALUE));
  52. write(undefined === new Number(Number.NaN));
  53. write(undefined === new Number(Number.POSITIVE_INFINITY));
  54. write(undefined === new Number(Number.NEGATIVE_INFINITY));
  55. write(undefined === '');
  56. write(undefined === 0xa);
  57. write(undefined === 04);
  58. write(undefined === 'hello');
  59. write(undefined === 'hel' + 'lo');
  60. write(undefined === String(''));
  61. write(undefined === String('hello'));
  62. write(undefined === String('h' + 'ello'));
  63. write(undefined === new String(''));
  64. write(undefined === new String('hello'));
  65. write(undefined === new String('he' + 'llo'));
  66. write(undefined === new Object());
  67. write(undefined === new Object());
  68. write(undefined === [1, 2, 3]);
  69. write(undefined === [1 ,2 , 3]);
  70. write(undefined === new Array(3));
  71. write(undefined === Array(3));
  72. write(undefined === new Array(1 ,2 ,3));
  73. write(undefined === Array(1));
  74. write(undefined === foo);
  75. write(null === undefined);
  76. write(null === null);
  77. write(null === true);
  78. write(null === false);
  79. write(null === Boolean(true));
  80. write(null === Boolean(false));
  81. write(null === new Boolean(true));
  82. write(null === new Boolean(false));
  83. write(null === NaN);
  84. write(null === +0);
  85. write(null === -0);
  86. write(null === 0);
  87. write(null === 0.0);
  88. write(null === -0.0);
  89. write(null === +0.0);
  90. write(null === 1);
  91. write(null === 10);
  92. write(null === 10.0);
  93. write(null === 10.1);
  94. write(null === -1);
  95. write(null === -10);
  96. write(null === -10.0);
  97. write(null === -10.1);
  98. write(null === Number.MAX_VALUE);
  99. write(null === Number.MIN_VALUE);
  100. write(null === Number.NaN);
  101. write(null === Number.POSITIVE_INFINITY);
  102. write(null === Number.NEGATIVE_INFINITY);
  103. write(null === new Number(NaN));
  104. write(null === new Number(+0));
  105. write(null === new Number(-0));
  106. write(null === new Number(0));
  107. write(null === new Number(0.0));
  108. write(null === new Number(-0.0));
  109. write(null === new Number(+0.0));
  110. write(null === new Number(1));
  111. write(null === new Number(10));
  112. write(null === new Number(10.0));
  113. write(null === new Number(10.1));
  114. write(null === new Number(-1));
  115. write(null === new Number(-10));
  116. write(null === new Number(-10.0));
  117. write(null === new Number(-10.1));
  118. write(null === new Number(Number.MAX_VALUE));
  119. write(null === new Number(Number.MIN_VALUE));
  120. write(null === new Number(Number.NaN));
  121. write(null === new Number(Number.POSITIVE_INFINITY));
  122. write(null === new Number(Number.NEGATIVE_INFINITY));
  123. write(null === '');
  124. write(null === 0xa);
  125. write(null === 04);
  126. write(null === 'hello');
  127. write(null === 'hel' + 'lo');
  128. write(null === String(''));
  129. write(null === String('hello'));
  130. write(null === String('h' + 'ello'));
  131. write(null === new String(''));
  132. write(null === new String('hello'));
  133. write(null === new String('he' + 'llo'));
  134. write(null === new Object());
  135. write(null === new Object());
  136. write(null === [1, 2, 3]);
  137. write(null === [1 ,2 , 3]);
  138. write(null === new Array(3));
  139. write(null === Array(3));
  140. write(null === new Array(1 ,2 ,3));
  141. write(null === Array(1));
  142. write(null === foo);
  143. write(true === undefined);
  144. write(true === null);
  145. write(true === true);
  146. write(true === false);
  147. write(true === Boolean(true));
  148. write(true === Boolean(false));
  149. write(true === new Boolean(true));
  150. write(true === new Boolean(false));
  151. write(true === NaN);
  152. write(true === +0);
  153. write(true === -0);
  154. write(true === 0);
  155. write(true === 0.0);
  156. write(true === -0.0);
  157. write(true === +0.0);
  158. write(true === 1);
  159. write(true === 10);
  160. write(true === 10.0);
  161. write(true === 10.1);
  162. write(true === -1);
  163. write(true === -10);
  164. write(true === -10.0);
  165. write(true === -10.1);
  166. write(true === Number.MAX_VALUE);
  167. write(true === Number.MIN_VALUE);
  168. write(true === Number.NaN);
  169. write(true === Number.POSITIVE_INFINITY);
  170. write(true === Number.NEGATIVE_INFINITY);
  171. write(true === new Number(NaN));
  172. write(true === new Number(+0));
  173. write(true === new Number(-0));
  174. write(true === new Number(0));
  175. write(true === new Number(0.0));
  176. write(true === new Number(-0.0));
  177. write(true === new Number(+0.0));
  178. write(true === new Number(1));
  179. write(true === new Number(10));
  180. write(true === new Number(10.0));
  181. write(true === new Number(10.1));
  182. write(true === new Number(-1));
  183. write(true === new Number(-10));
  184. write(true === new Number(-10.0));
  185. write(true === new Number(-10.1));
  186. write(true === new Number(Number.MAX_VALUE));
  187. write(true === new Number(Number.MIN_VALUE));
  188. write(true === new Number(Number.NaN));
  189. write(true === new Number(Number.POSITIVE_INFINITY));
  190. write(true === new Number(Number.NEGATIVE_INFINITY));
  191. write(true === '');
  192. write(true === 0xa);
  193. write(true === 04);
  194. write(true === 'hello');
  195. write(true === 'hel' + 'lo');
  196. write(true === String(''));
  197. write(true === String('hello'));
  198. write(true === String('h' + 'ello'));
  199. write(true === new String(''));
  200. write(true === new String('hello'));
  201. write(true === new String('he' + 'llo'));
  202. write(true === new Object());
  203. write(true === new Object());
  204. write(true === [1, 2, 3]);
  205. write(true === [1 ,2 , 3]);
  206. write(true === new Array(3));
  207. write(true === Array(3));
  208. write(true === new Array(1 ,2 ,3));
  209. write(true === Array(1));
  210. write(true === foo);
  211. write(false === undefined);
  212. write(false === null);
  213. write(false === true);
  214. write(false === false);
  215. write(false === Boolean(true));
  216. write(false === Boolean(false));
  217. write(false === new Boolean(true));
  218. write(false === new Boolean(false));
  219. write(false === NaN);
  220. write(false === +0);
  221. write(false === -0);
  222. write(false === 0);
  223. write(false === 0.0);
  224. write(false === -0.0);
  225. write(false === +0.0);
  226. write(false === 1);
  227. write(false === 10);
  228. write(false === 10.0);
  229. write(false === 10.1);
  230. write(false === -1);
  231. write(false === -10);
  232. write(false === -10.0);
  233. write(false === -10.1);
  234. write(false === Number.MAX_VALUE);
  235. write(false === Number.MIN_VALUE);
  236. write(false === Number.NaN);
  237. write(false === Number.POSITIVE_INFINITY);
  238. write(false === Number.NEGATIVE_INFINITY);
  239. write(false === new Number(NaN));
  240. write(false === new Number(+0));
  241. write(false === new Number(-0));
  242. write(false === new Number(0));
  243. write(false === new Number(0.0));
  244. write(false === new Number(-0.0));
  245. write(false === new Number(+0.0));
  246. write(false === new Number(1));
  247. write(false === new Number(10));
  248. write(false === new Number(10.0));
  249. write(false === new Number(10.1));
  250. write(false === new Number(-1));
  251. write(false === new Number(-10));
  252. write(false === new Number(-10.0));
  253. write(false === new Number(-10.1));
  254. write(false === new Number(Number.MAX_VALUE));
  255. write(false === new Number(Number.MIN_VALUE));
  256. write(false === new Number(Number.NaN));
  257. write(false === new Number(Number.POSITIVE_INFINITY));
  258. write(false === new Number(Number.NEGATIVE_INFINITY));
  259. write(false === '');
  260. write(false === 0xa);
  261. write(false === 04);
  262. write(false === 'hello');
  263. write(false === 'hel' + 'lo');
  264. write(false === String(''));
  265. write(false === String('hello'));
  266. write(false === String('h' + 'ello'));
  267. write(false === new String(''));
  268. write(false === new String('hello'));
  269. write(false === new String('he' + 'llo'));
  270. write(false === new Object());
  271. write(false === new Object());
  272. write(false === [1, 2, 3]);
  273. write(false === [1 ,2 , 3]);
  274. write(false === new Array(3));
  275. write(false === Array(3));
  276. write(false === new Array(1 ,2 ,3));
  277. write(false === Array(1));
  278. write(false === foo);
  279. write(Boolean(true) === undefined);
  280. write(Boolean(true) === null);
  281. write(Boolean(true) === true);
  282. write(Boolean(true) === false);
  283. write(Boolean(true) === Boolean(true));
  284. write(Boolean(true) === Boolean(false));
  285. write(Boolean(true) === new Boolean(true));
  286. write(Boolean(true) === new Boolean(false));
  287. write(Boolean(true) === NaN);
  288. write(Boolean(true) === +0);
  289. write(Boolean(true) === -0);
  290. write(Boolean(true) === 0);
  291. write(Boolean(true) === 0.0);
  292. write(Boolean(true) === -0.0);
  293. write(Boolean(true) === +0.0);
  294. write(Boolean(true) === 1);
  295. write(Boolean(true) === 10);
  296. write(Boolean(true) === 10.0);
  297. write(Boolean(true) === 10.1);
  298. write(Boolean(true) === -1);
  299. write(Boolean(true) === -10);
  300. write(Boolean(true) === -10.0);
  301. write(Boolean(true) === -10.1);
  302. write(Boolean(true) === Number.MAX_VALUE);
  303. write(Boolean(true) === Number.MIN_VALUE);
  304. write(Boolean(true) === Number.NaN);
  305. write(Boolean(true) === Number.POSITIVE_INFINITY);
  306. write(Boolean(true) === Number.NEGATIVE_INFINITY);
  307. write(Boolean(true) === new Number(NaN));
  308. write(Boolean(true) === new Number(+0));
  309. write(Boolean(true) === new Number(-0));
  310. write(Boolean(true) === new Number(0));
  311. write(Boolean(true) === new Number(0.0));
  312. write(Boolean(true) === new Number(-0.0));
  313. write(Boolean(true) === new Number(+0.0));
  314. write(Boolean(true) === new Number(1));
  315. write(Boolean(true) === new Number(10));
  316. write(Boolean(true) === new Number(10.0));
  317. write(Boolean(true) === new Number(10.1));
  318. write(Boolean(true) === new Number(-1));
  319. write(Boolean(true) === new Number(-10));
  320. write(Boolean(true) === new Number(-10.0));
  321. write(Boolean(true) === new Number(-10.1));
  322. write(Boolean(true) === new Number(Number.MAX_VALUE));
  323. write(Boolean(true) === new Number(Number.MIN_VALUE));
  324. write(Boolean(true) === new Number(Number.NaN));
  325. write(Boolean(true) === new Number(Number.POSITIVE_INFINITY));
  326. write(Boolean(true) === new Number(Number.NEGATIVE_INFINITY));
  327. write(Boolean(true) === '');
  328. write(Boolean(true) === 0xa);
  329. write(Boolean(true) === 04);
  330. write(Boolean(true) === 'hello');
  331. write(Boolean(true) === 'hel' + 'lo');
  332. write(Boolean(true) === String(''));
  333. write(Boolean(true) === String('hello'));
  334. write(Boolean(true) === String('h' + 'ello'));
  335. write(Boolean(true) === new String(''));
  336. write(Boolean(true) === new String('hello'));
  337. write(Boolean(true) === new String('he' + 'llo'));
  338. write(Boolean(true) === new Object());
  339. write(Boolean(true) === new Object());
  340. write(Boolean(true) === [1, 2, 3]);
  341. write(Boolean(true) === [1 ,2 , 3]);
  342. write(Boolean(true) === new Array(3));
  343. write(Boolean(true) === Array(3));
  344. write(Boolean(true) === new Array(1 ,2 ,3));
  345. write(Boolean(true) === Array(1));
  346. write(Boolean(true) === foo);
  347. write(Boolean(false) === undefined);
  348. write(Boolean(false) === null);
  349. write(Boolean(false) === true);
  350. write(Boolean(false) === false);
  351. write(Boolean(false) === Boolean(true));
  352. write(Boolean(false) === Boolean(false));
  353. write(Boolean(false) === new Boolean(true));
  354. write(Boolean(false) === new Boolean(false));
  355. write(Boolean(false) === NaN);
  356. write(Boolean(false) === +0);
  357. write(Boolean(false) === -0);
  358. write(Boolean(false) === 0);
  359. write(Boolean(false) === 0.0);
  360. write(Boolean(false) === -0.0);
  361. write(Boolean(false) === +0.0);
  362. write(Boolean(false) === 1);
  363. write(Boolean(false) === 10);
  364. write(Boolean(false) === 10.0);
  365. write(Boolean(false) === 10.1);
  366. write(Boolean(false) === -1);
  367. write(Boolean(false) === -10);
  368. write(Boolean(false) === -10.0);
  369. write(Boolean(false) === -10.1);
  370. write(Boolean(false) === Number.MAX_VALUE);
  371. write(Boolean(false) === Number.MIN_VALUE);
  372. write(Boolean(false) === Number.NaN);
  373. write(Boolean(false) === Number.POSITIVE_INFINITY);
  374. write(Boolean(false) === Number.NEGATIVE_INFINITY);
  375. write(Boolean(false) === new Number(NaN));
  376. write(Boolean(false) === new Number(+0));
  377. write(Boolean(false) === new Number(-0));
  378. write(Boolean(false) === new Number(0));
  379. write(Boolean(false) === new Number(0.0));
  380. write(Boolean(false) === new Number(-0.0));
  381. write(Boolean(false) === new Number(+0.0));
  382. write(Boolean(false) === new Number(1));
  383. write(Boolean(false) === new Number(10));
  384. write(Boolean(false) === new Number(10.0));
  385. write(Boolean(false) === new Number(10.1));
  386. write(Boolean(false) === new Number(-1));
  387. write(Boolean(false) === new Number(-10));
  388. write(Boolean(false) === new Number(-10.0));
  389. write(Boolean(false) === new Number(-10.1));
  390. write(Boolean(false) === new Number(Number.MAX_VALUE));
  391. write(Boolean(false) === new Number(Number.MIN_VALUE));
  392. write(Boolean(false) === new Number(Number.NaN));
  393. write(Boolean(false) === new Number(Number.POSITIVE_INFINITY));
  394. write(Boolean(false) === new Number(Number.NEGATIVE_INFINITY));
  395. write(Boolean(false) === '');
  396. write(Boolean(false) === 0xa);
  397. write(Boolean(false) === 04);
  398. write(Boolean(false) === 'hello');
  399. write(Boolean(false) === 'hel' + 'lo');
  400. write(Boolean(false) === String(''));
  401. write(Boolean(false) === String('hello'));
  402. write(Boolean(false) === String('h' + 'ello'));
  403. write(Boolean(false) === new String(''));
  404. write(Boolean(false) === new String('hello'));
  405. write(Boolean(false) === new String('he' + 'llo'));
  406. write(Boolean(false) === new Object());
  407. write(Boolean(false) === new Object());
  408. write(Boolean(false) === [1, 2, 3]);
  409. write(Boolean(false) === [1 ,2 , 3]);
  410. write(Boolean(false) === new Array(3));
  411. write(Boolean(false) === Array(3));
  412. write(Boolean(false) === new Array(1 ,2 ,3));
  413. write(Boolean(false) === Array(1));
  414. write(Boolean(false) === foo);
  415. write(new Boolean(true) === undefined);
  416. write(new Boolean(true) === null);
  417. write(new Boolean(true) === true);
  418. write(new Boolean(true) === false);
  419. write(new Boolean(true) === Boolean(true));
  420. write(new Boolean(true) === Boolean(false));
  421. write(new Boolean(true) === new Boolean(true));
  422. write(new Boolean(true) === new Boolean(false));
  423. write(new Boolean(true) === NaN);
  424. write(new Boolean(true) === +0);
  425. write(new Boolean(true) === -0);
  426. write(new Boolean(true) === 0);
  427. write(new Boolean(true) === 0.0);
  428. write(new Boolean(true) === -0.0);
  429. write(new Boolean(true) === +0.0);
  430. write(new Boolean(true) === 1);
  431. write(new Boolean(true) === 10);
  432. write(new Boolean(true) === 10.0);
  433. write(new Boolean(true) === 10.1);
  434. write(new Boolean(true) === -1);
  435. write(new Boolean(true) === -10);
  436. write(new Boolean(true) === -10.0);
  437. write(new Boolean(true) === -10.1);
  438. write(new Boolean(true) === Number.MAX_VALUE);
  439. write(new Boolean(true) === Number.MIN_VALUE);
  440. write(new Boolean(true) === Number.NaN);
  441. write(new Boolean(true) === Number.POSITIVE_INFINITY);
  442. write(new Boolean(true) === Number.NEGATIVE_INFINITY);
  443. write(new Boolean(true) === new Number(NaN));
  444. write(new Boolean(true) === new Number(+0));
  445. write(new Boolean(true) === new Number(-0));
  446. write(new Boolean(true) === new Number(0));
  447. write(new Boolean(true) === new Number(0.0));
  448. write(new Boolean(true) === new Number(-0.0));
  449. write(new Boolean(true) === new Number(+0.0));
  450. write(new Boolean(true) === new Number(1));
  451. write(new Boolean(true) === new Number(10));
  452. write(new Boolean(true) === new Number(10.0));
  453. write(new Boolean(true) === new Number(10.1));
  454. write(new Boolean(true) === new Number(-1));
  455. write(new Boolean(true) === new Number(-10));
  456. write(new Boolean(true) === new Number(-10.0));
  457. write(new Boolean(true) === new Number(-10.1));
  458. write(new Boolean(true) === new Number(Number.MAX_VALUE));
  459. write(new Boolean(true) === new Number(Number.MIN_VALUE));
  460. write(new Boolean(true) === new Number(Number.NaN));
  461. write(new Boolean(true) === new Number(Number.POSITIVE_INFINITY));
  462. write(new Boolean(true) === new Number(Number.NEGATIVE_INFINITY));
  463. write(new Boolean(true) === '');
  464. write(new Boolean(true) === 0xa);
  465. write(new Boolean(true) === 04);
  466. write(new Boolean(true) === 'hello');
  467. write(new Boolean(true) === 'hel' + 'lo');
  468. write(new Boolean(true) === String(''));
  469. write(new Boolean(true) === String('hello'));
  470. write(new Boolean(true) === String('h' + 'ello'));
  471. write(new Boolean(true) === new String(''));
  472. write(new Boolean(true) === new String('hello'));
  473. write(new Boolean(true) === new String('he' + 'llo'));
  474. write(new Boolean(true) === new Object());
  475. write(new Boolean(true) === new Object());
  476. write(new Boolean(true) === [1, 2, 3]);
  477. write(new Boolean(true) === [1 ,2 , 3]);
  478. write(new Boolean(true) === new Array(3));
  479. write(new Boolean(true) === Array(3));
  480. write(new Boolean(true) === new Array(1 ,2 ,3));
  481. write(new Boolean(true) === Array(1));
  482. write(new Boolean(true) === foo);
  483. write(new Boolean(false) === undefined);
  484. write(new Boolean(false) === null);
  485. write(new Boolean(false) === true);
  486. write(new Boolean(false) === false);
  487. write(new Boolean(false) === Boolean(true));
  488. write(new Boolean(false) === Boolean(false));
  489. write(new Boolean(false) === new Boolean(true));
  490. write(new Boolean(false) === new Boolean(false));
  491. write(new Boolean(false) === NaN);
  492. write(new Boolean(false) === +0);
  493. write(new Boolean(false) === -0);
  494. write(new Boolean(false) === 0);
  495. write(new Boolean(false) === 0.0);
  496. write(new Boolean(false) === -0.0);
  497. write(new Boolean(false) === +0.0);
  498. write(new Boolean(false) === 1);
  499. write(new Boolean(false) === 10);
  500. write(new Boolean(false) === 10.0);
  501. write(new Boolean(false) === 10.1);
  502. write(new Boolean(false) === -1);
  503. write(new Boolean(false) === -10);
  504. write(new Boolean(false) === -10.0);
  505. write(new Boolean(false) === -10.1);
  506. write(new Boolean(false) === Number.MAX_VALUE);
  507. write(new Boolean(false) === Number.MIN_VALUE);
  508. write(new Boolean(false) === Number.NaN);
  509. write(new Boolean(false) === Number.POSITIVE_INFINITY);
  510. write(new Boolean(false) === Number.NEGATIVE_INFINITY);
  511. write(new Boolean(false) === new Number(NaN));
  512. write(new Boolean(false) === new Number(+0));
  513. write(new Boolean(false) === new Number(-0));
  514. write(new Boolean(false) === new Number(0));
  515. write(new Boolean(false) === new Number(0.0));
  516. write(new Boolean(false) === new Number(-0.0));
  517. write(new Boolean(false) === new Number(+0.0));
  518. write(new Boolean(false) === new Number(1));
  519. write(new Boolean(false) === new Number(10));
  520. write(new Boolean(false) === new Number(10.0));
  521. write(new Boolean(false) === new Number(10.1));
  522. write(new Boolean(false) === new Number(-1));
  523. write(new Boolean(false) === new Number(-10));
  524. write(new Boolean(false) === new Number(-10.0));
  525. write(new Boolean(false) === new Number(-10.1));
  526. write(new Boolean(false) === new Number(Number.MAX_VALUE));
  527. write(new Boolean(false) === new Number(Number.MIN_VALUE));
  528. write(new Boolean(false) === new Number(Number.NaN));
  529. write(new Boolean(false) === new Number(Number.POSITIVE_INFINITY));
  530. write(new Boolean(false) === new Number(Number.NEGATIVE_INFINITY));
  531. write(new Boolean(false) === '');
  532. write(new Boolean(false) === 0xa);
  533. write(new Boolean(false) === 04);
  534. write(new Boolean(false) === 'hello');
  535. write(new Boolean(false) === 'hel' + 'lo');
  536. write(new Boolean(false) === String(''));
  537. write(new Boolean(false) === String('hello'));
  538. write(new Boolean(false) === String('h' + 'ello'));
  539. write(new Boolean(false) === new String(''));
  540. write(new Boolean(false) === new String('hello'));
  541. write(new Boolean(false) === new String('he' + 'llo'));
  542. write(new Boolean(false) === new Object());
  543. write(new Boolean(false) === new Object());
  544. write(new Boolean(false) === [1, 2, 3]);
  545. write(new Boolean(false) === [1 ,2 , 3]);
  546. write(new Boolean(false) === new Array(3));
  547. write(new Boolean(false) === Array(3));
  548. write(new Boolean(false) === new Array(1 ,2 ,3));
  549. write(new Boolean(false) === Array(1));
  550. write(new Boolean(false) === foo);
  551. write(NaN === undefined);
  552. write(NaN === null);
  553. write(NaN === true);
  554. write(NaN === false);
  555. write(NaN === Boolean(true));
  556. write(NaN === Boolean(false));
  557. write(NaN === new Boolean(true));
  558. write(NaN === new Boolean(false));
  559. write(NaN === NaN);
  560. write(NaN === +0);
  561. write(NaN === -0);
  562. write(NaN === 0);
  563. write(NaN === 0.0);
  564. write(NaN === -0.0);
  565. write(NaN === +0.0);
  566. write(NaN === 1);
  567. write(NaN === 10);
  568. write(NaN === 10.0);
  569. write(NaN === 10.1);
  570. write(NaN === -1);
  571. write(NaN === -10);
  572. write(NaN === -10.0);
  573. write(NaN === -10.1);
  574. write(NaN === Number.MAX_VALUE);
  575. write(NaN === Number.MIN_VALUE);
  576. write(NaN === Number.NaN);
  577. write(NaN === Number.POSITIVE_INFINITY);
  578. write(NaN === Number.NEGATIVE_INFINITY);
  579. write(NaN === new Number(NaN));
  580. write(NaN === new Number(+0));
  581. write(NaN === new Number(-0));
  582. write(NaN === new Number(0));
  583. write(NaN === new Number(0.0));
  584. write(NaN === new Number(-0.0));
  585. write(NaN === new Number(+0.0));
  586. write(NaN === new Number(1));
  587. write(NaN === new Number(10));
  588. write(NaN === new Number(10.0));
  589. write(NaN === new Number(10.1));
  590. write(NaN === new Number(-1));
  591. write(NaN === new Number(-10));
  592. write(NaN === new Number(-10.0));
  593. write(NaN === new Number(-10.1));
  594. write(NaN === new Number(Number.MAX_VALUE));
  595. write(NaN === new Number(Number.MIN_VALUE));
  596. write(NaN === new Number(Number.NaN));
  597. write(NaN === new Number(Number.POSITIVE_INFINITY));
  598. write(NaN === new Number(Number.NEGATIVE_INFINITY));
  599. write(NaN === '');
  600. write(NaN === 0xa);
  601. write(NaN === 04);
  602. write(NaN === 'hello');
  603. write(NaN === 'hel' + 'lo');
  604. write(NaN === String(''));
  605. write(NaN === String('hello'));
  606. write(NaN === String('h' + 'ello'));
  607. write(NaN === new String(''));
  608. write(NaN === new String('hello'));
  609. write(NaN === new String('he' + 'llo'));
  610. write(NaN === new Object());
  611. write(NaN === new Object());
  612. write(NaN === [1, 2, 3]);
  613. write(NaN === [1 ,2 , 3]);
  614. write(NaN === new Array(3));
  615. write(NaN === Array(3));
  616. write(NaN === new Array(1 ,2 ,3));
  617. write(NaN === Array(1));
  618. write(NaN === foo);
  619. write(+0 === undefined);
  620. write(+0 === null);
  621. write(+0 === true);
  622. write(+0 === false);
  623. write(+0 === Boolean(true));
  624. write(+0 === Boolean(false));
  625. write(+0 === new Boolean(true));
  626. write(+0 === new Boolean(false));
  627. write(+0 === NaN);
  628. write(+0 === +0);
  629. write(+0 === -0);
  630. write(+0 === 0);
  631. write(+0 === 0.0);
  632. write(+0 === -0.0);
  633. write(+0 === +0.0);
  634. write(+0 === 1);
  635. write(+0 === 10);
  636. write(+0 === 10.0);
  637. write(+0 === 10.1);
  638. write(+0 === -1);
  639. write(+0 === -10);
  640. write(+0 === -10.0);
  641. write(+0 === -10.1);
  642. write(+0 === Number.MAX_VALUE);
  643. write(+0 === Number.MIN_VALUE);
  644. write(+0 === Number.NaN);
  645. write(+0 === Number.POSITIVE_INFINITY);
  646. write(+0 === Number.NEGATIVE_INFINITY);
  647. write(+0 === new Number(NaN));
  648. write(+0 === new Number(+0));
  649. write(+0 === new Number(-0));
  650. write(+0 === new Number(0));
  651. write(+0 === new Number(0.0));
  652. write(+0 === new Number(-0.0));
  653. write(+0 === new Number(+0.0));
  654. write(+0 === new Number(1));
  655. write(+0 === new Number(10));
  656. write(+0 === new Number(10.0));
  657. write(+0 === new Number(10.1));
  658. write(+0 === new Number(-1));
  659. write(+0 === new Number(-10));
  660. write(+0 === new Number(-10.0));
  661. write(+0 === new Number(-10.1));
  662. write(+0 === new Number(Number.MAX_VALUE));
  663. write(+0 === new Number(Number.MIN_VALUE));
  664. write(+0 === new Number(Number.NaN));
  665. write(+0 === new Number(Number.POSITIVE_INFINITY));
  666. write(+0 === new Number(Number.NEGATIVE_INFINITY));
  667. write(+0 === '');
  668. write(+0 === 0xa);
  669. write(+0 === 04);
  670. write(+0 === 'hello');
  671. write(+0 === 'hel' + 'lo');
  672. write(+0 === String(''));
  673. write(+0 === String('hello'));
  674. write(+0 === String('h' + 'ello'));
  675. write(+0 === new String(''));
  676. write(+0 === new String('hello'));
  677. write(+0 === new String('he' + 'llo'));
  678. write(+0 === new Object());
  679. write(+0 === new Object());
  680. write(+0 === [1, 2, 3]);
  681. write(+0 === [1 ,2 , 3]);
  682. write(+0 === new Array(3));
  683. write(+0 === Array(3));
  684. write(+0 === new Array(1 ,2 ,3));
  685. write(+0 === Array(1));
  686. write(+0 === foo);
  687. write(-0 === undefined);
  688. write(-0 === null);
  689. write(-0 === true);
  690. write(-0 === false);
  691. write(-0 === Boolean(true));
  692. write(-0 === Boolean(false));
  693. write(-0 === new Boolean(true));
  694. write(-0 === new Boolean(false));
  695. write(-0 === NaN);
  696. write(-0 === +0);
  697. write(-0 === -0);
  698. write(-0 === 0);
  699. write(-0 === 0.0);
  700. write(-0 === -0.0);
  701. write(-0 === +0.0);
  702. write(-0 === 1);
  703. write(-0 === 10);
  704. write(-0 === 10.0);
  705. write(-0 === 10.1);
  706. write(-0 === -1);
  707. write(-0 === -10);
  708. write(-0 === -10.0);
  709. write(-0 === -10.1);
  710. write(-0 === Number.MAX_VALUE);
  711. write(-0 === Number.MIN_VALUE);
  712. write(-0 === Number.NaN);
  713. write(-0 === Number.POSITIVE_INFINITY);
  714. write(-0 === Number.NEGATIVE_INFINITY);
  715. write(-0 === new Number(NaN));
  716. write(-0 === new Number(+0));
  717. write(-0 === new Number(-0));
  718. write(-0 === new Number(0));
  719. write(-0 === new Number(0.0));
  720. write(-0 === new Number(-0.0));
  721. write(-0 === new Number(+0.0));
  722. write(-0 === new Number(1));
  723. write(-0 === new Number(10));
  724. write(-0 === new Number(10.0));
  725. write(-0 === new Number(10.1));
  726. write(-0 === new Number(-1));
  727. write(-0 === new Number(-10));
  728. write(-0 === new Number(-10.0));
  729. write(-0 === new Number(-10.1));
  730. write(-0 === new Number(Number.MAX_VALUE));
  731. write(-0 === new Number(Number.MIN_VALUE));
  732. write(-0 === new Number(Number.NaN));
  733. write(-0 === new Number(Number.POSITIVE_INFINITY));
  734. write(-0 === new Number(Number.NEGATIVE_INFINITY));
  735. write(-0 === '');
  736. write(-0 === 0xa);
  737. write(-0 === 04);
  738. write(-0 === 'hello');
  739. write(-0 === 'hel' + 'lo');
  740. write(-0 === String(''));
  741. write(-0 === String('hello'));
  742. write(-0 === String('h' + 'ello'));
  743. write(-0 === new String(''));
  744. write(-0 === new String('hello'));
  745. write(-0 === new String('he' + 'llo'));
  746. write(-0 === new Object());
  747. write(-0 === new Object());
  748. write(-0 === [1, 2, 3]);
  749. write(-0 === [1 ,2 , 3]);
  750. write(-0 === new Array(3));
  751. write(-0 === Array(3));
  752. write(-0 === new Array(1 ,2 ,3));
  753. write(-0 === Array(1));
  754. write(-0 === foo);
  755. write(0 === undefined);
  756. write(0 === null);
  757. write(0 === true);
  758. write(0 === false);
  759. write(0 === Boolean(true));
  760. write(0 === Boolean(false));
  761. write(0 === new Boolean(true));
  762. write(0 === new Boolean(false));
  763. write(0 === NaN);
  764. write(0 === +0);
  765. write(0 === -0);
  766. write(0 === 0);
  767. write(0 === 0.0);
  768. write(0 === -0.0);
  769. write(0 === +0.0);
  770. write(0 === 1);
  771. write(0 === 10);
  772. write(0 === 10.0);
  773. write(0 === 10.1);
  774. write(0 === -1);
  775. write(0 === -10);
  776. write(0 === -10.0);
  777. write(0 === -10.1);
  778. write(0 === Number.MAX_VALUE);
  779. write(0 === Number.MIN_VALUE);
  780. write(0 === Number.NaN);
  781. write(0 === Number.POSITIVE_INFINITY);
  782. write(0 === Number.NEGATIVE_INFINITY);
  783. write(0 === new Number(NaN));
  784. write(0 === new Number(+0));
  785. write(0 === new Number(-0));
  786. write(0 === new Number(0));
  787. write(0 === new Number(0.0));
  788. write(0 === new Number(-0.0));
  789. write(0 === new Number(+0.0));
  790. write(0 === new Number(1));
  791. write(0 === new Number(10));
  792. write(0 === new Number(10.0));
  793. write(0 === new Number(10.1));
  794. write(0 === new Number(-1));
  795. write(0 === new Number(-10));
  796. write(0 === new Number(-10.0));
  797. write(0 === new Number(-10.1));
  798. write(0 === new Number(Number.MAX_VALUE));
  799. write(0 === new Number(Number.MIN_VALUE));
  800. write(0 === new Number(Number.NaN));
  801. write(0 === new Number(Number.POSITIVE_INFINITY));
  802. write(0 === new Number(Number.NEGATIVE_INFINITY));
  803. write(0 === '');
  804. write(0 === 0xa);
  805. write(0 === 04);
  806. write(0 === 'hello');
  807. write(0 === 'hel' + 'lo');
  808. write(0 === String(''));
  809. write(0 === String('hello'));
  810. write(0 === String('h' + 'ello'));
  811. write(0 === new String(''));
  812. write(0 === new String('hello'));
  813. write(0 === new String('he' + 'llo'));
  814. write(0 === new Object());
  815. write(0 === new Object());
  816. write(0 === [1, 2, 3]);
  817. write(0 === [1 ,2 , 3]);
  818. write(0 === new Array(3));
  819. write(0 === Array(3));
  820. write(0 === new Array(1 ,2 ,3));
  821. write(0 === Array(1));
  822. write(0 === foo);
  823. write(0.0 === undefined);
  824. write(0.0 === null);
  825. write(0.0 === true);
  826. write(0.0 === false);
  827. write(0.0 === Boolean(true));
  828. write(0.0 === Boolean(false));
  829. write(0.0 === new Boolean(true));
  830. write(0.0 === new Boolean(false));
  831. write(0.0 === NaN);
  832. write(0.0 === +0);
  833. write(0.0 === -0);
  834. write(0.0 === 0);
  835. write(0.0 === 0.0);
  836. write(0.0 === -0.0);
  837. write(0.0 === +0.0);
  838. write(0.0 === 1);
  839. write(0.0 === 10);
  840. write(0.0 === 10.0);
  841. write(0.0 === 10.1);
  842. write(0.0 === -1);
  843. write(0.0 === -10);
  844. write(0.0 === -10.0);
  845. write(0.0 === -10.1);
  846. write(0.0 === Number.MAX_VALUE);
  847. write(0.0 === Number.MIN_VALUE);
  848. write(0.0 === Number.NaN);
  849. write(0.0 === Number.POSITIVE_INFINITY);
  850. write(0.0 === Number.NEGATIVE_INFINITY);
  851. write(0.0 === new Number(NaN));
  852. write(0.0 === new Number(+0));
  853. write(0.0 === new Number(-0));
  854. write(0.0 === new Number(0));
  855. write(0.0 === new Number(0.0));
  856. write(0.0 === new Number(-0.0));
  857. write(0.0 === new Number(+0.0));
  858. write(0.0 === new Number(1));
  859. write(0.0 === new Number(10));
  860. write(0.0 === new Number(10.0));
  861. write(0.0 === new Number(10.1));
  862. write(0.0 === new Number(-1));
  863. write(0.0 === new Number(-10));
  864. write(0.0 === new Number(-10.0));
  865. write(0.0 === new Number(-10.1));
  866. write(0.0 === new Number(Number.MAX_VALUE));
  867. write(0.0 === new Number(Number.MIN_VALUE));
  868. write(0.0 === new Number(Number.NaN));
  869. write(0.0 === new Number(Number.POSITIVE_INFINITY));
  870. write(0.0 === new Number(Number.NEGATIVE_INFINITY));
  871. write(0.0 === '');
  872. write(0.0 === 0xa);
  873. write(0.0 === 04);
  874. write(0.0 === 'hello');
  875. write(0.0 === 'hel' + 'lo');
  876. write(0.0 === String(''));
  877. write(0.0 === String('hello'));
  878. write(0.0 === String('h' + 'ello'));
  879. write(0.0 === new String(''));
  880. write(0.0 === new String('hello'));
  881. write(0.0 === new String('he' + 'llo'));
  882. write(0.0 === new Object());
  883. write(0.0 === new Object());
  884. write(0.0 === [1, 2, 3]);
  885. write(0.0 === [1 ,2 , 3]);
  886. write(0.0 === new Array(3));
  887. write(0.0 === Array(3));
  888. write(0.0 === new Array(1 ,2 ,3));
  889. write(0.0 === Array(1));
  890. write(0.0 === foo);
  891. write(-0.0 === undefined);
  892. write(-0.0 === null);
  893. write(-0.0 === true);
  894. write(-0.0 === false);
  895. write(-0.0 === Boolean(true));
  896. write(-0.0 === Boolean(false));
  897. write(-0.0 === new Boolean(true));
  898. write(-0.0 === new Boolean(false));
  899. write(-0.0 === NaN);
  900. write(-0.0 === +0);
  901. write(-0.0 === -0);
  902. write(-0.0 === 0);
  903. write(-0.0 === 0.0);
  904. write(-0.0 === -0.0);
  905. write(-0.0 === +0.0);
  906. write(-0.0 === 1);
  907. write(-0.0 === 10);
  908. write(-0.0 === 10.0);
  909. write(-0.0 === 10.1);
  910. write(-0.0 === -1);
  911. write(-0.0 === -10);
  912. write(-0.0 === -10.0);
  913. write(-0.0 === -10.1);
  914. write(-0.0 === Number.MAX_VALUE);
  915. write(-0.0 === Number.MIN_VALUE);
  916. write(-0.0 === Number.NaN);
  917. write(-0.0 === Number.POSITIVE_INFINITY);
  918. write(-0.0 === Number.NEGATIVE_INFINITY);
  919. write(-0.0 === new Number(NaN));
  920. write(-0.0 === new Number(+0));
  921. write(-0.0 === new Number(-0));
  922. write(-0.0 === new Number(0));
  923. write(-0.0 === new Number(0.0));
  924. write(-0.0 === new Number(-0.0));
  925. write(-0.0 === new Number(+0.0));
  926. write(-0.0 === new Number(1));
  927. write(-0.0 === new Number(10));
  928. write(-0.0 === new Number(10.0));
  929. write(-0.0 === new Number(10.1));
  930. write(-0.0 === new Number(-1));
  931. write(-0.0 === new Number(-10));
  932. write(-0.0 === new Number(-10.0));
  933. write(-0.0 === new Number(-10.1));
  934. write(-0.0 === new Number(Number.MAX_VALUE));
  935. write(-0.0 === new Number(Number.MIN_VALUE));
  936. write(-0.0 === new Number(Number.NaN));
  937. write(-0.0 === new Number(Number.POSITIVE_INFINITY));
  938. write(-0.0 === new Number(Number.NEGATIVE_INFINITY));
  939. write(-0.0 === '');
  940. write(-0.0 === 0xa);
  941. write(-0.0 === 04);
  942. write(-0.0 === 'hello');
  943. write(-0.0 === 'hel' + 'lo');
  944. write(-0.0 === String(''));
  945. write(-0.0 === String('hello'));
  946. write(-0.0 === String('h' + 'ello'));
  947. write(-0.0 === new String(''));
  948. write(-0.0 === new String('hello'));
  949. write(-0.0 === new String('he' + 'llo'));
  950. write(-0.0 === new Object());
  951. write(-0.0 === new Object());
  952. write(-0.0 === [1, 2, 3]);
  953. write(-0.0 === [1 ,2 , 3]);
  954. write(-0.0 === new Array(3));
  955. write(-0.0 === Array(3));
  956. write(-0.0 === new Array(1 ,2 ,3));
  957. write(-0.0 === Array(1));
  958. write(-0.0 === foo);
  959. write(+0.0 === undefined);
  960. write(+0.0 === null);
  961. write(+0.0 === true);
  962. write(+0.0 === false);
  963. write(+0.0 === Boolean(true));
  964. write(+0.0 === Boolean(false));
  965. write(+0.0 === new Boolean(true));
  966. write(+0.0 === new Boolean(false));
  967. write(+0.0 === NaN);
  968. write(+0.0 === +0);
  969. write(+0.0 === -0);
  970. write(+0.0 === 0);
  971. write(+0.0 === 0.0);
  972. write(+0.0 === -0.0);
  973. write(+0.0 === +0.0);
  974. write(+0.0 === 1);
  975. write(+0.0 === 10);
  976. write(+0.0 === 10.0);
  977. write(+0.0 === 10.1);
  978. write(+0.0 === -1);
  979. write(+0.0 === -10);
  980. write(+0.0 === -10.0);
  981. write(+0.0 === -10.1);
  982. write(+0.0 === Number.MAX_VALUE);
  983. write(+0.0 === Number.MIN_VALUE);
  984. write(+0.0 === Number.NaN);
  985. write(+0.0 === Number.POSITIVE_INFINITY);
  986. write(+0.0 === Number.NEGATIVE_INFINITY);
  987. write(+0.0 === new Number(NaN));
  988. write(+0.0 === new Number(+0));
  989. write(+0.0 === new Number(-0));
  990. write(+0.0 === new Number(0));
  991. write(+0.0 === new Number(0.0));
  992. write(+0.0 === new Number(-0.0));
  993. write(+0.0 === new Number(+0.0));
  994. write(+0.0 === new Number(1));
  995. write(+0.0 === new Number(10));
  996. write(+0.0 === new Number(10.0));
  997. write(+0.0 === new Number(10.1));
  998. write(+0.0 === new Number(-1));
  999. write(+0.0 === new Number(-10));
  1000. write(+0.0 === new Number(-10.0));
  1001. write(+0.0 === new Number(-10.1));
  1002. write(+0.0 === new Number(Number.MAX_VALUE));
  1003. write(+0.0 === new Number(Number.MIN_VALUE));
  1004. write(+0.0 === new Number(Number.NaN));
  1005. write(+0.0 === new Number(Number.POSITIVE_INFINITY));
  1006. write(+0.0 === new Number(Number.NEGATIVE_INFINITY));