summaryrefslogtreecommitdiff
path: root/test/parallel/test-timers-to-primitive.js
blob: 65f11b91483040f15276809bafbb61254feba3ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'use strict';

const common = require('../common');
const assert = require('assert');

[
  setTimeout(common.mustNotCall(), 1),
  setInterval(common.mustNotCall(), 1),
].forEach((timeout) => {
  assert.strictEqual(Number.isNaN(+timeout), false);
  assert.strictEqual(+timeout, timeout[Symbol.toPrimitive]());
  assert.strictEqual(`${timeout}`, timeout[Symbol.toPrimitive]().toString());
  assert.deepStrictEqual(Object.keys({ [timeout]: timeout }), [`${timeout}`]);
  clearTimeout(+timeout);
});

{
  // Check that clearTimeout works with number id.
  const timeout = setTimeout(common.mustNotCall(), 1);
  const id = +timeout;
  clearTimeout(id);
}

{
  // Check that clearTimeout works with string id.
  const timeout = setTimeout(common.mustNotCall(), 1);
  const id = `${timeout}`;
  clearTimeout(id);
}