30 lines
808 B
JavaScript
30 lines
808 B
JavaScript
|
'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);
|
||
|
}
|